本文内容来自 Cassie Kozyrkov 的视频
12 Rules of Harness Engineering
https://www.youtube.com/watch?v=BabEnt6VjtE

从手动编写到环境设计的进化

软件工程领域正在经历一场根本性的范式移转。长期以来,工程师的价值体现在对每一行逻辑的精雕细琢,但这种“手工作坊”式的开发模式在生成式 AI 爆发的背景下,正面临前所未有的生存挑战。OpenAI 的最新工程实践彻底打破了传统生产力的天花板:

OpenAI 生产力跃迁案例:

  • 产出规模: 成功交付了超过百万行的代码系统。
  • 人工介入: 0 行代码由人工手动敲击完成。
  • 交付效率: 仅消耗了传统手动编写模式 1/10 的时间。

这种规模化产出且系统未崩溃的奇迹,并非源于某种不可控的魔法,而是一套被称为“驾驭工程 (Harness Engineering)”的严密纪律。它标志着工程严谨性的重心偏移:我们不再通过手动打字来确保质量,而是通过设计一个具备“确定性边界”的运行环境,来约束和引导智能体的“随机性执行”。从程序员转型为驾驭工程专家,不仅是工具的更迭,更是从“打字员”向“环境建筑师”的身份重塑。


驾驭工程的核心原则:角色定义与意图传递

在驾驭工程的逻辑框架下,人机协作的边界被重新划定。将智能体 (Agent) 视为简单的增强工具是极其危险的思维定势;相反,必须将其视为具备极高执行通量但缺乏长期直觉的“数字执行官”。

法则1:人负责指挥,智能体负责执行

工程师的价值不再由 IDE 的输出量衡量,而在于其对系统稳态的掌控能力。作为指挥官,工程师的新职责包括:

  • 设计环境: 构建允许智能体试错、验证并快速迭代的脚手架。
  • 明确意图: 将模糊的业务愿景转化为逻辑严密的意图规范。
  • 构建反馈闭环: 确保智能体的每一次执行都能得到实时的、确定性的反馈。

确立新的工程焦点 传统软件工程中,工程师的核心产出是手动编写代码。但在驾驭工程范式下,人类工程师的首要工作不再是敲击代码,而是设计工作环境、明确系统意图,并构建有效的反馈循环。智能体全面接管了执行层面的落地工作,负责自主生成应用程序逻辑、测试用例、持续集成 (CI) 配置、文档以及内部工具。这揭示了一个核心认知:工程的本质从来都不是打字速度或语法完美,而是关于如何理解问题、分解复杂性以及在各项指标间做出权衡决策,打字仅仅是表达这些决策的物理媒介。

从“工匠”到“系统管理者”的角色跃迁 来源材料用 F-16 战斗机的演进极其生动地比喻了这一分工转变。早期的飞行员通过体力直接操控机翼(类似于传统的手工编码),而现代喷气式战机的系统极其复杂,人类的反应速度无法实时完成微调,因此飞行员只需向计算机发送请求,由计算机管理复杂的飞行补偿逻辑。在 AI 时代,工程师的角色同样转变为“复杂系统的管理者”,就如同一个拥有了“极度迅速、极其字面化、极度自信的实习生”的产品经理。在分工上,人类负责在高优先级事务、将用户反馈转化为验收标准以及验证最终结果上进行掌舵,而将所有繁杂的实施细节放手交由智能体去执行

人才技能树的重塑:从“代码实现者”向“意图架构师”转型 分工的改变直接导致了人才核心价值的转移。人类工程师的优势不再体现在对某种特定编程语言语法的死记硬背或手动 Debug 的技巧上。相反,人类的技能树必须向更高维度的方向发展,包括:将商业需求转化为精准意图的翻译能力、构建能让智能体自我校验的环境设计能力,以及管理智能体集群的系统编排能力。在这个新分工下,人类的杠杆不再来源于写代码的熟练度,而是来源于对预期目标的极致精确描述,以及对结果坚定不移的验证。

面对系统失败时的职责重定位 在“人类引导,智能体执行”的严格分工下,当系统出现 Bug 或智能体陷入困境时,人类的职责绝对不是越俎代庖去手动修复代码。相反,人类必须将失败视为一种信号,去审查和诊断“驾驭环境”是否存在缺陷(例如是否缺失了工具、护栏、断言或文档),然后通过补充这些系统上下文,引导智能体自身去编写和提交修复程序。人类负责完善和修复“环境”,而智能体负责修复“代码”。

法则2:地图优于手册

信息过载是智能体任务聚焦力的天敌。OpenAI 的经验证明,给智能体投喂一份千页的详细操作指南(手册)往往导致任务失败,因为在长上下文中,“当所有信息都显得重要时,没有任何信息是重要的”。更优的策略是提供一份轻量化的目录索引(地图),它仅勾勒出系统的轮廓,并在需要时精准指引智能体去访问深层的真相源(Source of Truth)。

应对上下文窗口的“资源稀缺性” 在处理大型复杂任务时,上下文管理是让智能体发挥效用的最大挑战之一。大型语言模型的上下文窗口是有限且宝贵的资源。如果向系统提供一个长达千页的庞大指令手册(例如 OpenAI 团队曾尝试使用的单一庞大 AGENTS.md 文件),这些冗长的指令会严重挤占实际任务、核心代码和相关文档的上下文空间。在知识管理中,你向系统展示什么,与你故意省略什么同等重要

避免“信息失焦”与维护灾难 将所有规则塞进一个百科全书式的单一文件中,必然会导致一种困境:“当所有东西都被标记为重要时,就没有什么是真正重要的了”。过量的信息输入反而会变成一种“无指导 (non-guidance)”,导致智能体无法进行有目的的系统导航,只能退化为局部的模式匹配。此外,单一的庞大手册很容易迅速腐化成为过时规则的“坟墓”,人类往往会停止维护它,且这种单一文件极难进行机器验证和自动化审计。

通过“地图”实现上下文的渐进式披露 (Progressive Disclosure) 与其提供百科全书,更好的知识管理策略是提供一份精简的“目录”或“地图”。例如,将一个较短的 AGENTS.md(约100行)注入到上下文中,其主要作用是作为地图,指向代码库深处更详细的真相来源。这种设计实现了知识的分层披露:智能体不需要一开始就被海量信息淹没,而是可以从一个小型、稳定的入口点(索引文件)开始,在需要时根据地图上的指针深入特定领域的详细文档去获取信息。

建立结构化且可验证的知识“记录系统” (System of Record) 为了支撑这套“地图”导航机制,环境的底层知识管理必须发生改变。代码库中结构化的文档目录(如 docs/ 目录)取代了随意的外部文档,成为了项目知识的单一记录系统。这种结构化的知识分布方式,使得系统可以通过专用的 Linter 和定期运行的“文档园丁 (doc-gardening)”智能体,机械化地验证知识库的交叉链接是否有效、内容是否过时,从而确保智能体所依赖的“地图”和“地形”始终保持一致。

法则3:上下文的“存在即真实”

在驾驭工程中,必须建立一种近乎冷酷的工程意识:不在智能体运行上下文中的信息,对它而言等同于不存在。

  • 那些在 Slack 频道中达成的架构共识?不可见。
  • 存储在 Google 文档中的产品规格说明?已消失。
  • 存在于你脑海中的深厚设计功底?远在月球。 任何无法被结构化、自动化地引入运行上下文的信息,都是无效的噪声。

破除“人类中心主义”的隐性知识幻觉 在传统的团队协作中,关键架构决策和业务逻辑往往散落在 Slack 的讨论线程、Google Docs 的产品规格书,甚至是资深工程师的大脑中。然而,来源明确指出,对于智能体而言,任何在运行时上下文中无法直接读取的信息,都如同在月球上一样遥不可及。如果在 Slack 上达成的架构共识对智能体不可见,那么这就好比要求一个三个月后才入职的新员工去遵守他从未参与过讨论的内部默契,它是完全不可读(illegible)的。

强制将代码库打造为知识的“单一真实来源 (System of Record)” 为了避免知识的“不存在”,知识管理必须发生物理形态的转移。系统需要将系统意图和规则实体化为代码库本地的、受严格版本控制的构件(Artifacts)。这要求工程师将所有的应用程序逻辑、数据模式(schemas)、Markdown 文档以及可执行计划等,全部聚合到代码库内部。通过将代码库本身转变为知识的记录系统,工程师确保了智能体能够完全依赖其运行环境中触手可及的构件进行独立推理,而无需依赖外部的人类解释。

