alitrack

Claude 总谎报完成?这门 19k star 的课就是解法

你让 Claude 给项目加个功能。它读文件、写代码、跑测试,一气呵成,最后告诉你:done。

你一验收就傻眼了。测试挂了,或者压根没跑;功能做了一半;顺手还改了三个不该动的文件。你花在善后的时间,比自己写还多。

这个场景太普遍了,普遍到 Anthropic 专门做过一组对照实验。同一个模型(Opus 4.5),同一句 prompt(做一个 2D 复古游戏编辑器)。裸跑,20 分钟烧掉 9 美元,产物不能玩。给它配上一整套工作环境,包括任务规划、进度记录、验证关卡,同一个模型跑 6 个小时,花了 200 美元,做出了一个真的能玩的游戏。

模型一个字没换。换掉的是它周围的那套东西。

那套东西有个名字:harness。工程上叫「马具」,就是套在马身上控制它的那套装备。模型是马,harness 决定它什么时候发力、往哪跑、跑没跑到。OpenAI 和 Anthropic 今年先后发了长文,把它定义成一个正经的工程学科。国内有个开发者第一时间把它做成了课程,6 个月,19,112 个 star,2,071 个 fork。

这门课叫 Learn Harness Engineering。我把它从头到尾翻了一遍,配套工具也拿来在自己的项目上真跑了一轮。先说结论:框架值得学,争议要知道,工具不能全信。

● ● ●

模型不蠢,是环境烂

课程第一讲就立住了核心论点:当同一个模型在结构良好的任务上能做对、在你的任务上翻车时,问题不在模型,在 harness。

它把 agent 翻车的原因归成五类,每一类都对得上日常体感。

需求含糊。「加个搜索功能」这种一句话任务,agent 只能猜,猜错就返工。隐含约定没写下来,你们全组都用新版 ORM 语法,但这事只存在于你脑子里,agent 默认写旧版,不是它不听话,是它根本没见过这条规则。环境不完整,agent 把宝贵的上下文窗口花在修依赖、装环境上,而不是干正事。没有验证手段,agent「感觉做完了」就宣布完成,Anthropic 还观察到一个现象叫「上下文焦虑」:agent 感到上下文快满时会赶工,跳过验证步骤,选简单方案而非正确方案。跨会话失忆,每次新会话从零开始,上个会话做了一半的东西全忘。

对应的解法是一套五子系统框架,这也是整门课的骨架:

子系统
干什么
落到文件
指令
告诉 agent 做什么、按什么顺序
AGENTS.md、docs/
状态
记录做完了什么、正在做什么、下一步
progress.md、feature_list.json
验证
只有跑通的测试才算完成证据
tests、lint、e2e
范围
一次只做一个 feature,不许越界
feature 依赖 + 完成定义
会话生命周期
开局初始化,收尾清干净
init.sh、handoff

说白了:把「你脑子里的工程常识」变成仓库里的文件,让每个会话的 agent 都从同一份地图出发。 课程的快速上手版只要四个文件,AGENTS.md、init.sh、feature_list.json、progress.md,drop 进项目根目录,agent 会话的稳定性就会有肉眼可见的提升。

14 讲理论、8 个实战项目,全部围绕同一个 Electron 桌面应用逐级演进。下一个项目的起点是上一个项目的终点,你的 harness 技能长一分,这个应用就长一寸。今年 8 月还加了一个狠活:拿这套五子系统框架去反向拆解四个前沿产品的 harness,Pi、Claude Code、Codex、DeepSeek Harness,每篇都逐段引用官方文档原文。

● ● ●

这门课的出身需要如实交代。

主笔是一个中国开发者,GitHub ID 叫 sanbuphy,135 个 commits 占了全仓一半。2026 年 3 月 29 日那天,他和他的 org 在十个小时内接连创建了三个仓库:主页配置、awesome 清单、课程本体。这是一次有预谋的矩阵式运营,不是社区自然生长。课程 README 里致谢了一个 78k star 的中文仓库 learn-claude-code,不过两边没有人员交集,是灵感引用,不是同源团队。

内容是 AI 深度参与的。commit 记录里大量出现 Co-Authored-By: Claude 的署名,从 Claude Code 一路陪到 Claude Opus。今年 5 月课程上了 Hacker News,拿了 159 分,评论区吵翻了。至少四条评论直接指控这是「AI slop」:内容太结构化、太整齐,不像人写的;有人点名了作者的博客;还有人说「这课的意图是捧红作者,不是教人」。

另一面是,这门课在 9 月底完成了一次「证据审计」,正文里每个数字都补上了一手出处和口径限定。比如那个 9 美元对 200 美元的对照实验,课程明确标注了「这是应用案例报告,不是隔离单一变量的等预算实验」。Sonnet 4.5 的 SWE-bench 77.2% 成绩,连「脚手架是 bash 加字符串替换、跑了 10 次」这种细节都写清楚了。这种引用纪律在课程类仓库里非常罕见,大部分课连出处都不给。

