摘要
生成式 AI 把代码生产的边际成本压到了前所未有的水平,也制造了一种诱人的错觉:既然代码可以被迅速生成,软件工程的旧规律就将失效。本文提出相反判断。《人月神话》最值得保留的从来不是对某种编程工具的评价,而是它对复杂性、沟通、组织结构与概念完整性的观察。AI 改变了劳动分工和反馈速度,却没有自动决定产品应该成为什么、系统应承担何种约束、风险由谁负责。
文章逐章重释 Brooks 的核心思想,并将其延伸到 Coding Agent、多智能体协作、上下文工程、知识库、架构约束、评测与可观测性。结论不是“AI 只是新工具”,也不是“AI 将替代软件工程”,而是:软件工程的控制面正在从代码本身上移到知识、边界与验证系统。
AI 没有终结《人月神话》。它把这本书的问题,从“如何组织程序员生产代码”,升级成了“如何组织人和智能体共同控制复杂性”。
第一部分 · 回到 Brooks 的问题现场
01为什么今天应该重新阅读《人月神话》
1975 年,《人月神话》首次出版。半个世纪之后,我们用自然语言要求模型写接口、补测试、迁移框架,甚至让多个 Agent 在隔离环境中并行处理问题。表面看,这是 Brooks 所处时代无法想象的生产力跃迁;更深处看,我们又一次站到了他熟悉的泥潭边:产出增加了,系统却未必更容易理解;参与者增加了,项目却未必更快完成。
这本书经久不衰,是因为它讨论的并非某种语言、流程或工具,而是软件开发中的比例关系:可并行工作与不可并行决策的比例,局部效率与整体吞吐的比例,新增功能与新增认知负担的比例,以及创造速度与验证能力的比例。工具会让这些比例变化,却不会让它们消失。
AI 时代最容易被放大的,是“可见的产出”:代码行、提交数、原型数量、关闭的任务。最不容易被看见的,则是产出背后的债务:没有被记录的假设、边界条件、隐含耦合、权限漏洞、迁移路径、值班负担和未来维护者需要重新建立的心智模型。Brooks 的价值,恰好是迫使我们把目光从产出移向系统。
因此,重读不是给旧结论换上 AI 名词,而是重新追问三个问题:第一,AI 究竟消除了哪些成本,又把哪些成本转移到了下游?第二,当执行者从人扩展为 Agent,沟通与协调的结构发生了什么变化?第三,什么样的知识和治理机制,能让更快的生成速度转化为长期可持续的软件能力?
02一场五十亿美元豪赌留下的工程经验
Brooks 的判断不是书斋推演。IBM 在 1964 年推出 System/360,用统一架构替代多条互不兼容的产品线。IBM 将其称为一场耗资五十亿美元、几乎押上公司的豪赌;Fred Brooks 是项目领导者之一。System/360 最重要的商业承诺,是让软件可以跨同一系列机器运行,让客户扩展硬件时不必重写全部程序。[3]
统一的硬件架构创造了平台,却也把前所未有的复杂性推给了 OS/360。硬件兼容、不同配置、交付排期、团队扩张与沟通链路交织在一起。正是在这种大规模工程的压力下,Brooks 看见一个反直觉事实:软件工作无法像搬砖一样,把总量平均分给更多人。许多任务存在顺序依赖;新成员需要学习;接口需要协商;已有成员还要花时间解释和整合。
今天的相似之处并不是 AI 像 1960 年代的程序员,而是我们也在进行一次平台迁移。过去的软件组织把“人能写多少代码”当成稀缺资源;现在代码供给迅速扩张,稀缺资源开始转向高质量问题定义、领域判断、架构上下文、可信验证和上线责任。生产函数变了,但任何组织如果继续用旧指标管理新稀缺性,都会得到大量看似完成、实际上未被吸收的工作。
**历史的真正类比:**System/360 通过统一架构释放了软件复用,却让操作系统工程暴露出新的规模问题;AI 通过统一的自然语言接口释放了代码生成,也会让知识一致性、验证容量与责任边界暴露出新的规模问题。
03软件工程五十年,到底改变了什么
如果只看技术名词,过去五十年几乎每十年都发生一次“范式革命”;如果看工程目标,变化却高度连续。结构化程序设计减少控制流的任意性,面向对象尝试把数据与行为组织成可理解的单元,敏捷缩短需求与反馈之间的距离,云计算把基础设施变成可编程资源,DevOps 让构建、测试、发布和运维形成闭环,平台工程再把这些能力产品化。AI Coding 与 Agent Engineering 处在这条链的下一段:它们把“产生候选实现”与“执行工具链”变成可委派能力。
- 1968
- “软件危机”进入公共讨论;软件工程开始被当作独立学科。
- 1975
- 《人月神话》总结大型软件项目中的进度、组织与设计经验。
- 1987
- Brooks 发表《没有银弹》,区分本质复杂性与偶然复杂性。[2]
- 1990s
- 面向对象、设计模式与开源协作扩大软件复用边界。
- 2001
- 敏捷宣言强调个体互动、可工作的软件、客户协作与响应变化。[10]
- 2010s
- 云、持续交付、SRE 与 DevOps 把反馈和运营纳入日常工程。
- 2021
- 自然语言代码补全走向大众化,开发者开始与模型结对。
- 2024
- 工具调用、MCP 等协议推动模型连接代码库、数据与外部系统。[28]
- 2025–26
- Coding Agent 从补全走向自主读取仓库、修改、运行测试、提交审阅,并出现多 Agent 工作台。[24][25]
这条时间线说明,AI 并不是凭空降临的软件革命,而是抽象层不断上移的延续。每次上移都会消除一部分手工劳动,同时产生新的控制面:高级语言需要编译器与类型系统,云需要基础设施即代码与可观测性,持续交付需要自动化门禁,Agent 则需要上下文、工具权限、运行轨迹、评测和人工审批。

图 1 · 软件工程五十年演进 从 Code 到 Knowledge Engineering,执行层持续自动化,工程控制面则从实现细节逐步上移到编排、约束与组织知识。
第二部分 · 八个经典命题的 AI 时代重释
04AI 改变代码速度,却没有取消本质复杂性
在《没有银弹》中,Brooks 区分了两类困难:essential complexity,来自问题本身必须表达的复杂关系;accidental complexity,来自工具、表示方法和实现过程附加的困难。这个区分经常被粗暴改写成“AI 只能消灭偶然复杂性”,但现实更细腻。
AI 确实显著压低了许多实现成本。样板代码、数据转换、常见接口、测试脚手架、查询语句、文档初稿和跨语言翻译,都可以更快生成。它也能帮助人探索本质问题:归纳访谈、提出反例、模拟方案、检索代码依赖、解释陌生领域。换言之,AI 不只是在更快地打字,它也可以扩展人的思考带宽。
然而“帮助理解”不等于“消除本质”。一家银行仍需决定在何种证据下拒绝交易;医疗系统仍需定义何为可接受风险;协作产品仍需处理权限继承、数据保留与合规冲突。模型可以提出候选答案,却不能让这些取舍从现实中消失,也不能自动获得承担后果的授权。
更值得警惕的是,偶然复杂性的下降会刺激系统规模增长。当新增一个服务、一个配置项或一条自动化流程的成本接近于零,团队更容易选择“再加一个”。局部实现变简单,系统整体可能反而更复杂。这是一种复杂性反弹:节省下来的编码成本,被更多功能、更多依赖和更多运行状态重新消费。
“There is no single development … which by itself promises even one order-of-magnitude improvement.”
Frederick P. Brooks Jr., “No Silver Bullet”, 1987(短引)
Brooks 反对的不是进步,而是“单一突破带来数量级改善”的幻想。AI 当然可能给特定任务带来数量级提升;但当衡量单位从“生成一个函数”扩大到“把正确系统安全地运行十年”,承诺就必须重新接受检验。
05Brooks 定律:更多 Agent 也会让坏架构更快失控
“Adding manpower to a late software project makes it later.”
《人月神话》第二章(短引)
这条定律成立,有三个条件:任务不能完全切分,新参与者需要获得上下文,最终产物必须被整合。人类团队如此,Agent 系统同样如此。十个 Agent 并不天然等于十倍吞吐,因为它们可能读到不同版本的需求、重复修改同一区域、基于不一致假设设计接口,并把冲突留给最后的集成者。
Agent 的“入职成本”看似比人低:给它仓库、指令和工具即可开工。但它的上下文不是稳定的长期理解,而是每次运行中被选择、压缩和重建的信息。更多并行任务意味着更多上下文切片、更多分支、更多测试占用,以及更多需要人工判断的候选变更。若系统边界模糊,Agent 会非常高效地扩大模糊。
因此,AI 时代的 Brooks 定律可以表述为:**向一个已经失去概念边界的项目增加更多 Agent,通常只会更快地产生更多不可整合的局部正确。**解决办法不是拒绝并行,而是先提高任务可分解性:定义所有权、冻结接口、提供验收条件、限制写入范围、让每项变更独立验证,再决定并发度。
| 成本来源 | 人类团队 | Agent 团队 | 工程对策 |
|---|---|---|---|
| 上下文获取 | 培训、会议、代码阅读 | 检索、提示、上下文压缩 | 高信号项目地图与任务包 |
| 决策一致性 | 经验和理解差异 | 提示、模型和采样差异 | ADR、契约、示例与不变量 |
| 写入冲突 | 多人修改同一模块 | 并行分支产生语义冲突 | 所有权边界与小批量合并 |
| 质量判断 | 评审者注意力有限 | 候选产出远快于验证 | 自动门禁加风险分级审阅 |
| 责任归属 | 角色与组织授权 | Agent 不能承担上线责任 | 明确的人类批准者和回滚路径 |
06The Surgical Team:Agent 是数字手术队吗
Brooks 借鉴 Harlan Mills 的“外科手术式团队”:由一位首席程序员保持设计与实现的智识统一,其他成员像麻醉师、器械师和助手一样提供专业支持。它的重点不是英雄主义,而是避免把同一个核心设计平均切给许多人,再期待它自行长成一个一致系统。
Coding Agent 让这个构想获得新的现实形态。一个负责人可以让不同 Agent 分别搜索历史、编写迁移脚本、补充测试、检查安全风险、更新文档;负责人保留问题定义、方案选择和最终合并权。OpenAI 在 2025 年介绍 Codex 时,就把它描述为可在隔离云环境中并行处理软件任务、运行测试并提出待审阅变更的工程 Agent;到 2026 年,产品界面进一步转向对多个长任务 Agent 的监督。[24][25]
但“数字手术队”只有在主刀真正掌握系统时才成立。若负责人只负责分发模糊任务,没人维护整体模型,团队会退化为十支手术刀同时下刀。AI 不能填补缺席的设计权威;它只能放大现有的权威、规则与盲点。
现代版本也不应复制单一专家的所有缺陷。概念权威可以集中,证据与质疑必须分散:安全 Agent 可以挑战主方案,测试 Agent 可以生成反例,领域专家可以否决错误假设,重大决策仍通过团队评审。最好的结构不是“一个人永远正确”,而是“一条设计主线清晰,同时允许有组织的反证”。

图 2 · Digital Surgical Team 人类 Tech Lead 保持概念完整性并承担最终责任,五类专业 Agent 提供研究、实现、测试、安全与文档能力;所有输出统一经过 Validation & Merge Gate,形成可审阅的有效变更。
07概念完整性:AI 时代最稀缺的竞争力
Brooks 把概念完整性视为系统设计最重要的品质。用户不关心组织图上有多少团队;他们感知的是同一个系统是否遵循一套可以预测的概念:相同的词是否指向相同的事物,相似操作是否有相似行为,错误是否以一致方式出现,权限与数据生命周期是否遵守同一原则。
概念完整性并不等于代码风格统一。格式化工具能统一缩进,却不能决定“客户”与“账户”是否是同一个边界概念;框架能统一控制器写法,却不能决定库存扣减发生在下单、付款还是出库。真正的完整性存在于语义和取舍中。
AI 会把这种差异放大。面对一个命名清晰、模块边界稳定、测试表达业务不变量的仓库,Agent 可以从大量一致例子中归纳正确模式;面对十年历史中并存五套架构的仓库,它无法知道哪一套代表未来。模型通常会选择局部最像的答案,于是历史偶然被复制为新规范。
这也是为什么领域驱动设计、架构决策记录(ADR)、C4 模型和演进式架构在 AI 时代重新重要。[12][16][17] 它们的共同作用,是把“我们为什么这样设计”变成可检索、可评审、可追踪的组织记忆。它们不是为了给模型喂更多文字,而是为了让人和模型共享同一套少而稳定的概念。
**概念完整性可以被理解为一种语义压缩。**当少量原则能够解释大量局部决策,系统就容易学习和预测;当每个文件都需要单独解释,系统已经失去可压缩性。AI 最擅长放大前一种系统,也最容易在后一种系统中制造“看起来合理”的偏差。
08文档假说:未来的核心仓库是知识仓库
Brooks 在“文档假说”中主张,项目需要少量关键文档来表达目标、约束、组织、预算、进度与接口。重点从来不是“文档越多越好”,而是用一组权威对象保持共同现实。在 AI 时代,这一原则比“代码即文档”更可靠。
当代码主要由人书写时,熟练开发者还可能从命名、提交历史和实现细节中还原意图;当大量代码由 Agent 快速生成,代码更像决策的沉积物,未必携带足够的理由。一个实现通过了当前测试,不代表后来者知道哪些行为是业务承诺,哪些只是临时选择,哪些变动需要迁移数据或通知客户。
真正有用的知识仓库至少包含六类内容:业务词汇与关键场景,系统地图与所有权,架构原则与 ADR,接口和数据契约,构建测试发布方法,以及事故、回滚和安全边界。提示词、Skill、项目规则、检索索引与 Agent Memory 可以成为访问层,但不能取代这些事实本身。
文档还必须具备生命周期。没有负责人、没有版本、无法被测试、与代码一起过期的文档,只会给 Agent 提供更有说服力的错误上下文。高质量做法是:权威来源唯一;决策与变更关联;契约尽可能机器校验;示例来自真实测试;过期内容有检测与删除机制。
| 知识层 | 回答的问题 | 推荐载体 | 验证方式 |
|---|---|---|---|
| 意图 | 为什么做、为谁创造价值 | 业务目标、场景、指标 | 用户反馈与结果指标 |
| 概念 | 系统中的词意味着什么 | 领域词汇、边界上下文 | 跨团队术语评审 |
| 决策 | 为何选择此方案 | ADR、风险与替代方案 | 变更关联与定期复审 |
| 契约 | 什么行为不可破坏 | Schema、API、策略、不变量 | 契约测试与静态规则 |
| 操作 | 如何构建、发布、恢复 | Runbook、自动化脚本 | 演练与可观测性 |
| Agent 层 | 如何让智能体正确行动 | 指令、Skill、工具权限、Memory | 评测、轨迹审计、人工审批 |
09巴别塔为何失败:共享语言仍是系统基础设施
《人月神话》用巴别塔讨论沟通失败:项目并不只是因为技术困难而失败,也会因为参与者不再共享同一种语言和同一幅系统图景而失败。人数增加时,潜在沟通关系近似按平方增长;层级、模块与接口的意义,本就是为了减少必须发生的全连接沟通。
Agent 看似没有会议疲劳,却有另一种巴别塔问题。一个 Agent 读取产品文档,一个读取代码,一个只拿到任务描述;它们对“完成”的定义可能不同。上下文窗口再大,也不会自动解决来源冲突、时效性和权威性。Memory 甚至可能把旧判断稳定地带入新任务,让错误更连贯。
Model Context Protocol(MCP)与 Agent2Agent(A2A)等开放协议,分别尝试标准化模型连接外部工具/数据以及 Agent 之间的互操作。[28][29] 它们很重要,但协议只解决“能否交换”,不保证“交换内容的语义一致”。HTTP 让服务可以通信,并没有消除分布式系统中的契约错误;同样,Agent 能互相调用,并不代表它们拥有共享理解。
因此,上下文工程首先是信息架构,而不是把更多文本塞进窗口。需要明确来源优先级、时间戳、适用范围、版本和冲突处理;在交接时传递决策摘要、未决问题、证据与验证状态,而不只是全部聊天记录。共享语言必须被设计。
10第二系统效应:当功能的价格趋近于零
Brooks 观察到,设计第二个系统时,人们容易把第一个系统中被克制的所有想法一次性加入,结果得到臃肿、过度设计的作品。AI 让这种诱惑更强:过去因为开发昂贵而被否决的功能,现在几小时就能出现原型;过去需要慎重引入的抽象,现在一句“让它更通用”就会生成。
问题在于,生成功能的成本和拥有功能的成本不是同一个数。每个新增能力都会扩展测试矩阵、权限面、文档、监控、兼容承诺与用户选择。Agent 擅长完成可见的 happy path,但长期成本往往存在于失败路径:旧数据如何迁移,部分成功如何补偿,外部依赖超时如何降级,审计如何解释自动决策。
Vibe Coding 的风险并不是使用自然语言,而是把“能运行”误当作“可拥有”。原型阶段可以拥抱速度;一旦系统承载真实资金、数据或组织流程,就必须支付生产化税:威胁建模、可观测性、容量、恢复、数据治理和服务等级目标。AI 可以帮助支付这笔税,却不能宣布它不存在。
对抗第二系统效应,需要把删除能力与新增能力放在同一优先级:设置功能预算,要求每个新概念说明它替代了什么,对依赖和配置设上限,用产品结果而非生成速度判断价值。真正成熟的 AI 工程不是“什么都能做”,而是“知道什么不该生成”。

