从 Prompt 到 Loop:Agent时代的软件工程体系重构

Alines

本文转载自微信公众号,如有侵权请联系删除。

作者按:本文基于 Addy Osmani(Google Chrome 工程负责人)2026 年上半年的七篇系列文章综合整理,本文把它统一成一个框架:三层构建体系 × 三种新型债务 × 人的瓶颈。

01 范式转移:杠杆支点改变了

过去三年,我们与 AI coding 工具的协作方式,走过了一条清晰的演进路线:

▍Prompt Engineering(2023)
优化单次输出。核心动作:写好一句 prompt。

▍Context Engineering(2024–2025)
优化 model 看到的信息。核心动作:组装 context。

▍Harness Engineering(2026 初)
优化 model 运行的环境。核心动作:设计 tools、sandbox、权限、memory。

▍Loop Engineering(2026 中)
优化替人驱动 agent 的系统。核心动作:设计自主迭代的 loop。

Peter Steinberger 的概括最锋利:你不应该再给 coding agent 写 prompt 了,你应该设计一个替你 prompt agent 的 loop。

Anthropic Claude Code 负责人 Boris Cherny 说得一样直白:”我的工作是写 loop。”

这不是说工作变轻松了,而是杠杆的支点从”写”移到了”设计”。

数据也在支撑这个判断:SWE-bench 上,换 harness 带来的分数波动是 22 分,换 model 只有 1 分;Anthropic 报告仅改进 harness,就带来 2–3 倍任务成功率提升。

Model 仍然承重,但胜负手已经移到Model 之外的系统设计上。

02 构建层:三层工程体系

Osmani 的系列文章可以还原为一个三层架构,自下而上分别是:环境、纪律、调度。

第一层:环境层 —— Harness Engineering

Agent = model + harness。

Harness 是 model 之外的一切:执行 sandbox、工具生态(MCP)、context 组装与压缩、权限 hooks、可观测性、成本与延迟控制。

一句话:如果你不是 model,你就是 harness。

Long-running agent 是 harness 能力的试金石。2026 年,Anthropic、Cursor、Google 三家收敛到了同一个架构形态——Brain / Hands / Session 分离:

Brain:model 调用循环
Hands:一次性 sandbox 执行环境
Session:append-only 的 event log

三者独立可替换。其中 Session-as-event-log 最被低估:没有它,容器崩溃就是 session 崩溃;有了它,新容器调一下 wake(sessionId) 就能从 log 重建状态。

分工模式也已趋同:Anthropic 的 initializer / coding agent 双角色、Cursor 的 planner / worker / judge 三角,本质是同一件事:把 generator 与 evaluator 分开,因为 model 给自己的作业打分时,总是太客气。

第二层:纪律层 —— Agent Skills

Agent 默认走到达 “done” 的最短路径:不写 spec、不先写 test、不考虑信任边界——和每个资深工程师花整个职业生涯学会避免的失败模式,一模一样。

Skill 就是把资深工程师的流程纪律”焊回去”的载体:一个带 metadata 的 markdown workflow(SKILL.md),在合适场景被注入 context。

五条承重设计原则:

  1. Process over prose(要步骤,不要说教)
    两千字的”测试最佳实践”会被跳过;”先写 failing test → run → 看它失败 → 写最小实现 → 看它通过”才会被执行。Workflow 有 exit criteria(做到哪步算完),散文没有。

  2. Anti-rationalization tables(提前把借口怼回去)
    预先把”这个任务太简单不需要 spec””test 我后面补”这类借口的驳斥写出来。LLM 极擅长为跳过严谨步骤生成貌似合理的理由,反合理化表格就是在它撒谎之前写好的回信。

  3. Verification is non-negotiable(没证据就不算完)
    每个 workflow 以具体 evidence 终止:通过的 test、干净的 build、运行时 log、reviewer 签字。”看起来对”永远不够。

  4. Progressive disclosure(用到再给,别一次塞满)
    不要把全部规则塞进 context,由路由 meta-skill 按任务激活。这是 harness engineering 在 skill 粒度上的应用。

  5. Scope discipline(让碰哪就碰哪)
    别顺手重构相邻模块,别看到 TODO 就想重写整个文件。这是 agent 的 PR 能否 merge 的最大决定因素。

