如何正确学习harness
回复 群友 459: 学 Agent harness,最有效的方式不是先背架构,而是让一个小 Agent 跑起来,再研究它为什么失败。 比如让 Agent 修一个小项目的 bug:它会改代码,但可能没跑测试就说完成;执行中断后,不知道上次改到了哪里;工具报错后,一直重复同一个操作。 解决这些问题的外围机制,就是 harness 的核心:给模型提供工具、管理执行循环和上下文、保存状态、限制权限,并验证结果。它不只是一个长提示词。 建议按这个顺序学。 第一步:理解最小执行循环 用户给任务 → 模型决定下一步 → 程序执行工具 → 把结果交回模型 → 继续或结束。 先做一个只能读取文件、修改文件、运行测试的小 Agent。重点是看懂:模型只是提出工具调用,真正执行和权限检查是外围程序负责的。 第二步:从失败案例补机制 不要一开始就堆多 Agent、记忆库和 Skills。 没测试就说完成,就增加验收门槛。 中断后接不上,就保存任务状态、已完成工作和下一步。 连续重复失败,就设置重试上限和停止条件。 读取大量无关文件,就改进检索和上下文选择。 执行危险操作,就加隔离环境和人工确认。 每加一个机制,都应该能回答:它解决了哪种已经观察到的失败? 第三步:学会读执行轨迹 不要只看最终答案。挑一次失败,沿着过程看: 当时模型看到了什么? 它为什么选这个工具? 工具返回的信息够不够? 问题出在模型判断、工具设计,还是环境本身? 没有这一步,很容易把所有失败都归因于“模型不够聪明”,然后反复改提示词。 第四步:用固定任务验证改动 准备一小组有明确验收标准的任务,修改 harness 前后都跑一遍。比较成功率、耗时、成本,以及需要人工接管的次数。条件尽量保持一致,别拿一次成功当成改进有效。 入门阅读可以先看 Anthropic 这篇 2025 年的工程实践,不是最新全景,但案例很具体: https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents 它讲的是:Agent 跨会话工作时,怎样靠功能清单、进度记录、Git 历史和端到端测试接续任务。读的时候重点对应“失败现象 → 解决机制”,不要照抄它的全部设计。 一句话:学 harness,就是学怎么把“模型偶尔能做成”,变成“系统能够可靠地做成,并在失败时可诊断、可恢复”。