图 3 · 复杂性反弹曲线 AI 降低单项实现成本,却同时刺激功能供给、依赖规模与验证负担增长。架构约束和验证能力不足时,局部效率红利会在复杂性拐点之后转化为总拥有成本反弹。
11Plan to Throw One Away:从“大重写”到可替换实验
“准备抛弃一个版本”常被当作重写的浪漫口号。它原本提醒人们:在真正理解问题之前,第一个设计往往只是学习工具。AI 的确让探索性实现变便宜:团队可以快速比较数据模型、API 形态或迁移路径,以代码而非幻灯片暴露未知。
但 Brooks 在二十周年版中也反思了这一说法。他更认可渐进构建:系统在持续反馈中生长,而不是先制造一个完整废品,再整体替换。这个修正对今天尤其重要。AI 降低的是重新生成的成本,不是替换生产系统的成本。真实系统包含数据、客户行为、外部集成、审计记录和运维经验,这些都不能被一次 prompt 重新生成。
所以,现代工程策略应是“让实验可丢弃,让资产可迁移”。把高不确定部分隔离为 spike、沙箱或影子实现;在进入主干之前明确学习目标;通过契约测试保护外部行为;让数据库迁移可回滚;用绞杀者模式逐步替换旧能力。若一个原型意外成为生产系统,必须补做所有权和生产化审查,而不是因为它运行过一次就默认继承。
AI 还提供了另一种可能:同一需求生成多个候选方案,用评测和基准选择,而不是对第一份流畅输出产生情感依附。此时“抛弃一个”不再是失败,而是搜索过程的正常成本。不过,评测标准必须先于候选方案建立,否则我们只是从多个无法解释的答案中选择最顺眼的一个。
12No Silver Bullet:银弹神话为何总会回来
每一代软件技术都会短暂扮演银弹:第四代语言、面向对象、组件、低代码、微服务、云原生,如今是大模型。它们都产生了真实价值,也都在扩大应用边界后遇到新的复杂性。银弹神话反复出现,是因为人们倾向于把局部生产效率外推为系统交付效率。
AI 的特殊之处在于,它同时作用于多个阶段:需求表述、设计探索、编码、测试、运维与知识检索。它可能比过去任何单一工具影响更广。然而影响广仍不等于不受约束。只要软件需要映射一个不断变化的现实世界,模型就必须面对不完整需求、相互冲突的目标、组织权力与未知未来。
“没有银弹”也不应成为保守主义借口。Brooks 并没有说工具无用;他的判断是没有单项技术承诺在十年内把软件生产率、可靠性和简单性提高一个数量级。[2] 工程师应同时持有两种态度:积极利用 AI 消除重复劳动,严格拒绝把演示速度当成全生命周期证据。
真正可持续的提升往往来自组合:更小的系统边界、更清晰的领域模型、更短的反馈、更好的工具、更自动的验证、更安全的发布以及更健康的组织结构。AI 可以强化这套组合,但无法代替组合本身。
| Brooks 的命题 | AI 时代的对应问题 | 需要守住的原则 |
|---|---|---|
| The Tar Pit | 生成容易,生产化与维护仍困难 | 以全生命周期而非 demo 衡量完成 |
| The Mythical Man-Month | 更多 Agent 带来上下文与集成税 | 先分解、再并行 |
| The Surgical Team | 一个负责人协调专门 Agent | 概念权威集中,证据与反证分散 |
| Aristocracy, Democracy… | 设计主线与团队参与如何平衡 | 决策过程开放,最终语义一致 |
| Second-System Effect | 低成本生成功能导致范围爆炸 | 复杂性预算和删除机制 |
| Passing the Word | 规则、Skill、Memory 如何传递 | 权威来源、版本和适用范围 |
| Why Did the Tower of Babel Fail? | 多 Agent 上下文碎片化 | 共享语言与结构化交接 |
| Calling the Shot | Agent 任务时长与成功率难估 | 历史数据、分位数和置信度 |
| Ten Pounds in a Five-Pound Sack | 上下文、算力、延迟和成本预算 | 选择信息,不迷信无限上下文 |
| The Documentary Hypothesis | 知识仓库成为生成控制面 | 少量、高信号、可验证文档 |
| Plan to Throw One Away | 快速生成多个实验实现 | 实验可丢弃,数据与契约可迁移 |
| Sharp Tools | 模型、MCP、沙箱、CI 工具链 | 最小权限、可复现、可审计 |
| The Whole and the Parts | 局部测试通过但系统行为错误 | 单元、契约、端到端与评测分层 |
| Hatching a Catastrophe | 大量小偏差在集成末期爆发 | 小批量、在制品限制和领先信号 |
| The Other Face | AI 生成界面与解释影响用户信任 | 把可理解性视为产品契约 |
| No Silver Bullet | 把模型能力误当系统能力 | 区分任务基准、团队吞吐与业务结果 |
第三部分 · 从 AI Coding 到 Agent Engineering
13从代码资产到知识资产
传统软件组织把源代码视为核心资产,这是合理的,因为代码是机器执行的最终权威。但在 AI 生成能力普及后,代码的经济属性开始改变:许多实现可以根据规格、契约和示例重新生成。于是代码的一部分更像“编译结果”或“缓存”——重要、必须受控,却不再完整代表组织最稀缺的知识。
这里必须避免另一个夸张结论:代码绝不会变成可以随意删除的临时文件。生产代码承载经过验证的边界条件、性能优化、合规证据和事故修复;如果生成它的知识并不完整,代码本身就是唯一事实。所谓“代码像缓存”,是一种方向性判断:当规格和验证足够强时,更多实现细节将可再生;不是说今天已经可以抛弃源码。
未来更有价值的资产,是生成与判断背后的知识:领域模型、约束、策略、决策记录、评测集、失败案例、运维经验、工具能力和权限模型。它们决定 Agent 能产生什么,也决定哪些产出不得进入生产。TOGAF 所说的 Architecture Repository、DDD 的领域知识、SRE 的运行手册,在这里汇成同一个控制面。
知识资产与代码资产还有一个根本差异:知识不能只靠“存储”产生价值。它需要出处、责任人、适用边界、刷新周期和冲突解决。向量数据库可以找回一段文字,却不能判断它是否仍然代表组织决策。知识工程的核心不是检索率,而是治理事实。

