—

解读:@m4lkxx——Harness / Loop / Graph 是阶梯,不是菜单:从「你就是 Agent 的循环」到七级修 bug 开 PR

  • #Agent
  • #Harness
  • #Loop
  • #Graph
  • #解读

本文是对 @m4lkxx 一篇 X Article 的摘要与评论(读帖时约 156 万曝光、929 赞、3175 收藏、107 转发、53 回复、31 引用)。帖文钩子很短很硬:Your agent is not autonomous / You are its loop——你以为在「用」Agent,其实是你在替系统干三件本该系统干的活:给模型工作场所、告诉它对不对、决定下一步。作者把这三件活命名为 Harness(挽具/运行环境)、Loop(带校验的循环)、Graph(工作图/编排),并强调它们不是货架上并列的三种工具,而是一层破了才爬上一层的阶梯。全文用同一条贯穿例子:bug 报告进来 → Agent 修代码 → 开 PR。

钩子与正文一致:没有视频标题党问题;本稿依据落盘英文原文整理,不是逐字转载。完整论述请读原帖 Article。

这篇在说什么

一条主线:「自主」不是模型人格,而是你把 Harness / Loop / Graph / 跨次学习一层层装齐之后的副作用。 跳级(比如没有检查就开十个 Agent)换来的不是十倍产出,而是十倍清理。多数真实任务停在 Level 4 就够;只有当前层的失败成本高于建下一层时,才值得往上爬。

适合谁:已经会 Chat / Cursor / Claude Code,但分不清「工具多了为什么更乱」「为什么说 done 仍不敢信」「多 Agent 为何互相抄结论」的人。不适合谁:指望一篇文教你「一夜舰队自动化、人完全退出」的人——作者结尾写得很清楚:目标从来不是不需要你的 Agent,而是只在对的位置需要你一次。

1. Level 0:Chat——模型是聪明函数,你是整段程序

你把 bug 报告贴进对话框,模型建议一处改法;你拷进编辑器、跑测试、把报错贴回去再问。作者让读者看清分工:模型几乎没做「难的工作」——环境、对错、下一步,全在你身上。偶尔问一次没问题;你每周重复两次以上的流程,这样就会崩。

解读:很多团队以为「先把 prompt 写漂亮」是升级;按本文尺子,你还在 Level 0——你就是瓶颈。下一步不是再开三个聊天窗口,而是把「手」和「墙」从人身上卸下来。

2. Level 1–2:Harness——先给手,再给记忆与墙

Level 1 的第一刀很直观:让 Agent 碰世界——Shell、文件、测试 runner、Git、必要时浏览器。作者给 Harness 的「最干净定义」是:

从架构图里把模型抹掉,纸上还剩的东西就是 Harness。

但「更多工具」不等于更好 Harness:每个工具都是模型多一次选错的机会;十个窄而有文档的工具,胜过四十个重叠的。 给能做完这件事的最小环境。

Level 1 会怎么破:能干了,但没记忆、没墙。四十分钟后上下文被测试日志塞满、压缩后忘掉已试过的修复;同时对一切有写权限,包括那份绝不该碰的配置。

Level 2 补两样:

  1. 活在模型外的状态(文件、工件引用、git commit 当检查点)——上下文窗口像 RAM,Harness 像磁盘;模型会忘,文件不会。
  2. 不依赖模型听话的墙:最小权限、隔离 worktree / sandbox、命令白名单、硬 token/时间预算。口播式「请别动 migrations」是愿望;Agent 根本没有的权限才是墙。

装齐后 Agent 能跑一小时、崩溃后能续、也砸不坏关键资产——然后新的破法出现:它写「Fixed! All tests should pass now」。Should。 能力齐了,系统里仍没有「正确性」。

解读:工程上可带走的是两句——工具要少而硬;愿望写进 prompt 不算安全边界。站内其它 Harness 营销帖爱吹「环境才是护城河」;本文把护城河拆成「手 + 盘 + 墙」,并点明:没有下一层 Loop,Harness 只是更快地自信做错。

3. Level 3–4:Loop——能失败的检查,与能收敛的反馈

Loop 是四步:产出 → 检查 → 纠正 → 重复。大家盯着「重复」;作者说唯一要紧的是「检查」。没有会真失败的检查,「重复」只是重复犯错。证据要按「多难造假」排序:单测/构建结果硬过「模型说 done」。规则是:

检查的强度,等于它愿意接受的最弱证据。

