Hermes Agent 正确使用姿势 — 从入门到真香

Hermes Agent 正确使用姿势 — 从入门到真香#

Hey 大家好,我是你们的老朋友。

今天不聊软件推荐,聊聊我最近一直在折腾的东西——Hermes Agent

如果你还不了解它,简单来说:Hermes Agent 是 Nous Research 开源的一款 AI 智能体框架。它和 Claude Code、OpenAI Codex 属于同一类东西——都能在终端里帮你写代码、跑命令、管理文件、做研究。但 Hermes 有一点很不一样:它不只是个编码助手,它是个真正意义上的"智能体",能跨平台跑、能记忆、能自己学习技能、还能定时自动干活。

这篇文章是我实际用了几个月后的经验总结,不是官方文档的翻译。我会告诉你什么姿势用得爽,什么姿势翻车快


一、快速上手:3 分钟跑起来#

安装非常简单:

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

装完之后,你不需要配任何 API Key 也能直接用——因为它内置了 OpenCode GoOpenCode Zen 两个免费提供商,不需要注册、不需要花钱:

# 直接开聊
hermes

# 或者指定模型(推荐)
hermes -m deepseek-v4-flash --provider opencode-go

这就跑起来了,零成本。

🎁 **福利时间**:通过我的专属链接注册 OpenCode Go,你我各得 **$5 免费使用额度**:
👉 https://opencode.ai/go?ref=0D4PB30C43
这个额度可以用来调用各种 AI 模型,相当于白嫖几十万 token,写代码、做研究随便用。

Article Image


二、别把它当 ChatGPT 用——这是最大的误区#

很多人第一次用 Hermes,感觉:"这不就是个终端版 ChatGPT 吗?"

大错特错。

ChatGPT 的交互模式是:你问 → 它答。Hermes 的模式是:你给目标 → 它用工具干活