图 4 · 软件资产重心迁移 随着实现的可再生性提高,软件资产重心从代码、框架和平台,逐步上移到知识、Skill、Memory 与 Architecture Repository;后者通过版本化决策、约束和策略形成组织级治理控制面。
14Agent Engineering:从提示词走向运行系统
Prompt Engineering 关注单次输入如何获得更好的输出;Context Engineering 关注在正确时刻给模型提供正确的信息;Loop Engineering 进一步处理模型如何使用工具、观察结果、纠错与终止;Agent Engineering 则把模型放进一个可运行、可观测、可治理的系统。最后,Knowledge Engineering 负责这个系统所依赖事实的生产与生命周期。
这几个阶段不是相互替代,而是逐层包含。好的提示无法弥补错误数据;好的上下文无法弥补无边界工具权限;好的循环无法弥补错误目标;好的 Agent 架构也无法弥补组织没有权威知识源。工程成熟度越高,关注点越从“模型说了什么”转向“系统在什么条件下允许它做什么,以及如何证明结果”。
OpenAI 的 Agent 构建指南把模型、工具和指令视为基础,并区分单 Agent 与多 Agent 编排,同时强调 guardrails。Agents SDK 又把工具调用、handoff、会话、人工介入与 tracing 纳入运行时;轨迹可记录模型生成、工具调用、交接和防护事件。[26][27] Anthropic 对 Agent 的经验则强调从简单、可组合模式开始,只有在任务价值需要时才增加自主性和复杂度。[30]
这些实践与 Brooks 的思想高度一致:少量清晰构件优于华丽框架;组织和接口比人数更重要;系统必须保留一条可理解的控制主线。所谓 Agent Engineering,不是把更多模型接在一起,而是设计一个能够安全委派、发现偏差、保留证据并在必要时停下来的执行组织。
| 层次 | 核心问题 | 主要产物 | 典型失败 |
|---|---|---|---|
| Prompt | 如何表达当前任务 | 目标、约束、输出格式 | 指令含糊、验收缺失 |
| Context | 需要哪些事实 | 检索、项目地图、状态摘要 | 信息过期、冲突、噪声过多 |
| Loop | 如何观察、行动与终止 | 工具调用、重试、预算、停止条件 | 死循环、过度调用、错误累积 |
| Agent | 如何委派与承担流程 | 角色、权限、handoff、guardrail、trace | 责任模糊、越权、不可审计 |
| Knowledge | 事实如何产生与更新 | 领域模型、ADR、契约、评测集、Memory | 知识腐化、来源不明、旧规则固化 |
15多 Agent 不是免费并行,而是一种新组织设计
把 Agent 数量当成云实例数量,是最危险的类比之一。计算任务只要无共享状态就容易横向扩展,软件任务却经常围绕共享概念和共享文件。多 Agent 的价值存在于真正可分解的工作:独立模块、不同证据源、互不覆盖的验证角色,或可以通过明确契约重新组合的候选结果。
当任务高度耦合时,增加 Agent 会引入四种税。第一是分解税:人必须把问题切成可独立完成的单元。第二是上下文税:每个 Agent 都要获得足够而不矛盾的信息。第三是协调税:依赖、顺序和变更需要被调度。第四是验证税:所有局部结果最终必须在系统层面证明相容。
多 Agent 架构通常有两类基本形态。Manager 模式由一个中心 Agent 保留控制,调用专家 Agent 作为工具;handoff 模式把控制权交给新的专家。前者有利于保持主线,后者有利于长流程中的专业自治。没有一种形态普遍更好,选择取决于谁拥有最终上下文、错误是否可逆、交接是否需要用户参与。
最实用的原则仍然来自排队论和持续交付:限制在制品,缩短批量,尽早集成。与其同时启动二十个任务后在末尾处理冲突,不如维持少量高价值并行流,让每个变更持续通过构建、测试和契约门。Agent 速度越快,越需要 WIP 限制,否则验证队列会成为新的晚期项目。