第三层:调度层 —— Loop Engineering

Loop engineering,就是把你这个”亲自 prompt agent 的人”替换掉——你设计一个替你干这件事的系统。

它位于 harness 之上一层:是同一个 harness,但按 timer 运行、会孵化小助手、能自我喂养。

一个 loop 需要五个部件,加一个 memory:

▍Automations —— 心跳
按调度做 discovery + triage。/loop 按节奏重跑;/goal 跑到可验证条件成立为止,由独立小 model 判定完成。

▍Worktrees —— 并行隔离
消除机械性的文件冲撞。但注意:人的 review 带宽仍是天花板。

▍Skills —— 沉淀项目知识
没有 skill,loop 每个周期从零重推导;有了 skill,才能复利。

▍Plugins / Connectors —— 接入真实工具
这是”agent 说’这是修复方案’”和”loop 自己开 PR、关联工单、CI 绿了 ping 频道”之间的区别。

▍Sub-agents —— Maker / Checker 分离
Loop 在无人盯守时运行,可信的 verifier 是你敢走开的唯一理由。

▍State 文件 —— 整个 loop 的脊柱
Model 在 session 之间全忘,memory 必须在磁盘上、而不是 context 里。

Agent 会忘,repo 不会。

最朴素的实践版本是 Ralph loop:一个 bash 脚本,循环执行”取任务 → 组装 prompt → 调用 agent → 跑 test → 追加 progress.txt → 更新任务清单”。一个晚上就能搭出来。大厂产品化的,无非是让这个模式可恢复、安全、可观测。

三层的总关系:harness 让 agent 跑得安全可恢复,skills 让 agent 跑得有纪律,loop 让 agent 不用人推就能持续跑。三者共用同一批原语——这也是为什么 loop 设计在 Codex 和 Claude Code 里是同一张图纸。

03 风险层:三种新型债务

构建体系之上,Osmani 用 Margaret-Anne Storey 的三债模型划出了风险地图。三种债彼此独立,各自单独寄账单。

Technical Debt(技术债,住在代码里)
我们最熟悉的一种。AI 让它变得更便宜——产生便宜,偿还也便宜,指着纠缠模块让 agent 重构即可。不再是主要矛盾。

Comprehension Debt(理解债,住在人脑里)
系统中存在的代码量,与任何人类真正理解的代码量之间,那道不断扩大的鸿沟。

它比 technical debt 阴险,因为现有度量体系完全捕捉不到它:velocity 漂亮、DORA 平稳、覆盖率全绿——而理解力在底下悄悄被掏空。

三个结构性原因:

一是速度不对称。过去资深工程师 review 的速度,快于初级工程师写码的速度,review 是有意义的质量门。AI 反转了这个关系:初级工程师生成代码的速度,超过了资深工程师批判性审计的速度。质量门变成了吞吐问题。

二是 test 和 spec 都不是完整答案。你无法为”没想到要规定的行为”写 test。当 AI 改了行为、顺手更新几百个 test case 去匹配新行为时,test 无法回答”这些改动是否都必要”。而一份详细到能完全描述程序的 spec,本身就是用不可执行语言写的程序。

三是复利机制。Cognitive surrender 是 comprehension debt 的积累机制:每一次不加审视的接受都是一笔小额贷款,代码库从此多了一块没人懂的补丁,而下次改动这块代码,几乎注定又是一次 surrender。

Surrender 是路径依赖的。

Intent Debt(意图债,住在你从没写下来的 artifact 里)
目标、约束、以及”系统为什么是现在这样”的理由——缺失或腐化的外化 intent。

关键词是”外化”:理由必须写在队友、未来的你、或 agent 能读到的地方,而不是存在你脑子里。

这是三种债中,唯一 agent 无法替你偿还的。

Technical debt 它可以重构,comprehension debt 它可以按需讲解重建,但 intent 是必须来自人类的输入。Model 可以从代码推断一个貌似合理的理由——但关于 intent 的猜测不是 intent。它不知道那个 300ms 防抖,是深思熟虑的 UX 决策、benchmark 的结果、还是某人随手敲下再没回看的数字。并且它会编造一个自信的理由——这比承认不知道更糟。