区别在哪?举个例子:

  • **ChatGPT 模式**:帮我看下服务器状态 → 返回一段文字告诉你"建议检查内存"
  • **Hermes 模式**:帮我看下服务器状态 → 它自己 SSH 上去跑 `free -m`、`df -h`、`uptime`,然后把实际数据返回给你
  • 所以你最需要改变的是提问方式。不要问"你觉得怎么样",直接说"帮我做这个"。

    核心心法:给目标,别给步骤#

    - ❌ 先 cd 到 /var/log,然后 grep error nginx.log,把结果告诉我
    + ✅ 帮我排查一下 Nginx 最近有没有报错

    你告诉它你要什么结果,它自己会决定用什么工具、什么步骤。这才是 Agent 的威力。


    三、模型选择——免费方案也能很能打#

    这是很多人最关心的。Hermes 支持 20+ 提供商,但你根本不需要每个都配。

    0 成本方案(推荐新手)#

    优先级提供商模型费用需要什么
    主力opencode-godeepseek-v4-flash免费无需配置
    备用opencode-zenbig-pickle免费无需配置
    备用2opencode-zendeepseek-v4-flash-free免费无需配置

    装好就能用,零配置。还没注册的同学,用我的链接 👉 https://opencode.ai/go?ref=0D4PB30C43 可以额外拿 $5 额度。

    Article Image

    配置自动 Fallback#

    弄个自动切换,免费的不行了自动换下一个:

    # 先设置好各层模型
    hermes config set model.default deepseek-v4-flash
    hermes config set model.provider opencode-go
    
    # 设置子代理用啥模型
    hermes config set delegation.model big-pickle
    hermes config set delegation.provider opencode-zen
    
    # 然后用 sed 在 config.yaml 里加 fallback 链
    # 这样主模型挂了自动切备用
    ⚠️ 注意:用 `hermes config set` 设置列表类型(如 `fallback_providers`)会存成 JSON 字符串而不是 YAML 列表。正确的做法是用 `sed` 直接编辑 config.yaml。踩过这坑,特此提醒。

    用个好模型体验大不同#

    说实话,免费模型虽然能用,但如果你想真正发挥 Hermes 的潜力,建议搞个好模型做主力。特别是复杂多步骤任务,差模型很容易"掉链子"——到一半忘了目标、工具用错、上下文理解跑偏。

    我现在的主力是 big-pickle(OpenCode Zen 免费模型里比较聪明的),复杂任务再手动切更强的。


    四、Skills——Hermes 最被低估的超能力#

    这是 Hermes 区别于所有同类产品的最大亮点。你可以理解为"让 AI 自己写操作手册"。

    Article Image

    什么是 Skill?#

    Skill 就是一段 Markdown 文档,里面有 YAML 头部 + 操作步骤。当 Hermes 遇到相关任务时,它会把这份文档加载到上下文里,按上面的步骤执行。

    Skill 的两大来源#

  • **手动安装**:`hermes skills install <名称>` 或 `hermes skills browse` 逛商店
  • **自动生成**:当你完成一个复杂任务后,Hermes 会问你"要不要把这个流程保存成 Skill?"——**答应它**。
  • Skill 的价值#

    举个例子,我写公众号文章的流程很复杂:

  • 去官网下载软件
  • 上传夸克网盘
  • 生成分享链接
  • 截图配图上传图床
  • 用模板生成文章
  • 发布到 Trilium 笔记
  • 这一套流程如果每次都从头说,既累又容易漏。但保存成 Skill 之后,我只需要说一句"写一篇 X 软件的文章",它自己就把整套流程跑完了。

    用好 Skill 的小技巧#

  • **复杂任务完成后主动要求保存**——不用等它问,直接说"把这个流程存成 skill"
  • **Skill 过时了要及时更新**——如果发现某个 Skill 的步骤已经不对了,用 `skill_manage(action='patch')` 修一下
  • **可以自己手写 Skill**——格式很简单,看几个已有的 Skill 就能学会
  • **Skill 会过期**——Hermes 有个"策展人"(Curator)后台自动管理,长时间不用的 Skill 会被标记为"过时"再"归档"。别担心,归档了也不会丢,随时能恢复

  • 五、记忆系统——它真的记得你是谁#

    Hermes 有跨会话的持久记忆。你昨天告诉它的偏好,今天打开新对话它还记得。

    Article Image

    记忆存什么#

  • ✅ 你的喜好("我喜欢用口语化的中文回答")
  • ✅ 环境配置("项目用的 pytest + xdist")
  • ✅ 工具特点("这个 API 的 token 要放 Header 而不是参数")
  • ❌ **不要存**:任务进度、已完成的工作记录、临时的 TODO 状态
  • 记忆空间有限(我的是 2200 字符),所以优先存那些能减少你纠正它的信息。比如你告诉它一次"不要用超链接显示网盘地址",它就记住了,以后不会再犯。

    如果它忘了#

    Hermes 还有个 session_search 功能,可以搜索过去的对话记录。所以即使没存进记忆,翻翻历史也能找到。


    六、子代理(Delegation)——同时干多件事#

    Hermes 可以同时派多个子代理去干活,这些子代理有自己的对话上下文和工具,干完把结果汇总回来。

    什么时候用#

  • **并行研究**:同时查多个技术方案,回来对比
  • **分模块开发**:子代理写后端,子代理写前端,同时推进
  • **数据收集**:多个网站同时爬
  • 怎么用#

    # 生成子代理跑并行任务
    delegate_task(
        tasks=[
            {"goal": "调研方案 A 的技术路线"},
            {"goal": "调研方案 B 的技术路线"},
            {"goal": "调研方案 C 的社区活跃度"},
        ]
    )

    三个子代理同时跑,几分钟后一起回来汇报。

    注意事项#

  • 子代理**没有你的对话记忆**——传给它的 context 要写清楚背景信息
  • 子代理的汇报是**自己说的**,不是验证过的事实——对外部操作(上传、发请求)要自己验证
  • 子代理不能嵌套调用(当前配置),每个都是叶子节点

  • 七、Cron 定时任务——让 Hermes 自己上班#

    这个功能可以让你设置定时任务,到点 Hermes 自动执行。比如:

  • 每天早上 9 点检查服务器状态
  • 每周一生成周报
  • 每小时监控一次价格变动
  • 用法#

    hermes cron create "每天早上9点" --prompt "检查服务器磁盘和内存使用情况"

    或者直接在会话里用 /cron 命令管理。

    注意:Cron 任务默认不加载记忆(因为怕记忆污染),如果需要知道你的偏好,在 prompt 里写清楚。

    八、跨平台网关——Telegram、Discord、微信都能用#

    Hermes 最酷的功能之一:同一个 AI 智能体,可以在 Telegram、Discord、Slack、Signal、微信等十几个平台上和你对话。

    Article Image

    配置方式:

    hermes gateway setup

    然后跟着提示选平台、填 Token 就行。

    这意味着你在电脑前可以用命令行,出门在外用 Telegram 也能让 Hermes 干活。同一个 Agent,同一个记忆,无缝切换。

    ⚠️ 网关进程如果 SSH 退出会死掉。需要启用 linger:`sudo loginctl enable-linger $USER`

    九、WebUI——给 Hermes 装个浏览器界面#

    如果你不习惯用命令行,Hermes 有浏览器界面(WebUI)。

    官方项目在 [github.com/nesquena/hermes-webui](https://github.com/nesquena/hermes-webui),默认跑在 8787 端口。

    git clone https://github.com/nesquena/hermes-webui.git
    cd hermes-webui
    python3 bootstrap.py

    浏览器打开 http://localhost:8787 就能用了。

    WebUI 小坑提醒#

    有个设置叫 busy_input_mode,默认是 queue。如果 Hermes 正在干活时你点"澄清"弹窗输入,会卡住没反应。改成 interrupt 就好了

    // ~/.hermes/webui/settings.json
    {
      "busy_input_mode": "interrupt"
    }

    十、日常使用技巧总结#

    效率翻倍的沟通方式#

    场景错误问法正确问法
    排查问题"服务器好像有点慢""帮我排查服务器性能,看看 CPU、内存、磁盘 IO 和网络"
    代码任务"帮我写个登录功能""用 FastAPI 写个 JWT 登录接口,包含注册、登录、刷新 token"
    研究任务"Python 哪个框架好""对比 FastAPI、Flask、Django 三个框架的优缺点,帮我选一个最适合做 API 服务的"
    复杂任务"帮我把这个项目部署了""把这个项目部署到服务器上,用 Docker,配置 nginx 反代,加 HTTPS"

    多用 slash 命令#

    在聊天的任何时候都可以用 / 开头输入命令:

  • `/model` — 切换模型(当前模型不行了随时换)
  • `/retry` — 重试上一条(模型抽风时救命用)
  • `/compress` — 手动压缩上下文(聊太长了性能下降时用)
  • `/goal` — 设置一个跨轮次的长期目标
  • `/title` — 给当前会话命名,方便以后搜索
  • `/debug` — 上传调试报告(出问题求助时用)
  • `/skill` — 手动加载一个 Skill
  • 它犯错时怎么办#

    AI Agent 再强也会犯错。正确姿势是:

  • **明确指出来**:不要说"不对"就完了,要说清楚哪里不对
  • **它改对了就继续**:不需要每次都要求它道歉,浪费 token
  • **如果反复犯错**:可能是模型不够聪明,试试换个好模型或 `/retry`
  • **如果反复同样错误**:记到记忆里,以后就不会再犯了
  • 什么时候别用它#

  • **一键执行的简单命令**:`rm -rf` 这种自己敲更快
  • **需要反复确认的交互**:它不适合做"下一步、下一步、下一步"的向导型任务
  • **涉及敏感信息的操作**:虽然 Hermes 有安全机制,但 API key、密码最好还是自己处理

  • 十一、几个一定会踩的坑#

    1. 配置改了但不生效#

    Hermes 的很多配置在会话启动时读取一次。改了之后需要 /reset(新会话)或重启进程。

    2. 模型名不要乱加前缀#

    用 opencode 提供商时,不要加 opencode-go/ 前缀hermes config set model.default deepseek-v4-flash 而不是 opencode-go/deepseek-v4-flash。加了也能用但启动时会报 warning。

    3. config.yaml 不能直接写#

    config.yaml 和 .env 是受保护的,write_filepatch 这些工具无法直接修改它们。标量值用 hermes config set,列表值用 sed

    4. 子代理干完活要验证#

    子代理的总结是"自述",不是经过验证的结论。特别是有外部副作用的操作(上传文件、发送 HTTP 请求、写文件),要自己核实一下。

    5. WebUI 的 busy_input_mode#

    上面说过了,如果发现澄清弹窗输入没反应,八成是这个没改。


    十二、进阶玩法#

    当你把 Hermes 用顺手了,可以尝试这些进阶玩法:

    多代理协同#

    hermes -w(worktree 模式)启动多个 Hermes 实例,每个负责不同模块,通过 tmux 管理它们的输出。适合大型项目开发。

    ACP 模式#

    如果你用 VS Code 或 JetBrains,Hermes 支持 ACP(Agent Communication Protocol),可以嵌入 IDE 使用。

    Webhook 自动化#

    设置 webhook 订阅,当外部事件触发时(比如 GitHub push),自动让 Hermes 执行任务。

    自定义工具#

    Hermes 的 Python 代码完全开源,你可以自己写工具注册进去。格式很简单:一个 Python 文件 + 几行注册代码。


    最后说两句#

    Hermes Agent 是我用过的最接近"理想 AI 助手"的东西。它不是最完美的(偶尔还是会犯蠢),但它的可扩展性学习能力是独一档的。

    如果你刚开始用,我的建议是:

  • **先用免费模型跑起来**,感受一下 Agent 的工作方式
  • **做一些日常任务**,看它怎么处理多步骤流程
  • **遇到复杂任务完成后**,保存成 Skill
  • **告诉它你的偏好**,它会记住
  • **用着用着**,它就会越来越懂你
  • 真的,这是一个"越用越聪明"的系统。

    如果你还没注册 OpenCode Go,记得用我的专属链接 👉 https://opencode.ai/go?ref=0D4PB30C43 注册,你我都能拿到 $5 免费额度,白嫖不香吗?

    好了,今天的分享就到这里。如果你对 Hermes Agent 有什么问题或心得,欢迎留言交流。觉得有用的话点个赞,咱们下期见!


    *本文由 Hermes Agent + 人类合作完成。猜猜哪部分是谁写的?😄*