「AI 生成」和「内容有据」在这门课上是并存的,怎么下判断留给你。我的看法是:框架是通的,方法论每条都能落到文件,引用纪律在线,生产方式不影响这些结论的可验证性。

● ● ●

它是怎么火起来的

传播链上有个值得玩味的细节。

fork 的时间分布有两个峰。一个是 3 月底建仓后的首波热度,另一个是 4 月 26 日,单日 96 个 fork。我去查了那条把这门课推进中文圈的推文,发帖时间是 4 月 26 日 00:00(UTC),和 fork 峰值精确对齐。一条中文技术大号的推荐,就是第一波主引擎。5 月的 Hacker News 帖把它带进英文圈。

而就在我写这篇文章的时候,10 月 4 日到 5 日,两天又涌进了 77 个 fork。第二波传播正在进行中。课程 9 月底刚完成证据审计,10 月初刚做完全语言 README 重设计,时机上正好接得住。

● ● ●

我把它的工具拿来跑了一遍

课程配套了两个工具,宣传语说得很好听。我拿自己手头的两个真实项目(一个 Rust 项目、一个 C 扩展项目)跑了一轮,结果喜忧参半。

先说 audit-harness.sh。 一个零依赖的 shell 脚本,检查你的仓库缺哪些 harness 构件。跑起来确实能用,77 项检查,CRITICAL 级的判定基本准确,我的两个项目确实没有 AGENTS.md 和 progress.md,它没冤枉我。

但问题也很硬。它对 C 项目报「缺少依赖锁文件」,可是 C 项目根本没有锁文件这个概念,这是把单一范式强加给所有生态。我的 Rust 项目明明有完整的 CI 配置、测试目录和变更日志,它全都看不见,因为它只认 AGENTS.md 里写的命令和 Makefile 里的 target。更微妙的是,大量「建议」指向工具作者自己维护的模板仓库。说实话,与其说这是通用审计,不如说是一份安装向导。

再说 harness-creator。 一个可以直接装进 Claude Code 的 skill,一键给项目生成五件套脚手架。这部分体验不错:生成的 AGENTS.md 结构规范,一次一个 feature、验证强制、收尾清洁这些规则都齐了。

但我在验证环节抓到一个漂亮的乌龙。这个 skill 在检测不到项目的包管理器时,会把「验证命令」写成一行占位的 echo 语句,就是往屏幕上打一句话,什么都不检查。然后我跑它自带的 validator 和 benchmark,两项双双给出「验证子系统 5/5 满分」。

一行 echo 骗过了满分审计。 工具只 grep 文件里有没有命令文本,从不辨这条命令是不是真检查了什么。

这件事讽刺得很完整。课程第九讲专门讲「怎么阻止 agent 提前宣布胜利」,核心就是「agent 说做完了不等于做完了,要看验证证据」。而它自己的验证工具,犯了它自己讲课警告的那个病:形式合规,实质放水。你用这些工具的时候,记住这一课比记住工具本身更有用。

顺带说一句这个 skill 里最值钱的设计:它自带一份 10 条场景的评测集,每条都是「一个用户 prompt + 一组逐条可验证的预期」,外加多平台兼容的元数据声明。这种「skill 即产品」的分发设计,自带质检、自带触发条件、声明兼容宿主,比工具本身的成色更值得抄走。

● ● ●

值得带走的三样东西

跑完这一轮,我的净收获是三样。

一、五子系统框架。 指令、状态、验证、范围、生命周期。不管你用什么模型什么工具,这五件事是你让 agent 干活前必须补齐的地基。哪怕只补四个文件,稳定性也会上一个台阶。

二、audit 工具当「gap 扫描器」用,别当裁判信。 对一个没有工程纪律的新项目,它的输出可以直接当改造清单用。但它的判定只覆盖单一范式,过不了它的检查不代表你的项目不行,我的 Rust 项目在它眼里千疮百孔,实际上 CI 和测试都是齐的。

三、「证据审计」这个动作本身。 每个数字带出处、每个结论标口径、每条声称可回溯。这是这门课 9 月底才补上的一层,也是它和真正的 AI slop 拉开距离的地方。写文档、写报告、写公众号,都值得抄这个标准。

最后回到那个对照实验。20 分钟 9 美元的废品,和 6 小时 200 美元的成品,中间隔的不是模型,是环境。下次 agent 再跟你说「done」,先别急着骂模型,看看你的仓库里,有没有它该读的那份地图。

课程地址:github.com/walkinglabs/learn-harness-engineering(MIT 协议,有中文版)