修 bug 前先写检查:一条在修之前就已经绿的测试什么也证明不了——你得亲眼看它红一次。隐藏福利:写不出检查,说明你还不懂任务;写检查就是写规格。

Level 3 怎么破:失败、重试、又以同一种方式失败六次——因为「红」只是判决,不是方向。

Level 4 把判决升级成反馈:EXPECTED vs SAW、把下次尝试栅栏进一个文件、用 DEAD ENDS 记住死胡同,并设退出条件(同一结果出现两次就停——缺的不是努力,是看不见的信息或问错的题)。作者金句:

A loop can fix the work. A loop cannot fix the question.

当单步都优秀、整张票却要求「修登录 + 审计另两个服务 + 更新文档」时,串在一个上下文里会互相污染结论——问题不在步内,在步与步之间。这就把你推到 Graph。

解读:可执行习惯——先写会红的检查,再让模型写代码;同一失败模式连红两次就升级为人审或重定义题,而不是加 max_retries。这和站内「No proof, no done」同根,但本文把 Loop 钉在「证据硬度 + 收敛记忆」上,而不是口号。

4. Level 5–6:Graph——工作形状、冻结门与按「撤销代价」分级

Graph 三件套:节点(可独立失败的工作块)、边(真依赖)、门(离开节点时的检查)。多数箭头是习惯而不是依赖——对每条边问:若 B 在 A 完成前就开始,会坏什么? 坏不了,就别干等。例子里:billing 审计可以和修复并行;PR 不能在修复落地前开。

设计选择:按「能否因不同原因分别失败」切节点;给每个工人自己的房间(共享一个上下文的「四人小队」其实是一个人戴四顶帽子);能确定性算的用代码,模型留给「不同答案也可能对」的步;门放在节点出口,而不是最后一锅炖。

层间关系一句话:

Loop 问「这一块对不对?」Graph 问「这些是不是对的块?」

每个 FIX / AUDIT 节点内部仍跑自己的 Level 4 Loop。

Level 6 处理 Graph 的新失败:一次审计挂了导致整批重跑、好结果被刷成「不一样的另一版」;以及 typo 文档与 auth 改动享受同一套流程。对策包括:过门即冻结(read-only)、失败只重跑失败节点;门的依据不是模型自信,而是撤销代价——不可撤销处才加人;模型可以贴标签(「这碰了 auth」),标签解锁几级审批写在代码里,开跑前就定好。

解读:编排课常画漂亮拓扑;本文更狠的是「冻结」与「人是最贵最慢节点」——把注意力只放在无法撤销处。文档可自合入、auth 等一人批 PR、审计不一致才读——这是可粘贴的注意力预算,不是「多 Agent 仪式」。

5. Level 7:系统在每一层学习;以及如何爬、爬到哪

多数人到此只给规划器加一条反馈边就停。作者说:每次失败属于某一层,教训只有落回拥有那一层的结构才算学会。 「别重复劳动」写进 prompt 是希望;写进 splitter 的切分规则才是结构。教训是约束,不是上周日志全文。Level 7 的测验:

同一类失败,不会让你付第二次学费。

爬法:不能跳级;十个没检查的 Agent = 十倍清理;完美 Loop 没有 Harness 也无处跑测试。但设计从中间开始——先在纸上写 Level 3 的「绿」;说得出绿,才知道 Harness 要哪些工具、Graph 门该安哪。说不出绿,哪一层都救不了你。多数任务 Level 4 就够。

短版收束:Harness 让 Agent 有能力;Loop 让它诚实;Graph 让它有组织;学习让它比昨天强。跳过一层,你就变成缺的那一块。

解读:和站内 Lauren / Galaxy / Nick Miller 等「多 bot 小队」文相比,这篇不绑定 Grok Bot 产品控件,而是给一条与厂商无关的能力阶梯;贯穿「修 bug 开 PR」让每一级的破法可感。若你正被「先上 Graph / 先开舰队」的文案推着走,本文的刹车是:先找到你的第一症状,那才是下一级——不是再下一级。

怎么看这篇

  • 正文价值:把 Harness / Loop / Graph 从并列名词改写成失败驱动的阶梯,并配同一条工程例子;适合当个人 Agent 成熟度自检表。
  • 钩子:与正文一致,无视频错挂问题。
  • 边界:文中示意图/可粘贴块在 X Article 版式里,摘要无法代替点开原文看图;「舰队 / 学习层」偏原则,落地仍要落到你的测试、权限与门控代码。

原文