Hermes Agent 这次不只更聪明,它开始自己证明做完了

大多数 AI Agent 的痛点不是“不会做”,而是“做完之后你不知道它是不是真的做完了”。它可能自信地告诉你任务结束,但漏了一个文件;可能跑完一段代码,却没有检查输出是否正确;也可能在某个步骤失败后继续下一步,仿佛什么都没发生。
Hermes Agent v0.18.0 —— 代号 “The Judgment Release” —— 的核心主题就是解决这个问题:让 Agent 自己证明它做完了。
查看 v0.18.0 完整发版说明 了解所有变更。
从“感觉做完了”到“证据上确实做完了”
在传统的工作流里,模型什么时候停止,很大程度上取决于模型自己的判断。它觉得自己回答完了,就停下了。但“觉得”不等于“符合预期”。
Hermes v0.18.0 引入了两种互相配合的机制,把“完成”从一个主观状态变成一个可验证的对象:
- Standing Goals(持续目标):你给 Agent 一个长期的完成条件,它会持续对照这个条件判断当前状态。
- Completion Contracts(完成契约):你把“做完”定义为一份可检查的契约,列出具体标准和需要验证的证据。
简单说,过去是你让它做,它自己说做完了;现在是你告诉它“什么叫做完”,它拿证据来交卷。
为什么“自我验证”是关键一步
Hermes 之前已经能调用工具、写代码、跑测试、管理文件。但这些能力加起来,仍然无法避免一个问题:Agent 不会主动回头检查自己的工作。
v0.18.0 的改变在于,Agent 在行动后会尝试验证结果是否满足预设条件。这听起来像是一个小改动,实际上它把 Agent 从“执行者”推向了“负责任的执行者”:
- 它会在完成文件修改后检查文件是否存在、内容是否符合预期。
- 它会在跑完命令后查看退出码、输出日志和副作用。
- 它会在告诉用户“已完成”之前,先对照契约中的完成标准过一遍。
这不是完美无缺的保证,但它显著降低了“看起来做完了,实际上差一步”的概率。
Standing Goals:把完成条件写成长期契约
Standing Goals 允许用户声明一个长期目标,并让 Agent 反复检查当前进度与目标之间的差距。它的典型用法包括:
- “把
src/utils.py里所有硬编码路径改成环境变量配置。” - “把仓库里所有 TODO 注释处理掉。”
- “确保所有 API 调用都带有重试逻辑。”
这类任务往往不是一次性动作,而是需要多次检查、多次修改。Standing Goals 让 Agent 在每次动作后问自己:“我现在离目标更近了吗?目标是否已经达成?”
用户只需要定义目标,Agent 会自己计划步骤、执行、验证、再迭代,直到目标达成或遇到需要人类介入的障碍。
Completion Contracts:把“完成”变成可检查项
如果说 Standing Goals 回答的是“目标是什么”,Completion Contracts 回答的就是“怎样才算完成”。
一个 Completion Contract 可以包含:
- 完成标准:需要满足哪些条件,例如文件存在、代码可运行、测试通过、输出符合格式。
- 验证方法:用什么工具或命令来验证,例如
pytest、curl、grep、diff。 - 失败处理:如果验证不通过,是重试、回滚,还是暂停等待用户。
这种结构让 Agent 的行为更透明。你可以看到它依据什么判定“完成”,也可以事后审计它的判断是否合理。
使用示例:让 Agent 自己验证修复
假设你想让 Hermes 修复一个 bug,并要求它在报告完成前跑通测试。一个典型的 Completion Contract 可以这样写:
目标:修复 utils/parser.py 中的空值解析异常
完成条件:
1. 异常用例不再抛出 TypeError
2. pytest tests/test_parser.py 全部通过
3. 新增至少一个回归测试覆盖该异常
验证方式:
- 运行 pytest tests/test_parser.py
- 检查 Git diff 包含 parser.py 和 test_parser.py 的修改
失败处理:
- 如果测试失败,先分析失败日志,再修改代码,最多重试 3 次
- 如果仍失败,暂停并报告给用户
Hermes 会按照这个契约执行,修改代码、跑测试、检查 diff,最后只有在三条条件都满足时才会报告完成。这比“改完代码就结束”可靠得多。
配合 Mixture-of-Agents:让验证更审慎
v0.18.0 还强化了 Mixture-of-Agents(MoA):把多个模型组成一个“评审团”,每个模型独立给出推理,最终由聚合模型综合答案。
在自我验证场景下,MoA 的价值在于:
- 多个模型可以独立检查同一份证据。
- 用户能看到每个参考模型的推理过程。
- 聚合答案不是“最有信心的那个”,而是“经过交叉验证后的结论”。
这相当于给 Agent 的完成判断加了一层同行评审。
用户能观察到的变化
对于实际使用者来说,v0.18.0 带来三个最直观的改进:
- 更少的“假完成”:Agent 会自己检查,而不是匆匆收尾。
- 更透明的判断过程:你可以看到它依据什么标准、检查了哪些证据。
- 更稳定的自动化任务:长时间运行的任务有了持续目标和完成契约,不容易中途走偏。
这些变化不体现在某个单一的炫酷功能上,而是体现在 Agent 的“做事方式”上。
局限与建议
自我验证不是万能的。它仍然受限于:
- 你定义的完成条件是否完整。
- 验证工具本身是否能覆盖真实的使用场景。
- 模型对验证结果的理解是否准确。
因此,建议在使用时:
- 把完成标准写得尽量具体、可检查。
- 优先选择有明确输出和退出码的验证方式。
- 对关键任务保留人工复核步骤,而不是完全交给 Agent 自己判断。
干货提炼
- Hermes Agent v0.18.0 “The Judgment Release” 的核心主题是 自我验证与完成证明。
- Standing Goals 让 Agent 持续对照长期目标检查进度。
- Completion Contracts 把“完成”拆成可检查的标准、验证方法和失败处理策略。
- Agent 不再仅凭“感觉”结束任务,而是需要对照证据做出判断。
- 配合 Mixture-of-Agents 的交叉验证,完成判断更审慎、更透明。
- 用户应写出具体、可检查的完成条件,并对关键任务保留人工复核。
参考: