课程深度教案 walkinglabs / learn-harness-engineering
v.2026 · 12 讲 + 6 项目

从提示词到
环境工程

Harness Engineering 深度教案
—— 为 Coding Agent 搭建一套可工程化、可复制、可观察的工作环境

"最强的模型,搭配错的环境,依然会在真实工程任务中翻车。这不是模型问题——这是 harness 问题。"

§ 00 — 课程核心论点

这门课真正在回答的问题

题不是"模型能不能写代码"——能写。问题是:能不能在真实的仓库里,跨越多次会话,不需要人一直盯着,就可靠地完成真实的工程任务?现在的答案是:没有 harness 就不行。这门课的全部内容,都在系统化地回答"如何搭建那个让答案变成'行'的 harness"。

这是一门项目制课程,不是论文综述。它把当下业界最前沿的两份关键文档——OpenAI 的 Harness EngineeringAnthropic 的 Effective Harnesses for Long-Running Agents——拆成 12 个可教学的概念单元,再用 6 个围绕同一个 Electron 知识库桌面应用渐进演化的项目,让学生在真实代码中亲手验证每一个机制。

模型决定写什么代码。
Harness 管控什么时候写、在哪里写、怎么写。
Harness 不让模型变聪明——它让模型变可靠。 — 课程核心命题

对照实验:同一个模型,0 → 100% 的差距

课程开篇就给出最有说服力的两个证据,这也是整门课的"起点性事实":

Anthropic 实验

同一个 Opus 4.5,同一条 Prompt

"做一个 2D 复古游戏编辑器"。没有 harness:20 分钟 · $9 · 跑不通。有完整 harness(planner + generator + evaluator):6 小时 · $200 · 可玩。模型没换,换的是 harness。

OpenAI Codex 报告

仓库即决定因素

在"harness 搭得好"的仓库里,同一个 Codex 模型从"不可靠"变成"可靠"——不是好一点的边际优化,是质变。差别不在模型权重,差别在仓库结构本身。

这两条结论加在一起,把行业过去三年的注意力从"调更好的 prompt"硬生生掰回了"建更好的环境"。这门课就是这一转向的系统化教学版本。

§ 01 — 概念对照

Prompt 工程 vs Harness 工程

大部分人嘴里的 "harness" 其实只是"一个 prompt 文件"。这就像你开了一家餐厅,只有食材——没有灶台、没有刀具、没有菜谱、没有出菜流程——那不叫餐厅,那叫冰箱。

只写提示词

会话 1:agent 写代码 → 搞坏测试 → 说"做完了" → 你手动修复。
会话 2:agent 从头开始,没有上次的记忆,重新做一遍或做了完全不同的事,你再修一次。

  • 每次会话都是独立的,没有跨会话记忆
  • "完成"靠 agent 自报,没有可执行的验证
  • agent 偷偷扩张范围、半完成多个功能
  • 你花在收拾烂摊子的时间 > 自己写
  • 提示词越加越长、越加越乱,仍然抓不住关键变量
建好规则

会话 1:agent 读指令 → 跑 init.sh → 一次做一个功能 → 验证通过才算完 → 更新进度日志 → 干净 commit。
会话 2:读进度日志 → 从上次停下的地方继续 → 你是审查,不是救火。

  • 会话之间通过仓库内文件持久化连接
  • "完成"必须有可运行的测试证据
  • 功能清单是机器可读的硬边界,无法被忽略
  • 每次会话进入和退出都有结构化协议
  • 5 个子系统协同:指令 + 状态 + 验证 + 范围 + 生命周期

定义:Harness 究竟是什么

课程给出一个精确而可操作的定义——Harness = 模型权重之外的一切工程基础设施。OpenAI 把工程师的核心工作概括为三件事:设计环境、表达意图、构建反馈循环。Anthropic 直接把 Claude Agent SDK 称为"通用 agent harness"。两家公司侧重点不同,但都在说同一件事:

模型之外的一切工程基础设施,
决定了模型能力能被发挥多少。 — Harness Engineering 的底层公理
认知拐点 / Mental Pivot

从 prompt 工程到 harness 工程的转变,本质上是从"说服模型做对"转向"构建一个让模型只能做对的系统"。前者把 agent 当成需要哄好的同事,后者把 agent 当成必须配套基础设施才能正常运转的"计算资源"。

§ 02 — 概念核心

五子系统模型 / The Five Subsystems

程把一个完整的 harness 拆成五个职责清晰的子系统。这五者缺一不可——就像厨房的五个功能区:菜谱架、刀具架、灶台、备菜台、出菜检查口。少一个,菜还是能做,但总是别扭。这套模型是整门课的"概念基石",后面 12 讲都在围绕它展开。

01 / 指令
菜谱架

Instructions

AGENTS.md
CLAUDE.md
feature_list
docs/
告诉 agent 做什么、按什么顺序、开工前先读什么。不是一个巨大的文件,而是渐进式展开(progressive disclosure)的结构。
02 / 状态
备菜台

State

progress.md
feature_list
git log
session handoff
跟踪做了什么、正在做什么、下一步是什么。持久化到磁盘,下次会话从上次停下的地方继续。
03 / 验证
出菜检查口

Verification

tests + lint
type-check
smoke runs
e2e pipeline
只有通过的测试套件才算证据。agent 不能没有可运行的证明就说"做完了"。投入产出比最高的子系统。
04 / 范围
订单

Scope

feature_list.json
definition of done
scope rules
约束 agent 一次只做一个功能。不多做、不少做、不偷偷改清单掩盖未完成的工作。
05 / 生命周期
开门 / 关门

Lifecycle

init.sh
clean-state checklist
handoff note
开始时初始化,结束时清理,给下次会话留一条干净的重启路径。可安全恢复才能 commit。

五子系统协同工作流

这五个子系统不是独立模块——它们围绕 agent 形成一个闭环。指令告诉 agent 该做什么;agent 通过工具访问环境;环境的运行结果回到反馈(验证);状态记录贯穿始终;范围在每一步约束 agent 的行动半径。

AI Agent MODEL CORE 写什么代码由它决定 01 — INSTRUCTIONS 指令 AGENTS.md · feature_list 02 — STATE 状态 progress.md · git log 03 — VERIFICATION 验证 tests · lint · e2e 04 — SCOPE 范围 one feature at a time 05 — LIFECYCLE 生命周期 init.sh · handoff feedback loop 五个子系统围绕模型形成闭环 · 反馈回路(虚线)是性价比最高的一环

诊断方法:等模型对照实验

实操工具 / Diagnostic Method

想量化 harness 各组件的价值?保持模型不变,逐个移除五个子系统,看哪个子系统缺失时性能下降最多。那个就是你的瓶颈——集中精力加强它。这是 Anthropic 在内部反复使用的方法(component ablation),也是这门课贯穿始终的诊断思路。课程的 P06 综合项目要求学生亲手做一次完整的消融实验。

真实团队案例:成功率 20% → 100%

Case Study · 课程引用

GPT-4o + TypeScript/React 应用(约 20k 行)

一个团队经历四个阶段——其实就是在一件一件地添置厨具。模型一个字没改:

Stage 1 · 空厨房
只有 README 里的基本描述。选错包管理器、不遵循命名约定、跑不了测试。
20%
Stage 2 · 装菜谱架
加 AGENTS.md:技术栈版本、命名约定、关键架构决策。剩余失败来自环境与验证缺失。
60%
Stage 3 · 开出菜检查口
显式列出验证命令:yarn test && yarn lint && yarn build
80%
Stage 4 · 备菜台就位
引入进度文件模板,agent 在每次运行中记录完成和未完成的工作。
80–100%

四次迭代,模型一个字没改,成功率从 20% 到接近 100%。你没有换更贵的食材,你只是把厨房收拾利索了。

§ 03 — 结构化流程

Agent 会话生命周期协议

这门课的另一个核心理念:agent 的一次会话不应该是"自由发挥",而应该遵循一套结构化的、可重复执行的协议。开工、选取、执行、收尾——每一步都有明确动作,每一次状态转换都被 harness 管控。

START 开工:把上次的世界重建出来
  1. AGENTS.md / CLAUDE.md——加载项目硬约束与导航
  2. 运行 init.sh——依赖安装、环境验证、健康检查一条龙
  3. claude-progress.md——上次会话发生了什么
  4. feature_list.json——哪些功能已完成、哪些待办
  5. 检查 git log——最近的实际改动是什么
SELECT 选取:一次一个,不多不少
  1. 从 feature_list 中选定 恰好一个 未完成功能
  2. 明确这次会话只动这一个功能——任何"顺手再做一下"都被拒绝
EXECUTE 执行:写完不算完,验证才算完
  1. 实现功能
  2. 运行验证:tests、lint、type-check、e2e
  3. 验证失败 → 修复 → 重跑(不允许跳过)
  4. 验证通过 → 记录证据(哪条命令、什么输出)
WRAP-UP 收尾:给下一次会话留一条干净的路
  1. 更新 claude-progress.md——本次做了什么、验证了什么
  2. 更新 feature_list.json——状态、证据、下一步
  3. 记录还没做完和还没验证的部分(不掩盖)
  4. commit——只在可以安全恢复时
  5. 留下重启提示(next session 一开机就知道做什么)
关键洞察

Harness 管控每一次状态转换;模型决定每一步具体写什么代码。没有 harness 时,第 9 步会变成 "agent 说看起来没问题"。有 harness 时,第 9 步是"测试通过、lint 干净、类型检查通过,且证据写在了 progress.md 里"。这是整门课对"什么叫做完"的重新定义。

§ 04 — 课程主体

12 讲深度拆解

12 个讲义按"问题驱动"组织,每讲只回答一个核心问题。下面给出每讲的核心问题、关键概念、核心论证与"为什么这一讲重要"。讲义之间按六个学习阶段递进,每两讲对应一个项目。

阶段 1 · 看到问题(L01–L02)

01Lecture

为什么强模型仍然会在真实任务中翻车

"Why do strong models still fail on real tasks?"

开篇之讲,建立"基准测试与真实工程之间的能力鸿沟"这个起点性事实。指出 SWE-bench、HumanEval 等基准测试上的表现并不等同于在真实仓库里跨多次会话完成多步工程任务的能力——后者依赖的不只是"会写代码",还包括对项目约定、构建系统、测试结构、隐式假设的把握。

学生在这一讲建立认知拐点:把目标从"模型能力"重新对准"环境与模型的共同体"。这一拐点不发生,后续 11 讲都白讲。

配套项目 · P01 baseline vs minimal harness
02Lecture

Harness 到底是什么

"What does 'harness' actually mean?"

给出五子系统模型的精确定义。强调"harness ≠ 一个 prompt 文件",而是指令 + 状态 + 验证 + 范围 + 生命周期的协同结构。用"厨房五大功能区"做类比,让抽象概念可感可触。

关键论证:OpenAI 把工程师工作概括为"设计环境、表达意图、构建反馈循环";Anthropic 直接把 SDK 称为"通用 agent harness"。两家公司路径不同,结论一致:模型权重之外的一切才是 harness

五子系统中,反馈子系统(验证)通常是投入最少、回报最高的——这是这一讲留给学生的"先动手哪里"的明确指引。

认知基石 · 后续 10 讲都在围绕五子系统展开

阶段 2 · 组织仓库(L03–L04)

03Lecture

为什么仓库必须成为唯一的事实来源

"Why must the repo become the system of record?"

OpenAI harness 哲学的最硬核命题:agent 看不到的东西,对它来说就不存在。如果项目约定写在 Notion 里、构建命令写在 Slack 里、验收标准写在 PM 的脑子里,那对 agent 而言它们都不存在。所有让 agent 能可靠工作的上下文必须以文件形式存在于仓库内。

这一讲是组织结构层的"硬地基"——后面的所有状态文件、feature list、progress log,本质都是"把上下文搬进仓库"。

原则 · Repository as System of Record
04Lecture

为什么一个巨大的指令文件会失败

"Why does one giant instruction file fail?"

有了"仓库是事实来源"原则后,很多人下一步会犯的错误是:写一个无所不包的 AGENTS.md。但巨型文件会被模型按"开头近因 + 末端近因"截取上下文,关键中段往往被忽略。OpenAI 的经验:AGENTS.md 应该是目录页,不是百科全书——约 100 行,放不下就拆分到 docs/ 让 agent 按需读取。

关键概念:渐进式展开 / Progressive Disclosure——给地图,不给说明书。让 agent 自己去找具体细节,而不是把所有东西塞进入口文件。

配套项目 · P02 agent-readable workspace

阶段 3 · 连接会话(L05–L06)

05Lecture

为什么长任务会丢失上下文连续性

"Why do long-running tasks lose continuity?"

这是 Anthropic 文章最看重的问题。Coding agent 的上下文窗口有限,一旦超过几小时或几次会话,关键决策就会被新的对话挤出窗口。结果:agent 反复重做、做错、做了完全不同的方向。

解法是"把状态写到磁盘上"——progress.md 记录每次会话发生了什么,下次会话开头就读它。把"记忆"从模型上下文转移到仓库文件,这是这一讲的核心机制。

核心机制 · Persistent State on Disk
06Lecture

为什么初始化需要单独成为一个阶段

"Why does initialization need its own phase?"

"环境健康"是一切工作的前提,但环境会腐化:依赖版本漂移、本地缓存损坏、上次会话残留的脏文件。如果不显式跑一遍 init,agent 会在一个看似正常但暗藏问题的环境里工作几小时,最后才发现根本问题在环境上。

解法:init.sh 作为会话开工的第一个动作——dependency install、verification、health check 一条龙,失败就停下来,绝不带着隐患进入主任务。

配套项目 · P03 multi-session continuity

阶段 4 · 反馈与范围(L07–L08)

07Lecture

为什么 agent 会同时多做又少做

"Why do agents overreach and under-finish?"

Agent 有一种典型的"半完成多个东西"倾向:开始做功能 A 的一部分,过程中觉得"顺手把功能 B 也加上",又被 B 拖住,最后两个都没做完,进度日志一片混乱。

解法是"一次一个功能"原则 + 显式的 Definition of Done。前者来自范围子系统的约束,后者来自验证子系统对"完成"的重定义——没有可运行证据就不能宣告完成。

原则 · One Feature at a Time
08Lecture

为什么功能清单是 harness 的"原语"

"Why are feature lists harness primitives?"

这一讲提升了 feature_list 的地位——它不是普通文档,是 harness 的原语(primitive):机器可读、有明确状态字段、有验证步骤、有证据链。agent 无法绕过它(一切动作都要登记),也无法"偷偷改"(修改本身就是可审计的)。

这一讲让学生意识到:结构化数据 > 散文式指令。一个 JSON 比一段 Markdown 更难被"创造性解读"。

配套项目 · P04 incremental indexing

阶段 5 · 验证(L09–L10)

09Lecture

为什么 agent 会提前宣告完成

"Why do agents declare victory too early?"

这是体感最强的痛点。Agent 写完代码后会"自我感觉良好地"说做完了——读自己的 diff、模拟一下执行流程,得出 "Looks good!" 然后停手。本质是 验证缺口(verification gap):模型的"自信"不等同于"正确"。

Anthropic 的关键解法:把"干活的人"和"检查的人"分开——separate writer and verifier。让另一个 agent(或同一个 agent 的另一轮)专门负责审查,不允许写代码的那一轮自己拍板"完成"。

机制 · Writer / Verifier Separation
10Lecture

为什么端到端测试会改变结果

"Why does end-to-end testing change results?"

单元测试通过 ≠ 应用真的能跑。Agent 经常做出"测试通过但集成时崩溃"的代码:mock 用错了、依赖注入错了、构建链断了。课程把"完整流水线跑通"立为唯一可信的验证标准——install → build → unit → integration → e2e 全过,才算"完成"。

这一讲也解释了为什么验证应该写进 init.shverify.sh——让 agent 必须跑、且能复现地跑。

配套项目 · P05 grounded QA verification

阶段 6 · 全部串起来(L11–L12)

11Lecture

为什么可观测性属于 harness 自身

"Why does observability belong inside the harness?"

很多人把可观测性当成"日志库"——它远不止。当 agent 在你的仓库里跑 6 小时,做了 200 次文件编辑和 80 次 shell 调用,如果你看不到它做了什么,你就修不了它搞坏的东西。可观测性必须是 harness 的内建子系统:会话日志、命令执行轨迹、文件变更摘要、决策点回放。

这一讲把 P11 与 OpenAI Codex 的本地可观测性栈(日志/指标/追踪 + git worktree 隔离)对齐,是"工业级 harness"的标志。

原则 · Observability is a First-Class Citizen
12Lecture

为什么每次会话都必须留下干净状态

"Why must every session leave a clean state?"

课程收官:下一次会话的成功,取决于这一次会话的清理。clean-state checklist 应该是会话结束前 agent 必须跑过的最后一道关口——所有改动 commit、所有进度文件更新、所有未完成项明确登记、没有遗留的脏文件。

课程在这里完成闭环——L06(开工初始化)与 L12(收尾清理)形成结构对偶:每次开门和关门都有协议。这是工业级 harness 与 hobby-grade harness 的分水岭。

配套项目 · P06 runtime observability + full harness
§ 05 — 实战层

6 个项目围绕同一个应用演进

课程最有匠心的设计:所有 6 个项目都围绕同一款 Electron 个人知识库桌面应用。P(N+1) 的 starter 来自 P(N) 的 solution——应用本身在演化,你的 harness 技能也跟着一起演化。这避免了"每个项目从零开始"的认知负担,让学生能在真实的、持续变化的代码库里观察 harness 改进的累积效果。

贯穿项目 · The Capstone App

Electron 个人知识库桌面应用

核心功能:导入本地文档 → 管理文档库 → 处理与索引 → AI 问答(带引用) → 返回可追溯的回答。选这个应用是因为它同时具备:实际价值感强真实的产品复杂度非常适合观察 harness 优化前后的对照——既有 UI、又有索引、还有 AI 调用,三条线索都能被 harness 影响。

P01Baseline

只写提示词 vs 定好规则——你看到问题

用同一个任务跑两次:第一次只给 prompt,第二次给完整最小 harness。亲手对比两次的成功率、返工次数、时间花费。这是整门课最重要的"打脸时刻"——大多数学生在这里第一次相信 harness 真的有用。

引入机制AGENTS.md
init.sh
feature_list.json
P02Workspace

重组仓库,让 agent 能读懂——你重组结构

把项目重构成 agent 友好的结构:渐进式 AGENTS.md(目录页 + docs/)、明确的命令清单、持久化状态文件初步引入。这里学生第一次实践"渐进式展开"原则——不写一个巨型 prompt,而是写一张能让 agent 自己导航的地图。

引入机制agent-readable layout
persistent state files
docs/ 拆分
P03Continuity

让 agent 关掉再打开还能接着干——你连接会话

这是体感最强的项目之一。学生强制把一个 4–6 小时的任务拆到三天里完成,每天关掉 agent 重新开。如果 harness 没做好,第二天的 agent 会重做第一天的工作;做好的 harness 会让它从 progress 日志和 feature_list 里"完全恢复上下文",继续干第三天的剩余任务。

引入机制progress log
session handoff
multi-session continuity
P04Scope

防止 agent 做多了或做少了——你加上反馈循环

实现增量索引功能,强制 agent 一次只动一个功能、做完一个再做下一个。引入运行时反馈机制——agent 每完成一步要从 verification 拿到证据,证据缺失就回去重做。这里学生真正理解了"功能清单作为原语"的实际意义。

引入机制runtime feedback
scope control
incremental indexing
P05Verify

让 agent 自己验证自己的工作——你让它检查自己

实现带引用的问答功能,要求 agent 给出的每个回答都有可追溯的文档来源。借此让学生第一次实现"writer / verifier 分离"模式:写答案的那一轮不能宣告完成,必须由另一轮专门审查,引用对不上就回退重做。这是 Anthropic harness 哲学的核心实践。

引入机制self-verification
grounded answers
evidence-based done
P06Capstone

从零搭建完整 harness——你建造完整系统

综合项目:把前 5 个项目积累的所有机制系统地组织成一套"工业级 harness",加入运行时可观测性(命令轨迹、文件变更摘要、决策回放),并做消融实验——依次移除每个子系统,量化它的边际贡献,写成报告。这是整门课的"出师作品",学生在这里成为真正能为自己团队搭 harness 的从业者。

引入机制full harness
observability
ablation study

项目演进的隐含教学法

这套"同一应用,逐项目演化"的设计有两个非常聪明的教学副作用:

§ 06 — 立即可用

不读完 12 讲也能今天就用

课程作者在 README 中专门给出"最小起步"路径:四个文件,今天放进你的项目,明天 agent 的稳定性就会有可感的提升。这是这门课少见的"先尝甜头、再看原理"的入口设计,特别适合想推动团队采纳的技术负责人——先做一次能复述的小成功,再讲方法论。

# 你的项目根目录 your-project/ ├── AGENTS.md // agent 操作手册(菜谱架) ├── CLAUDE.md // 备选,如果你用 Claude Code ├── init.sh // 安装 + 验证 + 启动 一条命令搞定 ├── feature_list.json // 机器可读的功能清单 + 完成状态 ├── claude-progress.md // 每次会话发生了什么 └── src/ // 你的实际代码

四个文件的作用与最简内容

File 01 / AGENTS.md or CLAUDE.md

项目操作手册(约 100 行)

包含五件事:项目一句话概述、技术栈与版本、首次运行命令、不可违反的硬约束(如"所有 API 必须走 OAuth 2.0")、指向更详细文档的链接。关键是"指南"不是"百科"——agent 按需自己跳转去 docs/ 读细节。

File 02 / init.sh

会话开工脚本

三段:INSTALL_CMD(依赖安装)→ VERIFY_CMD(验证环境健康)→ START_CMD(启动服务)。失败必须 exit non-zero,强制 agent 在环境有问题时停下来,绝不带着隐患进入主任务。

File 03 / feature_list.json

功能清单(harness 原语)

每个 feature 至少四个字段:idstatus(todo/in_progress/done/blocked)、verify_command(什么命令能验证它完成)、evidence(最近一次验证的输出摘要)。这是 agent 不能绕过的范围边界。

File 04 / claude-progress.md

会话进度日志

每次会话尾部写一段:本次做了什么、验证了哪些、哪些做了一半、哪些被阻塞、下次进来该做什么。会话开头读它,会话结尾写它——这条简单的循环就把"跨会话记忆"问题解决了 80%。

升级路径:项目变复杂后再加

四件套之后,按项目演化引入:

§ 07 — 节奏建议

六阶段学习路径

课程不建议跳读。每两讲对应一个学习阶段,每个阶段一个项目。兼职节奏每阶段约一周;想加速的话,前三阶段一个长周末就能跑完。

Phase 01

看到问题

  • L01 · 强模型 ≠ 可靠执行
  • L02 · 五子系统模型
→ P01 baseline 对照
Phase 02

组织仓库

  • L03 · 仓库即事实来源
  • L04 · 渐进式展开
→ P02 agent-readable workspace
Phase 03

连接会话

  • L05 · 跨会话状态持久化
  • L06 · 显式初始化阶段
→ P03 multi-session continuity
Phase 04

反馈与范围

  • L07 · 一次一个功能
  • L08 · 功能清单作为原语
→ P04 incremental indexing
Phase 05

验证

  • L09 · Writer / Verifier 分离
  • L10 · 端到端流水线
→ P05 grounded QA
Phase 06

全部串起来

  • L11 · 可观测性属于 harness
  • L12 · 干净状态收尾
→ P06 full harness (capstone)
阅读建议

如果你已经在用 Claude Code 或 Codex 做项目,非常建议直接从 P01 开始,再回头读 L01–L02 印证。课程的设计就是"先用后悟"——亲手做过对照实验,才更能体会五子系统模型的精度。直接读概念再去做项目,反而会觉得"这不是显然吗",错过认知重塑的最佳时机。

§ 08 — 教学法

这门课的工程哲学

读完整个课程目录,能感受到几条贯穿始终的工程哲学。它们既是课程的设计准则,也是 harness engineering 这个学科的"性格"。

§ 09 — 横向连接

与现有 agent 体系的连接

这门课不是孤立存在的——它处在 2025–2026 年间快速演化的 agent 工程生态中。把它和你已经熟悉的几条线索放在一起看,会得到更立体的理解。

1. Skills / Harness / Tools 三层架构

