BotOf TechAI / IoT / Full-Stack / 植物养护
返回首页Harness Engineering 14:从单次协作到完整 Harness 闭环

Harness Engineering 14:从单次协作到完整 Harness 闭环

完整 Harness 的目标,不是让 Agent 一次性生成更多代码,而是让它在每一轮都能更接近可交付结果。

这需要一个闭环:任务进入系统,经过计划和边界确认,Agent 执行单一 feature,验证器独立检查,运行信号进入反馈,状态写回仓库,最后留下干净现场。下一轮从这个状态继续。

完整闭环的组件

组件作用
任务入口把需求转成可验证 feature
计划器拆范围、写排除项、定义通过标准
执行者只做当前 active feature
验证器独立跑检查和评价表
观测层收集日志、trace、截图、测试结果
状态层写回功能清单、进度、决策
交接层保证下轮可恢复
清洁门控构建、测试、临时文件和启动路径都过关

这不是必须一次搭完的复杂系统,而是可以逐步叠加的工程骨架。

角色分离:先从逻辑分离开始

计划器、执行者、验证器可以是三个独立 Agent,也可以是同一个工具的三次不同调用。关键是不要让同一个上下文既写代码又轻易批准自己。

角色输入输出
计划器需求、架构、当前状态feature、范围、验收条件
执行者active feature、规则、环境代码变更、初步验证
验证器diff、运行环境、评价表通过、修订、阻塞

对于小项目,可以人工扮演计划器,把 Agent 用作执行者和验证器。对于长任务,再逐步自动化。

一轮工作应该怎么跑

阶段动作产物
Intake把需求写成 featurefeature 条目
Startup运行初始化和基线初始化记录
Contract明确范围和排除项任务契约
Build实现单一 featurediff
Verify跑验证命令和用户路径证据
Evaluate按 rubric 评分接受或修订
Handoff写回状态和下一步交接文件
Clean清理并确认启动路径干净现场

只要任一阶段失败,就不要跳到“完成”。失败也是输出,必须写回状态。

反馈要分层

Agent 需要的反馈不是一句“再改改”。反馈要分层,越具体越能减少重试成本。

层级示例
事实上传后 API 返回 500
原因缺少导入任务状态迁移
位置src/import/service 的完成回调
修复方向写入 done 状态并触发 UI 刷新
验证重新跑上传端到端用例

这类反馈会让下一轮直接朝根因走。

实操练习一:裸跑对比

可以用一个两小时练习检验 Harness 价值。

组别条件
A 组只给自然语言任务
B 组给入口、功能清单、初始化脚本、验收条件

比较指标:

指标观察什么
首次启动时间Agent 多久进入可运行状态
越界修改是否改了无关文件
验证完整度是否跑到用户路径
交接质量新会话能否接上
返工次数失败后是否有明确方向

如果 B 组明显更稳,就说明 Harness 正在发挥作用。

实操练习二:把 review 反馈升级成规则

选择最近三次人类 review 中重复出现的问题,把它升级成 Harness 能力。

重复问题升级路径
忘记跑构建clean-state checklist 加构建门控
UI 越过服务层依赖检查脚本
没记录验证证据feature 状态更新规则
错误态没有 UI端到端失败路径
新会话不知道进度handoff 模板强制填写

这是 Harness 变强的主要方式:把人的一次判断,变成系统的长期能力。

成熟度路线

阶段标志
Level 1有入口说明和启动脚本
Level 2有 feature 状态和验证证据
Level 3有端到端关键路径和评价表
Level 4有独立验证角色和观测信号
Level 5有周期清理、质量文档和规则升级机制

不要跳级。没有最小工作区时,直接上多 Agent 调度只会把混乱自动化。

最后一条原则

Harness Engineering 的核心不是让 Agent 更听话,而是让工作可恢复、可验证、可改进。

强模型会继续变强,但长期可靠性仍然取决于外部系统:任务是否清楚、环境是否可跑、状态是否可读、反馈是否具体、完成是否有证据、交接是否干净。

把这些做好,Agent 才从一次性生成器变成可协作的工程执行者。

参考材料