图 5 · 多 Agent 吞吐模型 净吞吐收益并不等于 Agent 数量带来的理论并行收益,还必须扣除分解、上下文、协调和验证成本。任务耦合度越高,这些税负增长越快,边际收益最终可能转负。
16架构必须从“建议”变成可执行治理
过去的架构文档主要服务于人的阅读。Agent 加入后,架构原则还必须在执行路径上发挥作用。仅写“保持模块解耦”太抽象;更有效的表达是:哪些模块可以依赖哪些模块,哪些数据只能由哪个服务写入,哪些 API 需要幂等键,哪些目录不允许自动修改,哪些变更必须由安全负责人批准。
这意味着架构需要双重表示。一层是面向人的意图:原则、模型、权衡和例外理由;另一层是面向机器的约束:类型、Schema、静态分析规则、策略即代码、测试、CI 门禁、权限清单和部署检查。前者没有后者会沦为愿望,后者没有前者会成为无人理解的禁令。
Architecture Guardian 不应只是另一个会写评论的 Agent,而应是一套分层控制。低风险规则自动执行,中风险偏差要求解释,高风险动作需要人工批准;所有例外留下时限和责任人。Agent 的工具采用最小权限,读取和写入分离,生产操作默认不可逆时停下,运行轨迹可审计,敏感上下文有明确边界。
测试在这里也需要升级为评测。确定性代码可以用输入输出断言;包含模型的系统还要评估任务成功、工具选择、事实性、安全、成本、延迟与退化。评测集应来自真实失败和关键业务场景,并持续防止“模型升级后指标更好、业务边界却悄悄变化”。
17重新衡量生产力:代码更多,不等于价值更快
AI 时代最糟糕的管理反应,是用代码行、提交数或 Agent 完成任务数证明投资回报。SPACE 框架早已提醒,开发者生产力至少涉及满意度与福祉、绩效、活动、沟通协作以及效率与流,不能由单一指标替代。[21] 当生成成本下降,活动指标与真实价值之间的距离只会更大。
经验数据也要求克制。METR 在 2025 年对 16 位熟悉成熟开源项目的开发者进行随机对照试验,共覆盖 246 个真实任务;在特定的早期 2025 工具和研究条件下,允许使用 AI 的组平均完成时间反而增加约 19%。研究者明确把它视为特定人群、工具和时间点的快照,而非 AI 永远降低效率的结论。[32] 它最重要的启示,是主观“感觉更快”不能代替测量。
另一边,2025 DORA 报告把成功采用 AI 描述为系统问题,而不是单纯工具问题,并强调价值流管理让局部提升转化为产品绩效。[31] 这正是 Brooks 视角:局部程序员效率不是项目吞吐,项目吞吐也不是业务结果。组织的架构、平台、流程与文化会调节工具效果。
一个可靠的度量组合应同时观察四层:任务层看完成时间、返工和评测通过率;工程系统层看变更前置时间、部署频率、失败率和恢复时间;团队层看认知负荷、审阅队列与知识扩散;业务层看用户结果、风险和总成本。还要区分绿地与遗留系统、熟悉与陌生代码库、短任务与长任务,不把平均值当作普遍规律。
**建议的核心指标:**从“Agent 生成了多少”转向“一个经过验证、可回退、可维护的业务变更从提出到生效需要多久”。前者奖励库存,后者关注价值流。
18人的新位置:从代码作者到意图、边界与责任的设计者
“AI 放大架构师,而不是程序员”是一个有力量但不够准确的判断。优秀程序员从来不只是打字者,他们在代码层发现需求矛盾、性能边界和失败模式。AI 改变的不是“程序员消失、架构师胜利”,而是所有软件角色都要向更高杠杆的判断移动。
未来工程师的核心能力包括:把模糊问题转成可验证假设;识别领域边界和不变量;设计适合委派的任务;构造能够揭示错误的评测;理解安全、数据与运行后果;在模型给出流畅答案时保持反证意识。阅读和审阅的重要性可能超过亲手输入每一行代码。
架构师也不能退化为写规则的人。架构是一组持续被代码、指标和事故检验的决策。真正的架构工作需要进入价值流:观察 Agent 在哪里误解系统,哪些规则经常被绕过,哪些边界制造不必要协调,再据此简化系统。维护 AI 行为边界,与维护软件边界是同一件事。
责任尤其不能外包。Agent 可以提出迁移方案,批准停机窗口的人仍需理解风险;Agent 可以生成权限策略,签署合规责任的人仍需知道谁能访问数据。组织必须防止“模型建议”成为无人负责的被动语态。每一个不可逆决定,都应能回答:谁授权、依据什么、如何监控、如何撤销。

图 6 · 人的工作重心迁移 生成自动化提高后,Typing 仍然存在,但人类时间更多流向 Reviewing、Framing、Governing 与 Learning。变化的不是角色被逐层删除,而是判断、治理与反馈学习获得更高权重。
第四部分 · 面向组织的工程路线
19从个人提效到组织能力:一条可落地的路径
组织采用 Coding Agent,最常见的错误是先购买席位,再等待生产率自然出现。个人可以在没有治理的情况下获得局部收益,组织规模化却需要先建立可吸收能力。下面的路径并非成熟度认证,而是一种降低风险的实施顺序。
阶段一:选择边界清楚、可验证的任务
从测试补充、文档同步、依赖升级、静态分析修复、内部脚手架等任务开始。每类任务必须有明确验收、稳定构建和回滚方式。记录基线时间与返工,不只收集主观满意度。高风险生产操作、关键权限与不可逆数据迁移暂不自治。
阶段二:修复知识入口与工程反馈
为仓库建立一页式系统地图:如何构建、测试、运行,主要模块和所有权,关键约束与禁止事项。清理失效文档,补上高价值测试,缩短 CI 时间。Agent 不是绕过工程健康的捷径;脆弱测试和缓慢反馈会直接限制它的有效循环次数。
阶段三:把架构规则机器化
选择最昂贵的三到五类偏差,例如跨层依赖、越权数据访问、API 不兼容、缺少迁移或敏感信息泄漏,把它们变为静态规则、契约测试或策略门禁。规则数量宁少勿滥,并为例外提供正式流程。
阶段四:建立风险分级委派
按可逆性、数据敏感性、爆炸半径和用户影响分级。低风险变更可以自动生成并自动验证,中风险需要指定评审,高风险只允许 Agent 调研和提出方案。所有级别都保留轨迹与产物来源;权限随任务临时授予,而非永久开放。
阶段五:再引入多 Agent 与长任务
只有当单 Agent 流程的失败模式已被理解,才通过 Manager 或 handoff 引入专业分工。为交接定义结构化包:目标、当前状态、证据、修改范围、未决风险与下一步。限制在制品,给长任务设置预算、检查点和停止条件。
阶段六:用事故和评测更新知识
把每次误生成、漏检、错误工具调用和人工接管转化为评测用例或更清晰的约束。定期删除无效规则和旧 Memory。成熟组织的优势不是从不出错,而是每次错误都让控制面更精确,而不是只让提示词更长。
| 层面 | 上线前必须回答 | 最小证据 |
|---|---|---|
| 目标 | 任务的完成和不完成分别是什么 | 可执行验收条件 |
| 上下文 | 事实来自哪里,冲突以谁为准 | 来源、版本、时间戳 |
| 工具 | Agent 可以读写什么,能否产生外部副作用 | 权限清单与沙箱策略 |
| 验证 | 谁证明局部与系统行为都正确 | 测试、评测、扫描与人工审阅 |
| 运行 | 超时、循环、部分失败如何处理 | 预算、重试、停止与补偿策略 |
| 责任 | 谁批准不可逆动作,谁接管异常 | 审批人与升级路径 |
| 学习 | 失败如何回流到知识和评测 | 复盘、用例和规则版本记录 |
20软件工程下一站:管理可生成系统
软件工程的下一站,不是“人人不再写代码”,而是越来越多系统同时包含确定性软件、概率性模型和能够采取行动的 Agent。它们的边界会比传统应用更动态:同一目标可能产生不同路径,工具和数据实时变化,长期 Memory 又把过去带入现在。工程的任务从管理静态制品,扩展为管理可生成行为。
第一项变化是规格重新成为一等资产。但这不是回到瀑布式大文档,而是建立可演进、可测试的意图:场景、契约、不变量、策略和评测。规格与实现之间的反馈会更短,二者甚至可以互相生成,但人必须保留对语义的裁决。
第二项变化是软件供应链扩展为知识供应链。组织不仅要追踪依赖包来自哪里,还要追踪 Agent 使用了哪些模型、指令、工具、知识源与评测版本。错误可能不在代码提交中,而在一次过期检索、一条被污染的 Memory 或一次权限配置变更中。
第三项变化是架构从结构设计扩展到行为治理。过去的图主要回答组件如何连接;未来还要回答谁可以代表谁行动、哪类决定必须征求批准、系统如何解释自己的证据、何时必须停止自治。这会让安全、合规、SRE、产品和架构更早汇合。
第四项变化是源代码不再是唯一的人机边界。自然语言、Schema、Policy、Skill、评测集与操作轨迹共同定义系统。工程团队需要像审查代码一样审查这些对象:版本化、测试、评审、发布和回滚。Prompt Review、Skill Review、Memory Review 不是 Code Review 的替代,而是新的审查面。
第五项变化是竞争优势来自反馈系统,而非某个模型。基础模型会更新,工具会趋同,真正难复制的是组织如何把领域知识编码为边界,把真实失败转为评测,把运行证据转为改进,再让 Agent 在这些约束内加速。这个闭环越快,AI 越像杠杆;闭环越弱,AI 越像复杂性放大器。

图 7 · 真正的软件工程控制链 从 Problem 到 Learning 的主链跨越控制面、执行面和证据学习面;生产运行产生的 Evidence 持续校准 Intent、更新 Knowledge 并扩充评测,使软件工程成为闭环学习系统,而非单向代码生成流水线。
结语:Brooks 没有说错,只是管理对象变了
1975 年,软件工程的显性问题是如何组织程序员完成前所未有的大系统;2026 年,问题扩展为如何组织人、模型、工具、知识与自动化共同演进系统。过去我们审查提交,未来还要审查 Agent 的上下文与行动轨迹;过去我们管理开发者之间的沟通,未来还要管理 Agent 之间的交接;过去架构约束主要靠人记住,未来它必须同时被人理解、被机器执行。
不变的是:软件仍然是对现实问题的模型,任何模型都需要取舍;复杂系统仍然需要概念完整性;沟通仍然消耗时间;新增参与者仍然增加协调;快速产出仍然不能替代正确判断;责任仍然必须落在人和组织上。
变化的是:代码不再是最稀缺的生产要素,知识与验证成为新的瓶颈;原型和候选方案变得便宜,选择与长期拥有变得更重要;架构师的影响力可以通过 Agent 被放大,架构错误也可以以同样速度扩散。
所以,《人月神话》在 AI 时代最大的启示,不是劝我们怀疑新工具,而是教我们把新工具放回系统。AI 可以让一支好团队更快验证、更快学习、更快交付;也可以让一个边界混乱的组织更快堆积难以解释的代码。决定两者差异的,从来不是生成速度本身,而是我们是否拥有清晰的意图、完整的概念、可靠的反馈和敢于承担后果的人。
当代码变得廉价,判断就变得昂贵;当智能体变得普遍,软件工程的核心将是设计它们必须服从的现实。
参考文献与延伸阅读
英文书名与论文名保留原文。产品与研究资料以本文资料更新时间为界;链接均指向作者、出版机构、研究团队或官方项目页面。
- Brooks, Frederick P. Jr. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1975; Anniversary Edition, 1995.
- Brooks, Frederick P. Jr. “No Silver Bullet—Essence and Accidents of Software Engineering.” Computer, 20(4), 1987.
- IBM. “The IBM System/360.” IBM History.
- Parnas, David L. “On the Criteria To Be Used in Decomposing Systems into Modules.” Communications of the ACM, 1972.
- Conway, Melvin E. “How Do Committees Invent?” Datamation, 1968.
- Dijkstra, Edsger W. “The Humble Programmer.” ACM Turing Lecture, 1972.
- Royce, Winston W. “Managing the Development of Large Software Systems.” Proceedings of IEEE WESCON, 1970.
- Boehm, Barry W. “A Spiral Model of Software Development and Enhancement.” Computer, 1988.
- Gamma, Erich, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
- Beck, Kent, et al. “Manifesto for Agile Software Development.” 2001.
- Fowler, Martin. “Continuous Integration.” 2006.
- Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2003.
- Humble, Jez, and David Farley. Continuous Delivery. Addison-Wesley, 2010.
- Beyer, Betsy, et al., eds. “Site Reliability Engineering.” O’Reilly / Google, 2016.
- Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate. IT Revolution, 2018.
- Nygard, Michael. “Documenting Architecture Decisions.” 2011.
- Brown, Simon. “The C4 Model for Visualising Software Architecture.”
- Ford, Neal, Rebecca Parsons, and Patrick Kua. Building Evolutionary Architectures. O’Reilly, 2017.
- Skelton, Matthew, and Manuel Pais. Team Topologies. IT Revolution, 2019.
- The Open Group. “TOGAF Standard: Architecture Repository.”
- Forsgren, Nicole, et al. “The SPACE of Developer Productivity: There’s More to It Than You Think.” ACM Queue, 2021.
- Jimenez, Carlos E., et al. “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” 2023.
- NIST. “AI Risk Management Framework.” 2023.
- OpenAI. “Introducing Codex.” May 2025.
- OpenAI. “Introducing the Codex App.” February 2026.
- OpenAI. “A Practical Guide to Building Agents.”
- OpenAI. “OpenAI Agents SDK Documentation”; see also Tracing.
- Anthropic. “Introducing the Model Context Protocol.” November 2024.
- Google Developers Blog. “Announcing the Agent2Agent Protocol.” April 2025.
- Anthropic. “Building Effective Agents.” December 2024.
- DORA / Google Cloud. “2025 State of AI-assisted Software Development Report.” 2025.
- Becker, Joel, et al. “Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity.” METR, 2025.
- Anthropic. “Claude Code: Best Practices for Agentic Coding.” 2025.
- Fowler, Martin. “The New Nature of Abstraction in Software Development.” 2025.
- Thoughtworks. “Technology Radar.” Continuous series.
- Allspaw, John, and Paul Hammond. “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr.” Velocity, 2009.