AIClaw Harness运行时:Agent必须获得证据才能结束
AIClaw新增的HarnessRuntime执行层,将模型提议完成与执行层放行分离。通过契约约束、证据记录、校验器分阶段校验及有限次纠偏,确保了工具证据与文件产物等形成闭环,有效避免虚假完成,并细化对最终结果的分类。
先说几个核心判断:AIClaw 近期在 origin/master 分支上连续提交了三组相关更新,核心目标均指向一个全新执行层——Harness Runtime。这个设计的意图很明确:许多 Agent 系统往往将“模型声称执行完毕”视为任务完成的标志,但在实际执行过程中,工具调用证据、生成的文件产物、计划终态以及阻塞原因往往并未真正闭环。AIClaw 此次将“模型提议完成”与“执行层准入完成”进行了明确分离。

2026-07-02feat: add harness execution protocol2026-07-06refactor(agent): integrate harness runtime verifier2026-07-09feat(agent): align harness execution runtime
先说问题
常见的 Agent 失败模式其实非常相似:模型先制定计划,调用几个工具,输出一段看似总结的文字,但实际缺乏充分的证据支撑,或者承诺的文件没有交付,甚至只是在汇报“我接下来会继续处理”。如果执行层直接接受这类响应,执行记录看似成功,实则将未完成任务包装成了已完成状态。
Harness Runtime 正是为了解决这一痛点而设计。根据项目 README 的描述,它被定位为一个独立的执行层:首先根据任务构建 Contract,然后记录 Evidence,在工具调用前后以及最终答复前后执行 Validate,必要时通过 Correct 机制要求模型进行纠偏。
核心设计:Contract -> Evidence -> Validate -> Correct
设计文档将整体流程抽象为四个阶段:Contract -> Evidence -> Validate -> Correct。映射到代码结构中,大致如下:
TaskContract:根据用户目标、Agent 角色配置、工具数量、附件以及计划状态等信息,推导本次执行所需满足的具体要求。EvidenceLedger:记录执行过程中实际发生的真实事件与数据。Validator:在不同阶段判断当前状态是否满足继续执行的条件。CorrectionState:当校验失败时,生成结构化的纠偏提示,引导模型补充缺失内容。
这里最关键的一点是,AIClaw 不再仅仅依赖最终输出的文本,而是评估“这条回答背后是否有足够的执行证据支撑”。
Contract 到底约束什么
pkg/harness/contract.go 文件中现在会推导多个关键约束:是否要求计划、是否要求工具调用证据、是否要求最终答复、是否要求文件产物、输出模式是 text、file、mixed 还是 json,以及最多允许的纠偏次数。
以“修改代码并生成文件”的任务为例,Contract 自然倾向于要求:需要计划、需要工具执行证据、需要产物校验,最终不能仅仅给出“我已经处理好了”这样的模糊表述。这使得执行层拥有了明确的放行标准。
Evidence 记录的不只是工具成功
EvidenceLedger 现在采集的信息非常全面,不仅仅记录“调用过哪些工具”。它会记录:实际执行过的业务工具、每个工具轮的 ToolEvent、文件产物与附件信息、当前计划快照、校验事件与纠偏事件,还包括阻塞证据——例如权限不足、认证失败、策略拦截、资源不存在、限流、超时等。
这点非常重要,因为许多真实失败并非简单的“工具报错”,而是不同类型的 blocker 需要不同的最终答复策略。例如:权限问题应向用户明确说明缺少哪些权限;认证问题应提示重新登录或补充授权;资源不存在应让用户确认名称或配置;可恢复的超时和限流,则可以先重试或解释外部服务状态。
四个校验关口
AIClaw 现在将校验拆分为四个阶段:
| Stage | 作用 |
|---|---|
pre_tool | 工具调用前,先检查策略是否允许执行 |
post_tool | 工具轮结束后,检查当前证据是否足够支撑后续流程 |
pre_final | 模型准备结束时,检查最终答复是否具备可交付性 |
pre_sa ve | 渲染完附件链接后,保存前再次确认交付内容没有遗漏 |
这种拆分比“最后统一判断一次”更加实用。因为不同问题出现在不同阶段:有些问题在工具尚未执行时就应该被拦截;有些工具执行后失败类型需要进入证据系统;有些最终答复看似完整,实则只是进度汇报;有些任务要求交付文件,但回答中缺乏可引用的文件标识。Harness Runtime 正是在这些关键节点上层层收口。
它怎么识别“假完成”
这次实现中特别实用的一点是,pkg/harness/outcome.go 对最终结果做了更细致的分类:success、blocked、partial、progress_only、unknown。这意味着 AIClaw 不会再将“非空文本”直接视为完成状态。
如果模型输出的是“我接下来继续生成”、“请稍等,我正在处理”或“下一步我会整理文件”这类内容,将更容易被归类为 progress_only,并在 pre_final 阶段被拦截。反之,如果工具失败是由于权限或认证问题,Harness 也能要求最终答复明确解释阻塞原因,而不是给出模糊的总结。
纠偏不是无限重试
校验失败后,AIClaw 不会立即结束,也不会无限制地让模型重试。internal/agent/harness_verifier.go 中将纠偏统一为一个有预算的 nudge 机制。例如,final gate 被拒绝、tool round 证据不足、模型输出被截断、流式中断或空输出后的恢复提示,这些情况都会消耗同一套纠偏预算。
如果预算还有剩余,系统会追加 correction prompt,要求模型补充证据、结果或阻塞说明。如果预算耗尽,系统会明确以失败收口,而不会将未完成的结果包装成完成状态。
和 Runtime Plan State 的配合更完整了
这组改动并非孤立功能,它与 AIClaw 现有的 Runtime Plan State 紧密联动。当 Contract 推导出本次任务需要计划,而当前会话又没有 active plan 时,Harness 可以直接引导出一个初始计划模板,大致包括:理解目标和依赖信息、执行必要工具并收集证据、校验证据和输出要求、汇总结果并交付最终答复。
这样做的好处是,Plan 仍然是运行时的状态变量,不会退化为聊天正文中的 TODO 文本;而 verifier 又能确保计划到达终态后,最终答复才被允许结束。
新增的 finish 工具也很关键
2026-07-09 的对齐工作中,还新增了一个内置 finish 工具。它的意义并非“让模型更容易结束”,而是让模型能够以结构化方式提交“这是最终答复”,然后由 Harness 执行一次 explicit final gate 校验。也就是说:模型可以声明“我准备结束”,但真正决定能否结束的,仍然是执行层。这个边界非常清晰,也更便于在执行日志中排查问题。
对使用者有什么实际价值
这并非一个“让回答更像 AI”的功能,恰恰相反,它是在压缩 Agent 幻觉式完成的空间。对于真正运行生产任务的系统,这类能力会直接影响可操作性:更少的“看起来完成,实际未完成”的结果;更清晰的 blocker 说明;更稳定的附件与文件交付校验;出问题时,execution log 中能看到明确的 harness 校验/纠偏轨迹。
项目 README 中现在将 AIClaw 定位为一个强调显式执行轨迹、可观察运行状态、减少“隐形魔法”的自托管 Agent 平台。Harness Runtime 正是这个方向中非常核心的一步。
想继续看代码,可以从这些文件开始
docs/design/agent-harness-runtime.mdinternal/agent/harness.gointernal/agent/harness_verifier.gointernal/agent/finish_tool.gopkg/harness/contract.gopkg/harness/runtime.gopkg/harness/outcome.go
如果你也在从事 Agent 执行层的开发,这部分内容非常值得细读。它讨论的不是“如何编写更聪明的提示词”,而是“模型给出完成信号之后,系统凭什么相信它真的完成了”。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
天学会AI应用开发上下文与RAG阶段性总结
系统梳理了AI应用开发中的上下文与RAG核心概念。搭建Python3 10开发环境后,通过提示词工程管理历史对话,利用截断、摘要提取及离线大模型压缩上下文。RAG采用加载文档、分块、向量化、存入FAISS或Chroma库、检索五个步骤,中文场景推荐BGE-small嵌入模型,实战证明离线检索有效。
Yank Note系列14:如何与AI协作写文章
YankNote3 92 1发布,新增“审阅批注”和“编辑装订线”扩展,聚焦AI写作的人机协作循环。审阅批注将反馈绑定到选中文本,编辑装订线高亮显示修改行,帮助人看清AI改动。同时升级Markdown-it至14 3 0,优化中日韩文本渲染。
一文读懂MCP:让AI大模型万能插拔协议
MCP(模型上下文协议)由Anthropic提出,为AI大模型提供通用接口标准,解决工具调用碎片化问题。采用Host Client Server架构,支持动态发现工具,通过stdio或HTTP通信,实现工具即插即用、跨语言调用和统一对接规范。
BeeWeave开源:为AI Agent打造越用越懂你的知识创作台
BeeWeave是一个Agent原生的知识创作台,通过workbench和vault双层结构实现素材获取、内容创作、知识沉淀与上下文复用的持续闭环。它支持多Agent共用同一套知识库,内置41个Skills,采用MIT开源协议,旨在解决跨会话知识丢失问题。
AI闭环工程师自动推进工程任务
LoopEngineer是一种将AI嵌入可执行、可验证、可持续迭代的工作循环中的工程协作方式。通过触发器、上下文、工具和验证机制,AI在循环中自动分析、执行、验证并调整,直至任务完成或需人工介入,实现复杂任务的可观察、可审计、可批准的分段自动化。
- 热门数据榜
相关攻略
2026-07-12 15:04
2026-07-12 15:04
2026-07-12 15:04
2026-07-12 15:03
2026-07-12 15:03
2026-07-12 15:03
2026-07-12 15:03
2026-07-12 15:03
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