Agent 让”不写下来的代价”复利加速:过去 intent 靠走廊对话、review 评论在人际间缓慢传递,四年的老员工就是行走的 intent 文档。现在团队一夜之间多了一批每次 session 都冷启动、毫无长期记忆的”初级成员”——以前偶尔在 onboarding 或离职时付一次的税,现在每个 session、乘以每个 agent,都要付。

偿还方式只有一种:把 intent 作为一等 artifact 外化——spec 写 intent 而非实现;把 AGENTS.md 当 intent 账本而非配置(别用 /init 自动生成);用轻量 ADR 在决策当下记录 why;让自我改进 loop 把每次失败的根因写回 learnings 文件。

04 约束层:人类是串行瓶颈

Orchestration Tax:编排税,你是自己 Agent 舰队的 GIL

Agentic 工作流有个没人定价的隐藏不对称:启动一个 agent 极其便宜(一次按键),关闭它的 loop 却极贵。

必须有人检查产出是否正确、与其他 agent 的改动对齐。这个人是你,且只有一个。

用并发系统的语言说:Python 有 GIL,线程再多,同一时刻也只能有一个执行字节码——你就是你的 Agent 们的 GIL。

Amdahl’s Law 说得更精确:并行加速的上限,由保持串行的那部分工作决定。而在 agent 开发中,串行部分就是判断力。启动 8 个 agent 不会加速你的判断时间,只会让排进判断队列的待办更深。

Orchestration tax,就是 Agent 产能与你实际能 merge 的量之间的结构性落差。

这个税无法靠”更努力”磨平:五个 agent 不是一份工作量做五次,而是五次冷启动 context 重载,外加一个后台焦虑进程时刻担心哪个线程在悄悄失败。硬扛的结果是税换一种方式支付——review 变浅,或者干脆 cognitive surrender。

正确做法:

像架构任何并发系统一样,架构自己的注意力。

按 review 速率配舰队,而不是按 UI 上限。Producer 要匹配 consumer 的 backpressure,多数人的正确并行数是个位数。

给工作分类。隔离型任务丢给云端后台 agent;判断密集型任务(诡异 bug、架构设计)绝不并行,并行它们只会让锁空转。

批量 review、放长线。一次坐下评 4 个,比来回切换便宜得多。

锁只花在判断上。让 agent 用 test 和截图自证那无聊的 80%。

保护串行时间。瓶颈资源配得上你最好的时段。有时最高杠杆的动作,是合上满是 agent 的电脑,握着锁只想一个问题。

Cognitive Surrender:认知投降,最舒服的姿势最危险

沃顿商学院 Shaw 和 Nave 的论文划出了关键界限:

Cognitive offloading:认知卸载,交出 how、保留 what(计算器、GPS),你仍判断结果是否合理。

Cognitive surrender:认知投降,放弃独立思考与自主判断,将AI的输出直接当作自身结论——没有东西可供校验,因为你从未形成过自己的独立观点。

实验数据很扎眼:AI 答错时,73% 的参与者接受了错误答案;且 AI 在场时他们的自信心反而上升——他们在借用 model 的自信当作自己的。

Anthropic 的 skill formation 研究给出了工程侧的数字:用 AI 生成代码学习新库的工程师,理解测验得分比对照组低 17%;用 AI 做概念探询(提问、探索 tradeoff)的则稳住了。

同一个工具,姿态改变结果。

软件工程师格外易受攻击:表面信号默认正确(能编译、过 lint、长得像正常代码);吞吐量是可见指标,而 surrender 对 dashboard 不可见;model 的陈述句语气让自信干净地转移;而且工作会复利。

Osmani 的自救启发法:

读输出前,先构建自己的预期;

像 review 初级工程师一样 review AI 的 diff——“看着没问题”从来不是 review;

让 model 反驳自己;

疲劳时停止生成;

每周留些不用 agent 的键盘时间,做校准。

Offloading 是超能力,surrender 是没注意到界线时的失败模式。

05 统一框架:一张清单看懂整个体系

把三个维度叠起来,Osmani 的全部论述可以收进七句话:

▍构建 · Harness
命题:Agent = model + 环境。失败模式:无状态、不可恢复、无审计。解药:Brain / Hands / Session 分离,session-as-event-log。

