系列:Hermes Agent 源码探秘 作者:元思未来 字数:约2500字
上篇文章我们讲了AI Agent的原理:它会自己调用工具、完成任务,而不是只输出文字。
光说不练假把式。这篇我们就上手跑一个 Hermes Agent,亲手感受一下它到底能做什么。
一、安装:快,真的很快
Hermes 的安装只需要一行命令:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
它会做这几件事:
- 检测系统(支持 Linux / macOS / Windows WSL)
- 安装 Python 虚拟环境
- 克隆最新代码到
~/.hermes/hermes-agent/ - 安装依赖
- 创建
hermes命令软链接
整个过程大概 1-3 分钟,取决于你的网速。
安装完成后,运行:
hermes --version
如果看到版本号,说明安装成功了。
配置模型
Hermes 支持 20+ 模型提供商。最简单的配置方式:
hermes setup
这是一个交互式向导,它会依次问你:
- 用什么模型(OpenRouter / Anthropic / OpenAI / DeepSeek / 本地模型等)
- API Key
- 终端配置
- 要不要开启网关(消息平台)
如果你用的是 OpenRouter,只需要设置 OPENROUTER_API_KEY 环境变量,然后选一个模型就行。
或者直接设置:
export OPENROUTER_API_KEY=sk-or-v1-xxxxxxxx
hermes model # 交互式选择模型
二、第一句对话:跟普通ChatGPT的区别
普通测试
hermes chat -q "你是谁?"
输出大概是:
我是 Hermes Agent,一个开源的 AI 助手,由 Nous Research 开发。
我可以帮你写代码、查资料、操作文件、运行命令等等。
这时候它还跟你用 ChatGPT 感觉差不多。但接下来就不一样了。
让它做点"实事"
试试让它查个信息:
hermes chat -q "今天比特币价格是多少?"
你会在终端里看到这样的过程:
🧠 正在思考...
🔧 调用工具: web_search(query="比特币价格 today")
...
📝 比特币当前价格约为 $67,832...
注意看!它自己调用了搜索工具,而不是凭训练数据回答。这就是 Agent 和普通 LLM 的区别。
让它写代码
hermes chat -q "写一个Python脚本,监控当前目录下的文件变化,有新文件时打印文件名"
🧠 正在思考...
🔧 调用工具: write_file(path="watch_files.py", content=...)
✓ 文件已写入
🔧 调用工具: terminal(command="python watch_files.py", ...)
...
📝 脚本已创建并测试通过。它使用 watchdog 库监控当前目录,
有新文件创建时会打印文件名。要运行的话执行:
python watch_files.py
它自己写代码、保存文件、甚至跑起来测试了。
三、跟它"聊天式"协作
Hermes 真正的威力在于交互式对话。运行:
hermes
会进入交互模式,你会看到一个提示符,像这样:
┌─────────────────────────────────────────────┐
│ ✨ Hermes Agent v0.14.0 │
│ Model: deepseek-v4-flash │
│ Type /help for commands │
└─────────────────────────────────────────────┘
┊ 输入你的消息...
这时候你可以像跟一个人聊天一样让它做事,而且可以连续对话、上下文连贯。
比如:
你:帮我创建一个 React 项目
Hermes:我来创建一个简单的 React 项目...
(创建目录、初始化、写组件...)
✓ 创建完成,跑在 http://localhost:3000
你:加一个计数器组件
Hermes:好的,我来改 App.js...
✓ 计数器组件已添加,功能:点击 +1 / -1 / 重置
你:帮我部署到 Vercel
Hermes:运行 vercel deploy...
✓ 已部署到 https://my-app.vercel.app
一个会话里,从创建到部署全搞定。 这就是 Agent 的价值。
四、几个必试功能(快速感受能力边界)
1. 工具调用透明可见
Hermes 会显示它正在调用的工具:
┊ web_search(query="python async tutorial")
┊ read_file(path="main.py")
┊ terminal(command="npm run build")
每个工具调用前面有个小图标或前缀,你可以看到它一步步在做什么,而不是黑箱操作。
2. 斜杠命令系统
在交互模式下,输入 / 可以看到所有命令:
/help 显示帮助
/model 切换模型
/retry 重试上一次
/undo 撤销上一次对话
/clear 清屏
/title 给会话起名
/save 保存会话
/tools 管理工具
/skills 搜索技能
3. 技能系统
这是 Hermes 的一个特色功能。你可以用 /skill 加载一个"技能"——类似于给 Agent 一份操作手册,它就会按手册里的流程做事。
# 在会话中加载技能
/skill writing-plans
📚 已加载技能: writing-plans
这是关于如何编写实施计划的技能...
4. 实时查看进度
当 Hermes 在执行长时间任务时(比如部署、测试),你能实时看到终端输出,而不是傻等。
五、"懒人模式":一条命令完成复杂任务
你可以用 -q 参数单条执行,非常适合自动化:
hermes chat -q "搜索最新的AI Agent框架,对比它们的优缺点,输出到 ~/Desktop/ai-agent-comparison.md"
然后去喝杯咖啡,回来桌上就有一份对比报告了。
再比如定时任务:
hermes chat -q "帮我设置一个定时任务,每天早上8点抓取Hacker News头条,整理成摘要发给我"
🧠 正在思考...
🔧 调用工具: cronjob(action="create", schedule="0 8 * * *", ...)
✓ 定时任务已创建
📝 每天早上8点,我会自动抓取HN头条并整理摘要给你。
这是真正的"一次设置,长期收益"。
六、初体验总结:你感受到了什么?
如果你跟着操作了一遍,你应该体验到了这几个关键差异:
| 对比项 | 普通 ChatGPT | Hermes Agent |
|---|---|---|
| 获取实时信息 | ❌ 无法 | ✅ 自动搜索网络 |
| 操作文件 | ❌ 只能读上传的文件 | ✅ 创建/编辑/删除 |
| 执行代码 | ❌ 沙盒执行(受限) | ✅ 本地终端执行 |
| 安装软件 | ❌ 不行 | ✅ pip/npm/apt |
| 定时任务 | ❌ 不行 | ✅ cronjob一键设置 |
| 多工具配合 | ❌ 单工具 | ✅ 搜索+读写+执行协同 |
一句话总结:ChatGPT 是"聊天的",Hermes 是"干活的"。
七、下一期预告
上篇我们讲了 Agent 原理,这篇你亲手跑起来了。下一篇,我们开始读源码。
第一篇源码拆解直接杀进最核心的部分:run_conversation()。
这是 Agent 的心脏——那个"LLM思考→调用工具→看结果→继续"的循环——它是怎么用 Python 实现的?错误处理怎么做?重试策略是什么?上下文什么时候压缩?
不到 200 行核心代码,却藏着很多设计智慧。下一篇见。
作者: 十年全栈工程师,目前在探索AI Agent。
系列目录: [Hermes Agent 源码探秘]
代码位置: 安装后源码在~/.hermes/hermes-agent/
元思未来 · 行稳致远,进而有为