免费搭建 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?