如果你熟悉 Anthropic 的 Skills 体系或 MCP 生态,Harness Engineering 教的就是"Harness 这一层"的工程化:Skills 是可复用的领域能力包,Tools 是底层可调用的原语,Harness 是把这两者组织起来、加上状态/验证/范围/生命周期的运行时环境。Skills 让 agent "会做某件事",Harness 让 agent "可靠地做某件事"。两者不冲突,是层叠关系——一个好的 Harness 内部会内嵌多个 Skills 调用。

2. OpenHarness vs Claude Agent SDK 的视角

如果你之前对比过 OpenAI 的 harness 设计与 Anthropic 的 Claude Agent SDK,这门课会给你一个统一的"评估框架":

3. 多 agent 工作流 / A2A 协议

如果你在探索多 agent 架构(如 Google A2A 协议、Claude Code Sub-agents、agent-team 模式),这门课提供了"单 agent 工作环境"的基础。多 agent 协作的本质是多个 agent 共享同一套 harness 约定,或者每个 agent 有自己的 harness 但通过结构化协议互通。没有单 agent 的 harness 工程,就没有靠谱的多 agent 编排——L09 的 writer/verifier 分离就是多 agent 模式最朴素的形式。

4. 团队落地视角

如果你在为团队制定 AI 工具采纳规范、写 CLAUDE.md 配置标准、设计多 agent 工作流 playbook,这门课的价值不只在概念,更在可借用的具体格式——AGENTS.md 模板、feature_list.json schema、init.sh 范本、progress 日志规约、clean-state checklist。这些都是可以直接吸收进团队 playbook 的"现成砖头"。

推荐用法 / Suggested Combination

对已经在做团队工具采纳的人——把这门课的最小起步部分(§ 06 的四件套)作为团队所有项目的"AI-Ready 仓库基线",再把课程的 12 讲作为团队内部分享会的素材,每周一讲,3 个月跑完。配合每个项目的对照实验作为"成果展示",比纯理论分享会落地效率高得多。

§ 10 — 资源与读法

延伸阅读与读法建议

课程作者列的核心参考

类型资源读法建议
主参考 OpenAI · Harness Engineering 读 L01–L04 之前先看,建立 "repo as system of record" 直觉
主参考 Anthropic · Effective Harnesses for Long-Running Agents 读 L05、L09 之前看,对应 state 持久化与 writer/verifier 分离
主参考 Anthropic · Harness Design for Long-Running Apps 读 P06 之前看,是综合项目的"业界对照"
辅助 LangChain · The Anatomy of an Agent Harness 第三方视角的"解剖学",适合 L02 之后做横向印证
辅助 Thoughtworks · Harness Engineering on Technology Radar 行业地位证明,给团队推广时引用
辅助 HumanLayer · Skill Issue: Harness Engineering for Coding Agents 从从业者角度写的实战教训,适合 P01 之后读

三种读法

读法 A · 上手优先(最推荐)

直接做 P01 → 边做边读 L01–L02 → P02 → 读 L03–L04 → 依此类推。先体验对照实验,再看原理。这是课程作者隐含推荐的路径。

读法 B · 理论先行

从 L01 一路读到 L12,再回头做 6 个项目。适合"必须先全局理解再动手"的学习者。但请记住:L02 之前读完五子系统模型,意义有限

读法 C · 团队推广路径

读 § 06 最小起步 + § 02 五子系统 + § 03 会话生命周期 → 在自己项目落地 → 跑完一次明显成功的对照 → 把这次成功作为 team demo → 再扩散到 12 讲分享会。用一次具体的小胜利换取整个团队的认知共识,比直接讲方法论高效得多。

三件事,建议读完就做

  1. 对你正在用 agent 的项目做一次"五子系统审计"——给指令、状态、验证、范围、生命周期各打 1–5 分。不要立刻去补最低分的,先观察一周哪一项失败带来的痛感最大。痛感最大的那项才是你真正的瓶颈,未必是分数最低的那项。
  2. 把最小起步四件套塞进你最常用的一个仓库——AGENTS.md、init.sh、feature_list.json、claude-progress.md。一个下午能干完。第二天观察 agent 行为变化。
  3. 做一次极小的消融实验——选一个 1–2 小时的任务,分别用"有 progress.md"和"无 progress.md"跑两次,记录差异。这次小实验是你说服自己(和说服团队)的最快素材。