🤖HermesBlog
Hermes 功能详解 · 第14篇2026/8/9· Easy Understand Hermes Agent

第14篇:持久目标——AI 的长期待办

Hermes 功能详解第14篇:持久目标。给 AI 设定长期目标,它会在合适的时机主动推进。

持久目标:AI 的长期待办

第14篇:持久目标——AI 的长期待办

你有没有过这种体验:让 AI 帮你改代码,它改了一处就停下来等你回话;你说“继续”,它再改一处,又停下来。来回好几轮,你像个复读机一样不停敲“接着弄”。

Hermes 的 /goal 就是来解决这个问题的。它给 AI 挂上一个长期待办——一个跨越多轮对话依然存在的目标。每轮结束后,会有一个轻量的“裁判模型”检查目标是否达成;如果没达成,Hermes 会自动把“继续”的提示喂回同一个会话,接着干,直到目标完成、你手动暂停/清除,或者轮次预算用完。

官方文档地址:https://hermes-agent.nousresearch.com/docs/(Persistent Goals 章节)

打个比方

普通对话像点外卖:你下单,骑手送到,交易结束。

/goal装修房子:你告诉工头“把厨房翻新好”,他会自己一轮一轮推进——拆旧、走线、贴砖、验收——中间不需要你每干一步就喊一声“继续”。只有全部完工,或者遇到必须你拍板的事,他才来找你。

什么时候该用

适合那些需要 AI 自己反复迭代的任务,比如:

  • “把 src/ 里所有 lint 错误修掉,并确认 ruff check 通过”
  • “把 Y 仓库的功能 X 移植过来,带上测试,让 CI 变绿”
  • “查清楚会话 ID 为什么在压缩时会漂移,写份报告”

如果任务一轮就能干完,不需要 /goal凡是你会忍不住说三遍“接着弄”的任务,就是它的用武之地。

快速上手

/goal 修好 tests/hermes_cli/ 里所有失败的测试,并确保 scripts/run_tests.sh 在该目录下通过

你会看到这样的流程:

  1. 目标被接受⊙ Goal set (20-turn budget): <你的目标>
  2. 第 1 轮开跑 — Hermes 像收到普通消息一样开始干活
  3. 裁判登场 — 每轮结束后,裁判模型判定 donecontinue 还是 blocked
  4. 需要就循环 — 若判定 continue,你会看到 ↻ Continuing toward goal (1/20): <裁判的理由>,Hermes 自动进入下一步
  5. 终止 — 最终看到 ✓ Goal achieved⏸ Goal paused

常用命令

命令 作用
/goal <文本> 设置(或替换)长期目标,并立即开跑第一轮
/goal draft <文本> 让 Hermes 把你的大白话扩写成结构化“完成契约”再设置
/goal show 查看当前目标的完成契约
/goal status 查看目标状态和已用轮次
/goal pause 暂停自动循环,但保留目标
/goal resume 恢复循环(轮次计数归零)
/goal clear 彻底清除目标

让“完成”更明确:完成契约

光写一句 /goal <文本> 能用,但目标越模糊,裁判越糊涂——它只能检查你让它检查的东西。

所以 Hermes 支持一个可选的完成契约,包含五个字段(都可选):

  • outcome:完成时必须成立的最终状态
  • verification:证明它成立的具体测试/命令/产物
  • constraints:不能破坏或回退的东西
  • boundaries:涉及哪些文件、目录、工具
  • stop_when:什么情况下该停下来问你

两种设置方式。推荐让 Hermes 帮你起草

/goal draft 把 auth 服务从 session cookie 迁移到 JWT

它会用辅助模型把你的话扩写成完整契约,展示给你审阅。或者自己内联写

/goal 把 auth 迁移到 JWT
verify: pytest tests/auth 通过
constraints: 保持 /login 响应结构不变
boundaries: 只动 services/auth 及其测试
stop when: 需要数据库 schema 迁移

中途加条件:/subgoal

目标跑到一半,你突然想加要求?不用重开循环,用 /subgoal <文本> 追加一条验收标准即可。裁判会被改写,必须原目标 + 每条 subgoal 全部满足才算完成。

比如你让它“修失败的测试”,中途发现还想“给刚修的 bug 补个回归测试”,直接:

/subgoal 加一个回归测试

质量门:让“完成”可机械验证

契约让裁判更严格,但裁判终究是个读文字的 LLM。质量门更硬核——它是一条必须退出码为 0 的 shell 命令,不通过就绝不算完成:

/goal 修好那些不稳定的 session 测试
/goal gate add scripts/run_tests.sh tests/hermes_cli/test_goals.py

每轮流程是:先跑门,再叫裁判。门失败就不叫裁判(红灯是铁证),门的输出会变成继续提示,让 AI 对着真实报错迭代。每个门默认重试 3 次、超时 5 分钟,用尽后目标自动暂停。

小结

/goal 把“你反复催 AI”变成“AI 自己盯着一个长期待办往前推”。配上完成契约(说清什么叫完成)和质量门(用命令证明完成),你就能放心地让它跑,自己该干嘛干嘛去。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/features/goals