▍构建 · Skills
命题:资深流程不主动强制就会被跳过。失败模式:走捷径直达 “done”。解药:workflow + anti-rationalization + 硬性 evidence 出口。

▍构建 · Loop
命题:设计替人驱动 agent 的系统。失败模式:空转、假完成、无人敢走开。解药:五部件 + 磁盘 memory + maker/checker 分离。

▍风险 · Comprehension Debt
命题:代码增速 > 理解增速。失败模式:度量全绿而 mental model 腐坏。解药:review 即理解、小 PR、概念探询优先。

▍风险 · Intent Debt
命题:why 只存在于人脑。失败模式:系统漂移而无人能说何时为何。解药:intent 外化为一等 artifact(spec / AGENTS.md / ADR)。

▍约束 · Orchestration Tax
命题:人的判断力不可并行。失败模式:忙碌 ≠ 产出,review 被稀释。解药:按 review 带宽配舰队,架构自己的注意力。

▍约束 · Cognitive Surrender
命题:借用 model 的自信代替自己的判断。失败模式:防御一个无法重建”为什么”的设计。解药:先建预期再读输出,疲劳即停,evidence 出口。

而贯穿所有文章的,是同一条金线:

每一次失败——无论是 agent 的技术失败,还是人的认知失败——都应该被固化为一处永久的系统修复。

CLAUDE.md 里的每条规则,都应可追溯到一个真实故障;每次 review 漏掉的东西,都应变成 skill 或 hook。

这就是 Ratchet 原则:系统只收紧,不放松。

06 落地清单

对个人工程师:

给每个非平凡任务先写可验证的 done-condition——这是长跑里单次杠杆最高的动作;

读 agent 输出前,先在心里写下你预期的答案形态;

学习新东西时,用 AI 提问而非生成——数据对此没有歧义;

PR 控制在百行级:review 单元就是理解单元。

对团队:

把 AGENTS.md 从配置升级为 intent 账本:约定、”我们因为那次事故所以不这么做”、不可见的约束;

建立团队的 anti-rationalization 表格,把”上线后再补 test”这类集体自我欺骗,配上书面驳斥;

Review 流程默认 maker/checker 分离——无论 checker 是人还是另一个 agent;

把”理解”纳入度量讨论:review 深度、intent 文档覆盖率,而不只是 merge 速度。

对管理者:

警惕 dashboard:PR 数和 velocity 无法区分”我建的我懂”和”agent 建的我批的”——组织在短期内对两者同等奖励,这正是债积累的地方;

真正理解系统的人变得更值钱,而非更廉价——AI 用量越大,能在架构尺度一眼看出哪个 diff 动了承重行为的工程师,越是全系统依赖的稀缺资源;

监管视野比看起来近:当 AI 生成的代码跑进医疗、金融基础设施和政务系统,”AI 写的我们没细看”在事故报告里站不住。现在就建立理解纪律的团队,会在清算到来时站在更有利的位置。

07 结语:继续做工程师

两个人可以搭出一模一样的 loop,得到完全相反的结果:

一个用它在自己深刻理解的工作上提速;另一个用它彻底逃避理解工作。

Loop 不知道区别。你知道。

这就是整套体系最终的落点:AI 让代码变便宜,让理解可恢复,唯独 intent 和判断,仍是必须由人供给的输入。杠杆支点从”写代码”移到了”设计系统、外化 intent、校准自我”

工作没有变容易,变的是值钱的东西。

建造 loop 吧。但要像一个打算继续做工程师的人那样去建,而不是只做一个按启动键的人。

💬 本文评论区已开启,欢迎畅所欲言!

原文链接: https://mp.weixin.qq.com/s/0iQszeI_rdUNBcOYd2FLtQ

  • 标题: 从 Prompt 到 Loop:Agent时代的软件工程体系重构
  • 作者: Alines
  • 创建于 : 2026-07-20 00:00:00
  • 更新于 : 2026-07-20 19:10:49
  • 链接: https://blog.lxiol.cn/2026/07/20/从Prompt到Loop-Agent时代的软件工程体系重构/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
从 Prompt 到 Loop:Agent时代的软件工程体系重构