驱动“部落知识 (Tribal Knowledge)”的机器可读化 落地这一规则的核心行动之一,是彻底清理和审计团队的“部落知识”。工程师必须主动挖掘那些隐藏在团队日常沟通或资深员工头脑中的质量标准,并将其机械化地转化为机器可读的代码规范、环境护栏(如自定义 Linter)或结构化文档。这本质上是将主观的、模糊的人类意图,固化为客观的、智能体可感知的环境约束,从而保证知识在智能体每次运行中都能被准确访问和执行。

催生“上下文工程”与“状态外部化”的记忆架构 大型语言模型的上下文窗口是极其有限且宝贵的资源,且模型在离散的会话之间本质上是无状态(stateless)的。为了在“不可访问即不存在”的铁律下维系长期复杂的工程项目,知识管理必须依赖“上下文工程 (Context Engineering)”。系统通过**“状态外部化”**,将复杂的任务分解步骤和知识存储在外部文件系统(如 todo.md 或专门的草稿板)中。这种设计允许智能体在多轮操作或上下文重置后,通过读取这些物理构件快速恢复进度并重新加载关键知识,从而在离散的运行中建立起跨会话的“时间感知记忆”。


构建智能体友好型环境:可读性与技术选型

驾驭工程要求我们挑战传统的软件美学。当智能体成为代码的一等公民阅读者时,“机器可读性”必须凌驾于“人类审美”之上。

法则4:代码可读性

代码不一定要符合人类的优雅标准,但必须保证在下一次智能体运行时是可解析、可预测且易于维护的。

重塑“可维护性”的系统定义:从“人类阅读”到“机器推理” 在传统的系统设计中,代码的可维护性通常意味着代码格式优雅、符合人类工程师的阅读习惯和主观审美。然而,在以智能体为中心的开发中,代码不需要对人类来说看起来很漂亮,它只需要做到正确、可维护,并且对下一次接手的“智能体运行 (agent run)”具有高度的可读性即可。这种转变意味着系统维护的焦点从微观的语法美感,上移到了意图、系统边界、契约和约束的清晰度上。因为真正负责重构和演进系统的将是机器,只要代码逻辑严密且符合机器的解析模式,人类的风格偏好就可以被忽略。

技术选型的“去个人化”:拥抱“无聊”与“AI 友好”的抽象 系统设计中的技术栈选型往往受到人类开发者主观“品味 (taste)”或对流行框架偏好的影响。但为了优化智能体的可读性,这种个人品味将变得毫无价值。系统设计现在倾向于优先选择那些被认为是“无聊 (boring)”、稳定且高度可组合的技术。因为这些技术通常具有良好的 API 稳定性,并且在大型语言模型的训练数据中有极其充分的体现,智能体更容易对其进行建模和推理。随着工程师不再直接手动处理底层接口的繁琐细节,系统设计将自然而然地向少数几种具有良好驾驭模板且“对 AI 友好”的标准化技术栈收敛。

架构依赖的“透明度优先”:宁可本地重写,拒绝外部黑盒 为了让智能体能够根据代码库自身进行全局推理,系统设计必须避免引入对智能体来说不可见的“黑盒”。在处理外部依赖时,这种对“智能体可读性”的追求甚至改变了传统的架构复用原则。来源指出,与其引入一个行为不透明的公共第三方库,有时候让智能体在本地重新实现所需的特定功能子集反而成本更低、效果更好。因为本地实现的代码是完全内化的,能够与项目特定的测试覆盖率和遥测系统深度集成,从而在代码库内部为智能体提供了 100% 的绝对可读性。

扩展应用状态的可读性:将 UI 与观测数据直接暴露给智能体 在更大的系统设计范畴中,“智能体可读”不仅仅指静态源代码,还包括应用程序在运行时的动态状态。为了突破人类 QA 能力的瓶颈,系统架构必须将应用的 UI、日志和性能指标(Metrics)设计为对智能体直接可读的形式。例如,通过将 Chrome DevTools Protocol 接入智能体的运行环境,或允许智能体直接使用 LogQL 抓取临时工作区内的日志,系统使得智能体能够像人类工程师一样,直接观察应用的端到端行为并验证其修复结果。

法则6: 应用可读性

这涉及到运行时状态的透明度。架构师必须构建能让智能体“读懂”的 API 接口、结构化日志和监控反馈。如果应用程序无法在执行过程中清晰地告诉智能体“发生了什么”,那么自动化的反馈闭环就会断裂。

突破人类 QA 瓶颈:将可观测性架构转变为智能体的原生接口 随着智能体生成代码的吞吐量呈指数级上升,传统的依赖人类进行质量保证 (QA) 的模式成为了最大的系统瓶颈。为了解决这个问题,系统设计必须将被动的人类监控面板转变为智能体可以主动查询的原生接口。例如,OpenAI 的系统设计会将日志、指标和链路追踪直接暴露给智能体,为其提供专属的临时可观测性技术栈。智能体可以直接使用 LogQL 查询日志,或使用 PromQL 查询性能指标。这种透明化设计使得智能体能够独立验证“服务启动时间不得超过 800 毫秒”这类复杂的非功能性系统约束。

延伸“可读性”的物理边界:UI 与运行时状态的结构化暴露 在传统的系统设计中,前端 UI 和端到端行为往往被视为对机器而言的“黑盒”。但为了让应用完全透明,现代系统架构集成了如 Chrome DevTools Protocol 或 Puppeteer MCP 等自动化控制工具。这种架构设计允许智能体直接获取 DOM 快照、截取屏幕截图,并像人类用户一样在浏览器中导航和交互。通过这种方式,智能体能够敏锐地捕捉到那些仅仅通过静态审查源代码无法察觉的深层 Bug,从而实现闭环的自主修复。

支撑自主验证的底层架构:隔离与沙盒化的执行环境 为了让智能体安全、放心地观察应用状态,系统架构本身必须支持高度的隔离性和可复现性。系统设计要求应用能够做到“基于每个 Git 工作树 (worktree) 独立启动”。驾驭层为智能体提供安全的沙盒化执行环境,让它可以在完全隔离的本地环境中拉起应用、运行测试、观察指标,并在任务完成后自动销毁环境。这种确定性的架构设计是智能体高频试错而不造成系统污染的基础。

标志着系统演进的成熟度核心跨越 在驾驭工程的成熟度模型中,“环境可读性 (Agent-Legible)”被明确标定为系统演进的第 3 级成熟度。这表明,将应用程序的内部状态、错误日志和性能指标以结构化的方式持续暴露给智能体,是赋予 AI 独立进行有效根因分析 (Root Cause Analysis) 的前提条件。只有系统实现了这种深度的透明化,开发团队才能真正走向完全自动化的“黑暗软件工厂 (Dark Software Factory)”模式。

法则11:偏好“无聊”的技术哲学

在技术选型上,应极度偏向“无聊的、可组合的技术”。为什么?因为概率密度 (Probabilistic Density) 决定了智能体的表现。

  • 稳定且流行(“无聊”)的技术在智能体的训练数据中拥有极高的覆盖率,模型能够生成更精准、 hallucination(幻觉)更少的预测。
  • 尖端或小众的技术由于数据稀缺,极易导致智能体在建模时出现逻辑崩塌。

重塑技术选型标准:从“人类偏好”向“AI 友好”收敛 在传统的人工系统中,技术选型往往受到开发者主观“品味 (taste)”、个人审美或对时髦框架偏好的强烈影响。然而,在以智能体为中心的设计中,这种多样化和个人化的审美将被边缘化。无聊且可组合的技术通常意味着其 API 极其稳定、文档详尽,并且在大型语言模型的训练数据中有着充分的体现。由于人类不再直接手动处理底层接口的繁琐细节,那些影响人类开发体验的局部低效变得不再重要,系统设计将自然而然地向少数几种“易于被智能体理解和建模”的标准技术栈收敛。

