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 可以包含:

  1. 完成标准:需要满足哪些条件,例如文件存在、代码可运行、测试通过、输出符合格式。
  2. 验证方法:用什么工具或命令来验证,例如 pytestcurlgrepdiff
  3. 失败处理:如果验证不通过,是重试、回滚,还是暂停等待用户。

这种结构让 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 带来三个最直观的改进:

  1. 更少的“假完成”:Agent 会自己检查,而不是匆匆收尾。
  2. 更透明的判断过程:你可以看到它依据什么标准、检查了哪些证据。
  3. 更稳定的自动化任务:长时间运行的任务有了持续目标和完成契约,不容易中途走偏。

这些变化不体现在某个单一的炫酷功能上,而是体现在 Agent 的“做事方式”上。


局限与建议

自我验证不是万能的。它仍然受限于:

  • 你定义的完成条件是否完整。
  • 验证工具本身是否能覆盖真实的使用场景。
  • 模型对验证结果的理解是否准确。

因此,建议在使用时:

  • 把完成标准写得尽量具体、可检查。
  • 优先选择有明确输出和退出码的验证方式。
  • 对关键任务保留人工复核步骤,而不是完全交给 Agent 自己判断。

干货提炼

  • Hermes Agent v0.18.0 “The Judgment Release” 的核心主题是 自我验证与完成证明
  • Standing Goals 让 Agent 持续对照长期目标检查进度。
  • Completion Contracts 把“完成”拆成可检查的标准、验证方法和失败处理策略。
  • Agent 不再仅凭“感觉”结束任务,而是需要对照证据做出判断。
  • 配合 Mixture-of-Agents 的交叉验证,完成判断更审慎、更透明。
  • 用户应写出具体、可检查的完成条件,并对关键任务保留人工复核。

参考: