免费搭建 Hermes AI 智能代理
安装自托管 AI 代理,让它自主构建一个完整的番茄钟网页应用。
Introduction
30 Second Summary
编写一个完整的网页应用通常需要几个小时甚至几天。如果你只需要用一句话告诉 AI 你想要什么,它就能自动帮你全部搞定呢?
在这个项目中,你将安装一个开源 AI 智能代理,把它连接到免费的大语言模型,然后用一条指令让它自主构建一个完整的番茄钟网页应用。全程无需你手动编写任何代码。
What You'll Build
你将亲眼看着代理在终端中调用工具、创建文件、编写代码,最终在浏览器中打开一个完全可用的番茄钟计时器,而你从头到尾没有写过一行代码。
完成本项目后,你将拥有:
- 一个通过 OpenRouter 连接免费大语言模型的本地 Hermes Agent 安装,随时可以接收你的指令。
- 一个完全由代理通过单条提示词自主构建的番茄钟网页应用,点击开始按钮就能看到倒计时运行。
- 一份导出的会话记录和可视化构建报告,展示代理做出的每个决策和执行的每条命令。
- 秘密任务:连接 Telegram 机器人,从手机上发一条消息就能远程触发代理构建新应用。
有前置条件吗?
你需要一台 Linux 设备(或 Windows WSL2)、已安装的 Git,以及网页浏览器。如果不确定是否已安装 Git,在终端运行 git --version。安装程序会自动处理其他所有依赖。
Before We Start
在动手之前,让我们先明确这个项目要构建什么,以及为什么它值得你投入时间。
安装 Hermes Agent
你的机器上目前没有任何能够自主编写代码、执行终端命令的工具。Hermes Agent 是一个开源 AI 智能代理,安装后它可以在你的电脑上自动写代码、运行命令,甚至构建完整的应用。
在这一步中,你将通过一行命令安装 Hermes Agent,然后完成设置向导将它连接到免费的大语言模型(LLM)。完成后,代理就可以接收你的指令并开始工作了。
In this step, get ready to:
- 运行一行安装命令,将 Hermes Agent 部署到你的机器上.
- 完成设置向导,连接免费的 OpenRouter 模型.
- 验证安装成功,确认代理已准备就绪.
运行安装命令
Hermes Agent 提供了一键安装脚本,会自动处理所有依赖项(Python 3.11、Node.js、uv、ripgrep、ffmpeg),克隆代码仓库,并把 hermes 命令添加到你的 PATH。
- 在终端中运行以下命令安装 Hermes Agent:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
这条命令做了什么?
这条 curl 命令从 Hermes 官网下载安装脚本并立即执行。脚本会自动完成以下任务:
- 将代码克隆到 ~/.hermes/hermes-agent/。
- 创建 Python 虚拟环境并安装所有依赖。
- 在 ~/.local/bin/hermes 创建可执行文件的符号链接。
安装过程需要 1-2 分钟。等待直到终端显示安装完成的消息。
安装命令报错?
- 如果看到 git: command not found,说明 Git 未安装。运行下面的命令安装后重试:
- 如果看到网络超时错误,请检查你的网络连接后重试。
sudo apt update && sudo apt install git -y
安装 Git 后,重新运行 curl 安装命令即可。需要更多帮助?
完成设置向导(Setup Wizard)
安装完成后,设置向导会自动启动。如果没有自动启动,运行 hermes setup 手动启动。
向导会引导你完成提供商、模型和工具的配置。按照以下步骤逐一选择。
- 当向导询问设置方式时,选择 Full Setup(选项 2)。不要选 Quick Setup。
为什么选 Full Setup?
Quick Setup 需要 Nous Portal 的 OAuth 登录。Full Setup 让你使用自己的 API 密钥,这样可以连接免费的 OpenRouter 模型,无需任何付费。
接下来,向导会要求你提供 OpenRouter API 密钥。你需要先去 OpenRouter 网站创建一个。
- 在浏览器中打开 https://openrouter.ai/keys。
- 点击注册,创建免费账号。无需绑定信用卡。
- 登录后,点击 Create Key 按钮创建新的 API 密钥。
- 复制密钥(以 sk-or- 开头)并保存到安全的地方。这个密钥只显示一次。
什么是 OpenRouter?
OpenRouter 是一个统一的 AI 模型网关,通过一个 API 密钥就能访问数百个模型。它提供免费额度的模型变体(模型 ID 以 :free 结尾),免费账号每天有 50 次请求额度,足够完成本项目。
现在回到终端中的设置向导,继续完成剩余配置。
- 当向导询问提供商(Provider)时,选择 OpenRouter。
- 粘贴你刚才复制的 API 密钥。
- 当向导询问模型时,按 / 进入过滤模式,输入 free。
- 从列表中选择任何 ID 以 :free 结尾的模型(如 NVIDIA Nemotron 的免费变体)。
- 终端后端选择 Keep current (local)。
- 消息平台全部不选,直接按 Enter 跳过。
- 工具配置中,取消勾选 Web Search & Scraping、Browser Automation、Image Generation。
- 确保 File Operations、Terminal & Processes、Code Execution 保持选中。
- 文字转语音(TTS)选择 Skip 或免费默认选项。
为什么取消部分工具?
Web Search & Scraping、Browser Automation 和 Image Generation 需要付费的 Nous Portal 网关才能使用。取消它们不影响代理的核心能力(文件读写、终端命令和代码执行),这些正是构建应用所需要的。
确认安装成功
设置向导完成后,你需要重新加载 shell 配置,让终端识别新添加的 hermes 命令。
- 运行以下命令重新加载 shell 配置:
source ~/.bashrc
你觉得运行 hermes --version 会显示什么? 想一想,然后运行下面的命令验证。
- 运行版本检查命令:
hermes --version
你应该看到版本号输出,例如 0.19.1。这确认了 Hermes 已正确安装到你的 PATH 中。
- 运行状态检查,确认提供商和模型配置正常:
hermes status
输出应显示 Model 和 Provider 字段。Provider 显示为 OpenRouter,Model 显示你选择的以 :free 结尾的模型名称,且没有认证错误。
hermes: command not found?
- 确保你已经运行了 source ~/.bashrc。安装程序将 hermes 放在 ~/.local/bin/ 目录,需要重新加载 shell 才能识别。
- 如果重新加载后仍找不到命令,手动将路径添加到 PATH:
export PATH="$HOME/.local/bin:$PATH"
需要更多帮助?
安装完成。你的 AI 代理已经连接到免费的大语言模型,准备好接收指令了。下一步,你将启动第一次对话,验证它能否正常响应并使用工具。
启动第一次对话
上一步中,你成功安装了 Hermes Agent 并通过 hermes status 确认了配置无误。
但配置通过不代表一切正常。API 密钥可能在实际调用时失败,模型可能无法正确返回工具列表。发送一条真实的测试消息可以一次确认两件事:模型连接正常,代理能感知自己的工具。
In this step, get ready to:
- 启动 Hermes 的 TUI(终端用户界面)模式。
- 发送测试消息,确认代理能正常响应并列出可用工具。
- 退出会话,回到正常终端。
启动 TUI 模式
Hermes 提供一个全屏的终端用户界面(TUI),让你可以像聊天一样与代理互动,并实时观看代理的工具调用过程。
- 在终端中运行以下命令启动 TUI:
hermes --tui
你会看到一个欢迎横幅,显示当前使用的模型名称、可用工具和已加载技能。
看不到欢迎横幅?
确认你在上一步结束时运行了 source ~/.bashrc。如果没有,先退出再重新加载 shell。
如果看到认证错误,说明 API 密钥可能输入有误。运行 hermes setup 重新配置 OpenRouter 密钥。
TUI 启动失败怎么办?
发送测试消息
欢迎横幅出现后,你就可以在聊天输入框中输入消息了。你将发送一条消息,要求代理自我介绍并列出它当前可用的工具。
在你发送之前,想一想:代理会回复什么?它会列出哪些工具?
- 在聊天输入框中粘贴以下消息,然后按 Enter 发送:
Say hello and tell me what tools you have available right now.
代理应在几秒内回复,列出它可用的工具,包括终端(Terminal)和文件操作(File Operations)等。这证明了你的 API 密钥和模型连接都在正常工作。
代理的回复说明了什么?
代理列出的工具应该与你在设置向导中启用的工具一致:File Operations、Terminal & Processes、Code Execution。
如果代理能正确列出这些工具,说明模型不仅能接收你的消息,还能感知自己被赋予的能力。这是它后续自主构建应用的基础。
代理没有回复或报错?
如果看到超时错误,可能是免费模型正在排队。等待 10-15 秒后再试一次。
如果看到 401 或认证相关错误,说明 API 密钥无效。按 Ctrl+C 退出,运行 hermes setup 重新输入以 sk-or- 开头的密钥。
代理不回复怎么办?
退出会话
- 按 Ctrl+C 或输入 /quit 退出 TUI,回到正常终端。
你应该重新看到普通的终端提示符。
代理已经证明它能思考、沟通并感知自己的工具。下一步,你将给它一个真正的任务:用一条提示词让它自主构建一个完整的网页应用。
让代理为你构建应用
在上一步中,代理证明了它可以正常连接模型并回复消息。现在问题来了:它能否完成真正的编程任务?
你将输入一条描述网页应用的提示词,代理将自主编写所有代码、保存文件并在浏览器中打开成品。整个过程你不需要写一行代码。
In this step, get ready to:
- 创建项目工作目录并启动新的代理会话.
- 发送构建提示词,让代理自主生成番茄钟应用.
- 在浏览器中验证应用功能正常.
创建工作目录并启动新会话
代理需要一个干净的目录来存放它创建的文件。你将创建一个专用文件夹,然后在里面启动代理。
- 打开一个新的终端窗口.
- 创建项目目录并进入该目录,运行以下命令:
mkdir ~/hermes-app && cd ~/hermes-app
- 在该目录下启动 Hermes TUI 模式:
hermes --tui
你会看到欢迎横幅,显示模型名称和可用工具列表。TUI 会占据整个终端窗口。
看不到欢迎横幅?
确认你已经进入了 ~/hermes-app 目录。运行 pwd 检查当前路径.
如果看到认证错误,说明 API 密钥可能已过期。按 Ctrl+C 退出,运行 hermes setup 重新配置.
还是有问题?帮我排查 hermes --tui 启动失败的原因
给代理发送构建提示词
提示词是你与代理沟通需求的方式。一条好的提示词会明确说明想要什么、有什么约束条件。你将发送一条描述番茄钟应用的详细提示词。
- 在 Hermes 聊天输入框中粘贴以下提示词,然后按 Enter:
Build me a Pomodoro timer app. Requirements:
- Single file: index.html with all CSS and JavaScript inline
- No external dependencies, no CDNs, no frameworks, no internet required
- Clean, modern UI with start/pause/reset buttons
- 25-minute work timer, 5-minute break timer
- Visual countdown and audio alert (use the Web Audio API for a beep)
- Save it to this directory, then open it in my browser
这条提示词做了什么?
- "Single file" 和 "no external dependencies" 确保代理创建一个完全独立的文件,不需要网络即可运行.
- "Web Audio API" 指定使用浏览器内置的音频接口生成提示音,无需下载音频文件.
- "Save it to this directory" 告诉代理把文件保存在当前工作目录(即 ~/hermes-app).
发送后,你会看到代理开始调用工具。它会使用文件写入和终端工具来创建 index.html.
- 当代理请求批准执行命令时,输入 y 并按 Enter.
耐心等待代理完成
整个构建过程通常需要 2-5 分钟,取决于免费模型的响应速度。你可以在 TUI 中实时观察代理的每一步操作。不要中途关闭终端.
代理完成后,它会告诉你文件已保存并尝试在浏览器中打开它。
代理中途停止或报错?
免费模型有每日 50 次请求的限制。如果看到速率限制(rate limit)错误,等待几分钟后重试.
如果代理似乎卡住了,不要关闭窗口。免费模型响应速度较慢,可能需要 30 秒以上才能生成下一步操作.
需要帮助?帮我排查代理构建过程中遇到的问题
在浏览器中验证应用
代理声称已经完成了任务。现在你需要亲眼确认它构建的应用确实能运行。
- 按 Ctrl+C 或输入 /quit 退出 TUI,回到普通终端.
在打开浏览器之前,想一想:你期望看到什么?一个有倒计时显示和三个按钮的页面,对吗?
- 如果浏览器没有自动打开,手动运行以下命令:
xdg-open ~/hermes-app/index.html
- 点击开始按钮,确认倒计时开始运行.
- 点击暂停按钮,确认计时器暂停.
- 点击重置按钮,确认计时器回到初始状态.
你应该看到一个带有倒计时显示的网页,三个按钮都能正常响应。这整个应用是代理自主编写的,你没有写过一行代码。
浏览器没有打开或页面空白?
先确认文件存在。运行 ls ~/hermes-app/index.html 查看文件是否已创建.
如果文件不存在,说明代理没有成功保存。回到上一步,重新启动 hermes --tui 并再次发送提示词.
如果文件存在但页面空白,用文本编辑器打开 index.html 检查内容是否完整.
还是有问题?帮我排查代理生成的应用无法正常运行的原因
你刚刚让一个 AI 代理自主构建了一个完整的网页应用。下一步,你将导出代理的会话记录,看看它在幕后做出了哪些决策。
导出代理会话记录
你的 AI 代理刚刚自主构建了一个完整的番茄钟应用。但整个过程对你来说是一个黑盒。代理做了哪些决策?写了哪些文件?运行了哪些命令?
在这一步中,你将导出完整的会话记录,然后让代理把这份记录变成一份可视化的构建报告。这份报告就是你可以展示的成果,证明 AI 为你自主编写了可运行的软件。
In this step, get ready to:
- 导出 Hermes 会话记录为 JSONL 文件。
- 让代理读取记录并生成可视化构建报告。
- 在浏览器中验证报告页面的内容和样式。
导出对话记录
Hermes 会自动保存每次对话的完整记录,包括你发送的消息、代理的回复以及每一次工具调用。你需要先找到上一步构建番茄钟时的会话 ID,然后将其导出为文件。
- 确认你在普通终端中(不是 hermes --tui),并且当前目录是 ~/hermes-app。如果不是,运行:
cd ~/hermes-app
- 列出所有已保存的会话记录:
hermes sessions list
你会看到一个表格,显示最近的会话列表。每行包含会话预览、最后活跃时间和 ID。
找到最新一行的 ID。格式类似 20260730_193346_f20c7a。记下这个 ID,下一条命令需要用到。
- 使用你的会话 ID 导出该会话记录:
hermes sessions export session.jsonl --session-id [[SESSION_ID="your session ID from the list above"]]
终端应显示确认消息,表明会话已成功导出到 session.jsonl。
- 确认文件已创建:
ls -lh session.jsonl
你应看到 session.jsonl 文件及其大小(通常几十 KB 到几百 KB)。
What is JSONL?
JSONL(JSON Lines)是一种文件格式,每行是一个独立的 JSON 对象。Hermes 用它来存储会话中的每条消息和每次工具调用。你可以用文本编辑器打开它查看原始内容。
看不到任何会话?
确认你在上一步中确实通过 hermes --tui 启动了会话并发送了构建提示词。如果列表为空,返回上一步重新启动 TUI 并发送提示词。
如果导出命令报错,检查你复制的会话 ID 是否完整、无多余空格。
还有问题?帮我排查 hermes sessions list 为空的问题
让代理生成可视化构建报告
现在你有了原始的会话记录文件。接下来让代理把这份数据变成一份人类可读的、样式精美的 HTML 报告。
- 在 ~/hermes-app 目录中启动新的 Hermes TUI 会话:
hermes --tui
确认看到欢迎横幅后继续。
- 在聊天输入框中粘贴以下提示词,然后按 Enter 发送:
Read session.jsonl in this directory. It contains the full transcript of an AI agent session where you built me an app.
Generate a file name it build-report.html that visualizes the session as a styled build report. Requirements:
- Single file, all CSS inline, no external dependencies
- Dark theme with clean modern styling
- Sections: my original prompt, a timeline of every tool call the agent made (file writes, terminal commands), and the final result
- A footer that says "Built autonomously with Hermes Agent"
- Save it to this directory, then open it in my browser
这段提示词在做什么?
你让代理读取之前导出的会话记录,从中提取关键信息(原始提示词、工具调用、文件操作),然后生成一个独立的 HTML 页面来展示整个构建过程。
这本身也是一次自主构建。代理需要解析 JSONL 数据、设计页面结构、编写 CSS 样式,全部自动完成。
代理会开始调用文件写入工具。当代理请求批准命令时,输入 y 并按 Enter。整个过程通常需要 2-5 分钟。
代理回复速度很慢?
免费模型有速率限制(每分钟 20 次请求)。如果代理暂停较长时间,这是正常的。等待即可。
如果看到认证错误,检查你的 OpenRouter API 密钥是否仍然有效。
需要帮助?帮我解决代理回复缓慢的问题
验证构建报告
代理完成后,你应该在 ~/hermes-app 目录中看到新创建的报告文件。退出 TUI 并验证。
- 按 Ctrl+C 或输入 /quit 退出 TUI。
在打开报告之前,想一想:根据你给代理的提示词,你预期会看到什么样的页面?
- 确认文件存在并在浏览器中打开:
ls -lh build-report.html
xdg-open build-report.html
你应看到一个深色主题的样式化页面。顶部显示你的原始提示词,中间是工具调用时间线(文件写入、终端命令),底部有 "Built autonomously with Hermes Agent" 页脚。
看不到 build-report.html?
运行 ls ~/hermes-app/ 查看目录中所有文件。如果报告文件不存在,代理可能在生成过程中出错了。
重新启动 hermes --tui 并再次发送构建报告的提示词。确保在代理请求命令批准时输入 y。
需要帮助?帮我排查 build-report.html 未生成的问题
你已经拥有了完整的证据链:从原始提示词到最终产品,每一步都有记录。接下来的秘密任务将解锁一种更酷的使用方式。如果能从手机上给代理发一条消息就触发构建任务呢?
Secret mission
从 Telegram 远程控制代理
目前你必须坐在终端前才能使用代理。如果能从手机上发一条 Telegram 消息就触发构建任务呢?在这个秘密任务中,你将创建一个 Telegram 机器人,连接到 Hermes 网关,然后从手机远程指挥代理构建一个全新的网页应用。
Clean Up Your Resources
Clean Up Your Resources
决定是保留你的资源继续运行、暂停以便日后返回,还是完全删除。本项目完全在本地运行,OpenRouter 免费层级无闲置费用,因此没有持续成本。
Resources you used:
- Hermes Agent 安装目录(~/.hermes/)。
- 项目文件(~/hermes-app/)。
- OpenRouter 免费账号(无信用卡,无闲置费用)。
- Telegram 机器人(秘密任务中创建,免费)。
Keep everything running
无需任何操作。如果你还在积极使用代理,选择这个选项。
- Hermes 保持已安装状态,随时运行 hermes --tui 开始新会话。
- OpenRouter 免费账号无过期时间,无需信用卡,不会产生任何费用。
- Telegram 机器人保持存在,下次使用时运行 hermes gateway run 即可重新连接。
Pause - I'll come back to this later
关闭所有运行中的进程以释放内存,保留文件以便日后继续。
- 如果 hermes gateway run 还在运行,按 Ctrl+C 停止。
- 如果 Hermes TUI 还在运行,输入 /quit 或按 Ctrl+C 退出。
- 关闭后没有后台进程在运行。所有文件和配置保持原样。
Delete - I don't want to use this again
完全删除所有项目资源,恢复到项目开始前的状态。
- 在 Telegram 中打开与 @BotFather 的对话,发送 /deletebot,按提示选择你的机器人并确认删除。
- 删除项目文件:
rm -rf ~/hermes-app
- 卸载 Hermes Agent:
hermes uninstall
- 彻底清除所有残留配置文件:
rm -rf ~/.hermes
- 确认删除成功:
ls ~/.hermes
你应看到 "No such file or directory",确认所有文件已清除。
- 删除 OpenRouter 账号:登录 openrouter.ai,点击 Settings,点击 Manage Account,选择 Security 标签页,点击删除账号选项。
That's a Wrap!
That's a Wrap!
干得漂亮!你刚刚安装并配置了一个完整的 AI 智能代理,让它用一条提示词就自主构建了一个可运行的网页应用。
你学到了:
- 安装并配置了 Hermes Agent,通过 OpenRouter 连接免费大语言模型,无需信用卡且无持续费用。
- 使用单条提示词让代理自主构建了完整的番茄钟网页应用,无需手动编写任何一行代码。
- 导出了完整的会话记录并生成了可视化构建报告,记录代理做出的每个决策和工具调用。
- (秘密任务)连接了 Telegram 机器人,从手机远程发送消息触发代理自动构建应用。
Ready to quiz yourself?