架构依赖的绝对掌控:宁可本地重写,拒绝外部“黑盒” 在处理系统依赖时,为了追求技术的“可组合性”和绝对透明,系统设计甚至会打破传统的“避免重复造轮子”原则。与其引入一个行为不透明的公共第三方库,有时候让智能体在本地重新实现所需的特定功能子集,反而成本更低、效果更好。例如,OpenAI 团队在开发中选择让智能体自己实现并发辅助函数,而不是拉取外部包,因为本地编写的代码能够与系统原生的遥测工具(如 OpenTelemetry)深度集成、实现 100% 的测试覆盖率,并且完全符合运行时的预期行为。这种设计确保了架构中的每一个组件对智能体都是完全透明且易于组合的。

收缩解空间:用“无聊”换取系统的可驾驭性与可靠性 在极高的代码生成吞吐量下,如果任由智能体使用各种花哨、复杂的模式,系统很快就会因为熵增而崩溃。因此,软件多样性必须为了“易于驾驭”而做出让步。选择无聊且高度可组合的技术栈,实际上是在强制缩小架构的“解空间 (solution space)”。这种技术栈的收敛使得架构师能够更容易地通过自定义 Linter、结构化测试等机制在物理代码库中强制执行明确的领域约束和架构边界。

法则10:将品味编码化

工程师主观的“品味”是极其脆弱的。在驾驭工程中,如果你无法将你的设计标准和审美偏好转化为环境中的硬约束(如 Lint 规则、架构检查脚本),你的“品味”将随风而逝。将品味固化为环境中的物理定律,是确保系统长治久安的唯一手段。

消除隐性知识与“部落知识”的盲区 在传统的人工开发团队中,“品味(Taste)”往往表现为一种隐性知识(Tacit Knowledge)或“部落知识(Tribal Knowledge)”。它隐藏在资深工程师的脑海中、代码审查的直觉里,或是团队 Slack 的讨论中。然而,在以智能体为中心的知识管理体系中,“如果它只存在于你的脑海中,对智能体来说就等于不存在”。由于智能体极其字面化且过度自信,你在指令中留下的每一个模糊地带,实际上都是在不知不觉中将决策权下放给了它。因此,知识管理的第一步是彻底审计团队的“部落知识”,将那些主观的质量标准和审美偏好强行提取出来。

将主观偏好转化为机器可读的客观上下文 (Artifacts) 知识管理的物理形态必须发生改变。将品味“编码化”,意味着不再依赖人类的主观干预去纠正代码“坏味道”,而是将“口头约定”和“人类直觉”转化为环境中“硬性的阻断机制”。例如,OpenAI 团队通过构建自定义的 Linter、结构化测试,将命名约定、文件大小限制等“品味不变式(taste invariants)”静态地强制执行。为了提供绝佳的上下文,他们甚至会精心编写 Linter 的错误信息,以便在报错时直接将“修复指令”注入到智能体的运行上下文中。这种做法将主观的品味变成了智能体立即可读、可执行的物理脚手架。

构建动态的知识捕获与沉淀循环 品味的编码化不是一次性的静态工作,而是一个持续的知识捕获过程。当智能体生成的代码与人类工程师的“品味”发生冲突(例如发现不良模式或收到用户反馈)时,工程师绝不能仅仅手动修改代码了事。相反,人类的每一次评审意见、重构动作和反馈,都必须被捕获并沉淀为系统的上下文更新。如果文档的约束力不够,这种“品味”规则就会被直接提升(promote)并固化到工具链和代码中。这确保了系统的知识库始终与人类的最新认知保持同步。

确立“黄金原则”以抵抗系统熵增 在更大的上下文管理范畴下,编码化的个人品味最终汇聚成了整个代码库的“黄金原则(golden principles)”。这些原则是高度机械化、意见鲜明的规则。通过将品味编码进环境上下文,系统能够利用后台智能体(如垃圾回收智能体)定期扫描代码库中的偏差,自动发起重构拉取请求。这使得知识管理从“被动查阅”变成了“主动防御”,确保了在高吞吐量的生成下,整个系统依然能够维持高度的架构连贯性和一致性。


治理、效率与动态纠偏机制

在高吞吐量的 AI 协作环境下,传统的治理模式已经过时。我们必须接受一个事实:错误是高频发生的,但修正成本可以极低。

治理与效率逻辑对比

维度 传统手工工程 驾驭工程 (Harness Engineering)
治理模式 全局细粒度的手动审查 中央强制边界,局部允许自治 (法则5)
核心工分 最终交付的代码行数 将计划 (Plans) 视为一等公民 (法则7)
纠偏逻辑 周五大规模清理 (20% 时间损耗) 持续垃圾回收 (Continuous GC),即时纠偏 (法则9)
成本权衡 预防错误的成本较低 纠偏成本极低,等待成本极高 (法则8)

法则5:集中强化边界,局部允许自主

集中强化边界:构建高标准的治理“脚手架” 为了防止快速生成的庞大代码库变成“一堆巨大的垃圾”,系统必须具备强大的控制力。“集中强化边界”意味着人类工程师需要收回并集中对宏观架构和系统约束的控制权。正如来源指出的,工程师的工作不再是手动敲击代码,而是设计环境、明确意图并构建反馈循环。在驾驭工程的范式下,软件开发中的严谨性并没有消失,而是转移到了设计这种底层“脚手架 (scaffolding)”上。通过集中设定严格、清晰的边界,工程师使智能体所处的工作环境变得更加清晰和严苛。这是保障项目不脱轨、维持系统长期健康的治理基石。

局部允许自主:释放智能体的高吞吐量效率 在建立了坚固的中央边界之后,“局部允许自主”则是实现惊人效率的关键。如果在微观的每一个代码逻辑或局部任务上都强加人为干预或微观管理,就会扼杀 AI 极高的生成速度。在局部范围内赋予智能体自主权,就是让它在预设的安全边界内自由狂奔,发挥其极速试错和生成的潜力。 这与驾驭工程的另一项原则高度一致:除了在优先级划分、用户反馈处理和结果验证等真正需要人类判断的层面进行介入外,其余的一切都应该“放手让智能体去执行 (let the agent cook)”。

治理与效率的完美闭环:人类掌舵与智能体执行 法则 5 实际上是“人类掌舵,智能体执行”这一核心理念(法则 1)在架构与管理机制上的具体体现。“集中强化边界”代表了人类的掌舵与宏观治理,而“局部允许自主”则代表了智能体的高效执行。 这种模式既避免了因缺乏治理而导致的系统崩溃,又打破了传统人工干预带来的效率瓶颈,使得团队能够在受控的环境中,以前所未有的速度交付规模庞大的产品。

法则7:将计划 (Plans) 视为一等公民

为什么计划是“一等公民”?在驾驭工程中,智能体在执行前生成的计划 (Plans) 是关键的可审计数据资产。审阅计划比审阅代码更具战略意义,因为计划代表了意图的对齐。

应对智能体的“无状态”物理限制:状态外部化 在系统设计层面,由于 AI 智能体通常在离散的会话或受限的上下文窗口中工作,每次新会话启动时都会面临“失忆”的问题,无法直接连贯地完成长程任务。为了解决这个架构上的挑战,系统必须支持“状态外部化”。将计划文件(如 todo.md、执行计划映射表)作为系统控制层面的核心构件,相当于为智能体在复杂的多步执行中提供了一个正确的目标。这种设计使得即使上下文重置,智能体也能通过读取外部构件快速恢复进度并明确下一步方向。

版本控制与代码库协同定位 (Co-location) 系统设计要求将活跃的计划、已完成的计划以及已知的技术债与实际代码放在一起,并纳入严格的版本控制。例如,OpenAI 的团队在处理复杂的修改时,会将带有进度和决策日志的执行计划作为本地构件直接检入(checked into)代码存储库中,。这种设计确保了智能体可以在不需要依赖人类大脑、Google Docs 或 Slack 讨论等外部“不可见”上下文的情况下,完全依靠代码库本地的信息独立进行推理和操作,。

作为驱动系统执行与验证的“脚手架” 在系统的运行机制设计中,作为一等公民的计划文件直接驱动着代码的增量生成与验证。例如,Anthropic 的系统在初始阶段会强制“初始化智能体”基于需求生成一个结构化的功能列表文件(如 JSON 格式的计划),并将所有功能初始标记为“失败”,。在后续的循环中,编码智能体每次启动都会先读取这个计划,挑选优先级最高且未完成的功能进行开发,并在通过测试后更新该计划文件的状态,。LangChain 同样在系统设计中强调,要求智能体在动手编码前必须先扫描代码库并构建验证驱动的初始计划,这被证明能有效防止智能体陷入重复试错的“死亡循环 (doom loops)”并更快达到可用状态。

法则8:纠偏成本极低,等待成本极高

从“避免犯错”到“快速生成与修正” 在传统的人工编程(低吞吐量)环境中,由于人工编写代码耗时漫长,犯错的成本极高,因此花费大量时间去等待、规划以求“一次做对”是必须且负责任的做法。然而,在以智能体为中心的高吞吐量环境中,这种观念被完全打破:在低吞吐量环境下显得不负责任的做法,在处理高吞吐量任务时可能恰恰是正确的方法。因为 AI 生成代码的速度极快(例如 Open AI 团队能以人工十分之一的时间产出一百万行零人类编写的代码),在这个新环境中,由智能体快速生成然后进行修正的成本非常低廉,而为了追求人工确认和完美所产生的“等待时间”才是最昂贵的代价

治理边界的重构:人类掌舵,智能体执行 高效率并不意味着放弃治理,而是改变了治理的介入点(法则 1)。为了适应高吞吐量并避免人为瓶颈造成的“等待成本”,人类只在需要真正判断力的地方(如优先级划分、用户反馈处理和结果验证)进行升级介入(法则 12)。对于其他所有环节,治理的最佳方式是建立好边界,“放手让智能体去执行 (let the agent cook)”。这确保了系统的高吞吐量运转不会被不必要的人工审查所拖累。

严谨性的转移:从微观敲击代码到宏观“脚手架”设计 尽管法则 8 强调了快速执行和低成本修正,但这并未导致项目失控或变成一堆巨大的“垃圾代码”。这是因为治理的严密性并没有消失,而是从“手动敲击代码”转移到了“设计环境的脚手架 (scaffolding)”上。例如,为了配合高吞吐量下的快速修正,系统需要配合“持续的垃圾回收而非定期的集中清理”(法则9),因为如果任由 AI 产生的无效代码堆积,团队将不得不用整个工作周 20% 的时间来清理这些“垃圾”,这种糟糕的扩展方式会严重反噬效率。

法则9:持续垃圾回收 (Continuous GC)

在驾驭工程中,我们推崇“持续垃圾回收”——让系统具备自动清理失效逻辑和冗余代码的能力。记住:在高吞吐环境下,让智能体等待你的审批是非常昂贵的,而让它快速尝试并自动纠错则是极其廉价的。

传统“定期集中清理”的扩展性危机 来源明确指出,团队过去常常在每周五专门花费时间来清理 AI 产生的“垃圾代码 (AI slop)”。这意味着整个工作周有高达 20% 的时间被消耗在清理工作上。从效率的角度来看,这是一种极大的浪费。更重要的是,在 AI 驱动的高吞吐量环境下,这种做法具有极其负面的扩展性(scales in the bad way)。因为随着智能体生成代码速度的加快,如果依赖定期的手动清理,垃圾积累的速度迟早会压垮团队的生产力,成为系统效率的致命瓶颈。

持续回收是支撑高吞吐量(效率)的必要底座(治理) 正如法则 8 所强调的,高吞吐量环境下的特点是修正成本低、等待成本高。为了让智能体能够无所顾忌地快速生成和试错,系统必须具备强大的自我净化能力。持续的垃圾回收提供了一种动态、实时的治理手段。它确保了在享受 AI 高速产出的同时,项目不会随之退化崩溃,避免最终变成“一堆巨大的垃圾 (a giant pile of slops)”。这种持续的治理机制是保障高效率不脱轨的必要条件。

严谨性向环境“脚手架”设计的转移 在更大的治理范畴下,法则 9 完美体现了驾驭工程的核心理念:人类掌舵,智能体执行。为了摆脱每周 20% 的清理负担,开发中的严谨性并没有消失,而是从人类手动编写和维护代码,转移到了设计环境的“脚手架 (scaffolding)”上。通过在环境的底层构建持续垃圾回收的机制,工程师实际上是在打造一个更为严格、清晰且易于机器读取的工作环境。这使得系统能够在无需人类频繁介入的情况下自动保持健康运转,从而实现了高标准治理与极致效率的完美统一

法则12:人工介入的唯一标准

人工干预应被视为一种昂贵的“升级”机制。只有在需要真实判断力 (Judgment) 的环节,人类才应介入:

  1. 优先级判断: 决定“做什么”比“怎么做”更重要。
  2. 用户反馈: 处理真实世界中复杂的人类情感与体验。
  3. 结果验证: 对最终交付价值的定性评价。

明确的层级与抽象边界:人类掌管“意图”,智能体包揽“执行” 在传统的开发分工中,工程师是逐行敲击代码的“工匠”。然而,规则 12 确立了截然不同的抽象层级分工:人类工程师只在优先级划分、将用户反馈转化为验收标准,以及验证最终结果等真正需要人类判断力(Judgment)的层面上进行介入。对于除此之外的所有繁杂的实施细节,人类必须完全放权,即“放手让智能体去执行 (let the agent cook)”。在这种新分工下,智能体能够端到端地包揽验证代码状态、复现 Bug、编写和验证修复程序、甚至处理审查反馈等一系列执行工作,仅在真正需要判断力时才向人类升级求助。

工程师角色的跃迁:从“编码”到“系统管理者”与“意图架构师” 因为智能体接管了不涉及宏观判断的执行层,人类的价值锚点发生了根本转移。来源材料生动地指出,这种分工转变就如同 F-16 战斗机的飞行员不再直接依靠体力操纵机翼,而是向底层计算机发送宏观指令并管理极其复杂的系统。在团队中,人类的技能树必须从“代码实现者”向“意图架构师 (Intent Architect)”转型。人类不再需要死记硬背特定语言的语法,而是将精力集中在如何把模糊的商业需求转化为精准、可测试的意图说明,并设计出能让智能体自我校验的环境脚手架(Scaffolding)。你更像是一个管理着一个极其迅速、极度字面化且极度自信的实习生的产品经理。

捍卫人类的“决策权”:消除指令模糊地带 在角色分工上,规则 12 不仅仅指示人类“不需要做什么(执行)”,更强调了“什么是人类必须死守的职责(判断)”。由于智能体会像一个讨好型人格的实习生一样,自动填补你指令中的空白,你在指令中留下的每一个模糊地带,实际上都是在不知不觉中将关键的架构设计决策权下放给了智能体。因此,人类在分工中的首要任务是极其严密地控制意图,在让 AI 生成代码之前,强制其翻译并确认意图,以确保没有任何需要人类判断的假设被 AI 私自替代。人类的杠杆不再来源于写代码,而是来源于对预期的极致精确描述和对结果的验证。

面对失败时的职责重构:人类修复“环境”,智能体修复“代码” 在“仅在需要判断时介入”的严格分工下,即使系统出现 Bug 或智能体陷入困境,人类的职责也绝不是越俎代庖去手动修改代码。相反,人类必须将失败视为一种信号,动用判断力去审查和诊断“驾驭环境”是否存在缺陷(例如是否缺失了工具、护栏、断言或文档)。一旦人类判断并补充了缺失的系统上下文,修复代码的具体执行工作依然要交还给底层智能体去完成。这意味着,人类全权负责维护“驾驭马具”的严密性,而智能体负责在此马具的约束下不知疲倦地输出代码。


工程严谨性的重心偏移

驾驭工程并非对工程严谨性的抛弃,而是严谨性的高级进化。它将我们从繁琐的代码编写中解放出来,推向了更具挑战性的领域:设计能够自愈、自适应且高度透明的脚手架。

作为未来的软件工程师,你的身份已经从“写代码的人”转变为“设计代码产出环境的人”。这种转变要求我们放弃对每一行代码的微观控制欲,转而追求对系统整体反馈机制的宏观掌控力。拥抱驾驭工程,意味着你不再是 AI 浪潮中的被动参与者,而是那股巨大生产力的真正驾驭者。在这个新纪元,环境设计的严谨程度,将直接决定你创造世界的速度。