walkinglabs · 12.3K⭐ · 14 讲 + 8 项目 · 有官方中文版
Anthropic 做过一个对照实验:同一个模型 Opus 4.5,同一个任务「做 2D 复古游戏编辑器」。裸跑 20 分钟花 $9,功能跑不起来;配上完整 harness(planner/generator/evaluator 三 agent)6 小时花 $200,游戏正常游玩。模型没换,换的是「马具」。
一个 prompt 文件不是 harness。Harness 由五个子系统组成,每个都有明确职责:
AGENTS.md 等结构化指令文件,约束行为
shell、测试、lint 等 agent 能调用的能力
隔离的执行环境、依赖、目录组织
跨会话的进度持久化与恢复
测试结果、验证命令,让 agent 知道自己对不对
可验证的「做完」标准,否则 agent 自己编一个
SWE-bench 50-60% 通过率是「精选任务」,真实需求更低。失败模式就那么几种:需求模糊、隐性约定没写、环境缺配置、无验证手段、跨会话状态丢失。
给出可操作定义。核心原则「仓库即规范」「给地图不给说明书」(AGENTS.md 100 行就够,拆到 docs/ 按需读)。
agent 看不到的东西对它不存在。所有必要上下文必须在仓库里,结构化呈现。
指令越堆越多,agent 反而抓不住重点。要分层、要精简、要按需加载。
超过 30 分钟的任务,失败率随状态丢失急剧上升。
把「搞清楚项目是怎么回事」和「解决问题」分开,用 init 脚本统一环境检查。
「上下文焦虑」:agent 感觉上下文快满了,会匆忙收尾、跳过验证。
feature_list.json 把「做什么」结构化,agent 逐项执行、逐项勾掉。
最最常见的失败模式:agent 说「做完了」但没做完。
有测试和没测试,agent 的表现天差地别。
日志、指标、追踪,让 agent 的运行过程可调试。
claude-progress.md 交接,下个会话接得上。
把「按按钮」也交给系统。/goal 命令:给目标、验证方式、停止条件,agent 自己循环到达成。
单循环之后必然长出图:多个 agent、loop、工具、评估者如何协作。节点、边、共享状态、路由规则。
| 阶段 | 塑造什么 | 回答的问题 |
|---|---|---|
| Prompt | 指令 | 怎么告诉模型做什么? |
| Context | 信息 | 模型做决定前该知道什么? |
| Loop | 运行时 | 怎么让模型自己循环到达成? |
| Graph | 系统 | 多个 agent/loop/工具如何协作? |
每层不是取代上一层,而是叠加。到了 graph,每个节点都带着自己的 prompt、context、loop——图决定的是节点之间怎么连。
提示词 vs 规则驱动,量化差距
搭一个 agent 能读懂的仓库
状态持久化,跨会话接得上
让 agent 按需加载上下文
可验证的完成定义
日志、调试
/goal 式 loop
多 agent 协作
walkinglabs/learn-harness-engineering · 12.3K⭐
docs-readme/zh-CN/README.md
AGENTS.md、feature_list.json 可直接复制
逐层拆 Pi / Claude Code / Codex / DeepSeek 的真实设计