Learn Harness Engineering
来源:https://github.com/walkinglabs/learn-harness-engineering 收录时间:2026-05-18
课程概述
项目制课程,教如何构建让 AI Coding Agent 可靠运行的环境、状态管理、验证和控制机制。
核心理念: 最强的模型没有合适的 harness 也会失败。Harness 不是写更好的 prompt,而是设计模型运行的系统。
核心参考:
- OpenAI: Harness engineering: leveraging Codex in an agent-first world
- Anthropic: Effective harnesses for long-running agents
- Anthropic: Harness design for long-running application development
- Awesome Harness Engineering
Harness 五大子系统
┌─────────────────────────────────────────────────────────────────┐
│ THE HARNESS │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Instructions │ │ State │ │ Verification │ │
│ │ AGENTS.md │ │ progress.md │ │ tests + lint │ │
│ │ CLAUDE.md │ │ feature_list │ │ type-check │ │
│ │ feature_list │ │ git log │ │ smoke runs │ │
│ │ docs/ │ │ session hand │ │ e2e pipeline │ │
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────────────────────────────┐ │
│ │ Scope │ │ Session Lifecycle │ │
│ │ one feature │ │ init.sh at start │ │
│ │ at a time │ │ clean-state checklist at end │ │
│ │ definition │ │ handoff note for next session │ │
│ │ of done │ │ commit only when safe to resume │ │
│ └──────────────┘ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
- Instructions — 告诉 Agent 做什么、按什么顺序、开始前读什么。渐进式披露,不是一个巨型文件
- State — 跟踪已做、进行中、下一步。持久化到磁盘,下个 session 从断点继续
- Verification — 只有通过的测试才算证据。Agent 不能没有可运行证明就宣布完成
- Scope — 约束 Agent 一次只做一个功能。不越界、不半途而废
- Session Lifecycle — 开始时初始化,结束时清理,为下一个 session 留干净的重启路径
课程结构
12 讲 Lecture
| 讲次 | 问题 | 核心观点 | |------|------|---------| | L01 | 强模型为什么在真实任务上失败? | 基准测试和真实工程的差距 | | L02 | Harness 到底是什么? | 五大子系统 | | L03 | 为什么仓库必须是唯一真相源? | Agent 看不到的就不存在 | | L04 | 为什么一个大指令文件会失败? | 渐进式披露:给地图,不是百科全书 | | L05 | 长时间任务为什么丢失连续性? | 进度持久化到磁盘 | | L06 | 初始化为什么需要独立阶段? | Agent 开始前验证环境健康 | | L07 | Agent 为什么过度扩展和欠完成? | 一次一个功能;明确定义"完成" | | L08 | 为什么功能列表是 Harness 原语? | 机器可读的范围边界 | | L09 | Agent 为什么过早宣布胜利? | 信心 ≠ 正确 | | L10 | 为什么端到端测试改变结果? | 只有全流水线运行才算真验证 | | L11 | 为什么可观测性属于 Harness? | 看不到 Agent 做了什么就无法修复 | | L12 | 为什么每个 session 必须留干净状态? | 下一个 session 的成功依赖这个 session 的清理 |
6 个 Project(围绕同一个 Electron 知识库 App)
| 项目 | 做什么 | Harness 机制 | |------|--------|-------------| | P01 | 对比:纯 prompt vs. 有规则 | 最小 harness:AGENTS.md + init.sh + feature_list.json | | P02 | 重构仓库让 Agent 可读 | Agent-readable workspace + 持久化状态文件 | | P03 | 让 Agent 从断点继续 | 进度日志 + session 交接 + 多 session 连续性 | | P04 | 阻止 Agent 做太多或太少 | 运行时反馈 + 范围控制 + 增量索引 | | P05 | 让 Agent 验证自己的工作 | 自验证 + 有据 Q&A + 基于证据的完成 | | P06 | 从零构建完整 harness(毕设) | 全部机制 + 可观测性 + 消融实验 |
学习路径
Phase 1: SEE THE PROBLEM Phase 2: STRUCTURE THE REPO
L01→L02→P01 L03→L04→P02
Phase 3: CONNECT SESSIONS Phase 4: FEEDBACK & SCOPE
L05→L06→P03 L07→L08→P04
Phase 5: VERIFICATION Phase 6: PUT IT ALL TOGETHER
L09→L10→P05 L11→L12→P06
Quick Start 模板
YOUR PROJECT ROOT
├── AGENTS.md <-- Agent 操作手册
├── CLAUDE.md <-- (替代,如果用 Claude Code)
├── init.sh <-- 运行 install + verify + start
├── feature_list.json <-- 哪些功能存在,哪些已完成
├── claude-progress.md <-- 每个 session 发生了什么
└── src/ <-- 实际代码
关键数据
- Anthropic 实验:同一模型(Opus 4.5),同一任务(构建 2D 复古游戏编辑器)
- 无 Harness:20 分钟花 $9,产出不能用
- 有完整 Harness:6 小时花 $200,构建了可玩的游戏
- 模型没变,Harness 改变了一切
附加资源
- 12 语言版本(含中文)
- 内置
skills/harness-creator/技能,可快速为项目脚手架生成生产级 harness - PDF 构建管线:
npm run pdf:build