一名工程师在由软件系统、知识结构与 AI 工具组成的复杂环境中进行设计

Software Engineering Essay · 2026

重读《人月神话》:
AI 时代的软件工程再思考

从 Brooks 到 Agent Engineering,软件工程五十年的变化与不变

34 分钟阅读 发布于 2026 年 7 月 23 日

摘要

生成式 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 则需要上下文、工具权限、运行轨迹、评测和人工审批。

软件工程五十年演进横向时间轴:从 Code、Framework、Platform、Cloud、AI Coding、Agent Engineering 到 Knowledge Engineering,并区分控制层上移与执行层自动化

图 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 扩编的协调成本
成本来源 人类团队 Agent 团队 工程对策
上下文获取 培训、会议、代码阅读 检索、提示、上下文压缩 高信号项目地图与任务包
决策一致性 经验和理解差异 提示、模型和采样差异 ADR、契约、示例与不变量
写入冲突 多人修改同一模块 并行分支产生语义冲突 所有权边界与小批量合并
质量判断 评审者注意力有限 候选产出远快于验证 自动门禁加风险分级审阅
责任归属 角色与组织授权 Agent 不能承担上线责任 明确的人类批准者和回滚路径

06The Surgical Team:Agent 是数字手术队吗

Brooks 借鉴 Harlan Mills 的“外科手术式团队”:由一位首席程序员保持设计与实现的智识统一,其他成员像麻醉师、器械师和助手一样提供专业支持。它的重点不是英雄主义,而是避免把同一个核心设计平均切给许多人,再期待它自行长成一个一致系统。

Coding Agent 让这个构想获得新的现实形态。一个负责人可以让不同 Agent 分别搜索历史、编写迁移脚本、补充测试、检查安全风险、更新文档;负责人保留问题定义、方案选择和最终合并权。OpenAI 在 2025 年介绍 Codex 时,就把它描述为可在隔离云环境中并行处理软件任务、运行测试并提出待审阅变更的工程 Agent;到 2026 年,产品界面进一步转向对多个长任务 Agent 的监督。[24][25]

但“数字手术队”只有在主刀真正掌握系统时才成立。若负责人只负责分发模糊任务,没人维护整体模型,团队会退化为十支手术刀同时下刀。AI 不能填补缺席的设计权威;它只能放大现有的权威、规则与盲点。

现代版本也不应复制单一专家的所有缺陷。概念权威可以集中,证据与质疑必须分散:安全 Agent 可以挑战主方案,测试 Agent 可以生成反例,领域专家可以否决错误假设,重大决策仍通过团队评审。最好的结构不是“一个人永远正确”,而是“一条设计主线清晰,同时允许有组织的反证”。

Digital Surgical Team 架构图:人类 Tech Lead 位于概念完整性与最终责任中心,连接 Research、Implementation、Test、Security、Documentation 五类 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 提供更有说服力的错误上下文。高质量做法是:权威来源唯一;决策与变更关联;契约尽可能机器校验;示例来自真实测试;过期内容有检测与删除机制。

从 Code Repository 到 Knowledge Repository
知识层 回答的问题 推荐载体 验证方式
意图 为什么做、为谁创造价值 业务目标、场景、指标 用户反馈与结果指标
概念 系统中的词意味着什么 领域词汇、边界上下文 跨团队术语评审
决策 为何选择此方案 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 工程不是“什么都能做”,而是“知道什么不该生成”。

复杂性反弹曲线:随着 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 时代问题的对应关系
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 的运行手册,在这里汇成同一个控制面。

知识资产与代码资产还有一个根本差异:知识不能只靠“存储”产生价值。它需要出处、责任人、适用边界、刷新周期和冲突解决。向量数据库可以找回一段文字,却不能判断它是否仍然代表组织决策。知识工程的核心不是检索率,而是治理事实。

软件资产重心迁移双轴图:以可再生性为横轴、治理价值为纵轴,资产从 Source Code 依次迁移到 Framework、Platform、Knowledge、Skill、Memory 和 Architecture Repository

图 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 到 Knowledge 的五层工程对象
层次 核心问题 主要产物 典型失败
Prompt 如何表达当前任务 目标、约束、输出格式 指令含糊、验收缺失
Context 需要哪些事实 检索、项目地图、状态摘要 信息过期、冲突、噪声过多
Loop 如何观察、行动与终止 工具调用、重试、预算、停止条件 死循环、过度调用、错误累积
Agent 如何委派与承担流程 角色、权限、handoff、guardrail、trace 责任模糊、越权、不可审计
Knowledge 事实如何产生与更新 领域模型、ADR、契约、评测集、Memory 知识腐化、来源不明、旧规则固化

15多 Agent 不是免费并行,而是一种新组织设计

把 Agent 数量当成云实例数量,是最危险的类比之一。计算任务只要无共享状态就容易横向扩展,软件任务却经常围绕共享概念和共享文件。多 Agent 的价值存在于真正可分解的工作:独立模块、不同证据源、互不覆盖的验证角色,或可以通过明确契约重新组合的候选结果。

当任务高度耦合时,增加 Agent 会引入四种税。第一是分解税:人必须把问题切成可独立完成的单元。第二是上下文税:每个 Agent 都要获得足够而不矛盾的信息。第三是协调税:依赖、顺序和变更需要被调度。第四是验证税:所有局部结果最终必须在系统层面证明相容。

多 Agent 架构通常有两类基本形态。Manager 模式由一个中心 Agent 保留控制,调用专家 Agent 作为工具;handoff 模式把控制权交给新的专家。前者有利于保持主线,后者有利于长流程中的专业自治。没有一种形态普遍更好,选择取决于谁拥有最终上下文、错误是否可逆、交接是否需要用户参与。

最实用的原则仍然来自排队论和持续交付:限制在制品,缩短批量,尽早集成。与其同时启动二十个任务后在末尾处理冲突,不如维持少量高价值并行流,让每个变更持续通过构建、测试和契约门。Agent 速度越快,越需要 WIP 限制,否则验证队列会成为新的晚期项目。

多 Agent 吞吐模型:低耦合任务具有正并行收益,随着任务耦合度提高,分解税、上下文税、协调税和验证税持续增加,净边际吞吐收益穿过零收益线后转为负值

图 5 · 多 Agent 吞吐模型 净吞吐收益并不等于 Agent 数量带来的理论并行收益,还必须扣除分解、上下文、协调和验证成本。任务耦合度越高,这些税负增长越快,边际收益最终可能转负。

16架构必须从“建议”变成可执行治理

过去的架构文档主要服务于人的阅读。Agent 加入后,架构原则还必须在执行路径上发挥作用。仅写“保持模块解耦”太抽象;更有效的表达是:哪些模块可以依赖哪些模块,哪些数据只能由哪个服务写入,哪些 API 需要幂等键,哪些目录不允许自动修改,哪些变更必须由安全负责人批准。

这意味着架构需要双重表示。一层是面向人的意图:原则、模型、权衡和例外理由;另一层是面向机器的约束:类型、Schema、静态分析规则、策略即代码、测试、CI 门禁、权限清单和部署检查。前者没有后者会沦为愿望,后者没有前者会成为无人理解的禁令。

Architecture Guardian 不应只是另一个会写评论的 Agent,而应是一套分层控制。低风险规则自动执行,中风险偏差要求解释,高风险动作需要人工批准;所有例外留下时限和责任人。Agent 的工具采用最小权限,读取和写入分离,生产操作默认不可逆时停下,运行轨迹可审计,敏感上下文有明确边界。

测试在这里也需要升级为评测。确定性代码可以用输入输出断言;包含模型的系统还要评估任务成功、工具选择、事实性、安全、成本、延迟与退化。评测集应来自真实失败和关键业务场景,并持续防止“模型升级后指标更好、业务边界却悄悄变化”。

01 · 约束可定位 — 每条规则说明来源、适用目录或系统边界,不把全局口号强加给所有任务。
02 · 证据可复现 — Agent 交付的不只是补丁,还包括验证命令、输出摘要和未验证风险。
03 · 权限可收敛 — 默认只授予完成任务所需的最小工具、网络、文件和环境权限。
04 · 例外可过期 — 任何绕过门禁的决定都有责任人、原因、复审日期和自动提醒。
05 · 变更可回退 — 把回滚、补偿和数据恢复设计为完成条件,而不是事故发生后的补丁。
06 · 轨迹可审计 — 记录关键上下文、工具调用、审批和结果,同时避免无边界保存敏感内容。

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 可以生成权限策略,签署合规责任的人仍需知道谁能访问数据。组织必须防止“模型建议”成为无人负责的被动语态。每一个不可逆决定,都应能回答:谁授权、依据什么、如何监控、如何撤销。

人的工作重心迁移:随着生成自动化程度提高,人类时间从 Typing 逐步转向 Reviewing、Framing、Governing 与 Learning;五类工作持续存在,表示重心迁移而非角色替代

图 6 · 人的工作重心迁移 生成自动化提高后,Typing 仍然存在,但人类时间更多流向 Reviewing、Framing、Governing 与 Learning。变化的不是角色被逐层删除,而是判断、治理与反馈学习获得更高权重。

第四部分 · 面向组织的工程路线

19从个人提效到组织能力:一条可落地的路径

组织采用 Coding Agent,最常见的错误是先购买席位,再等待生产率自然出现。个人可以在没有治理的情况下获得局部收益,组织规模化却需要先建立可吸收能力。下面的路径并非成熟度认证,而是一种降低风险的实施顺序。

阶段一:选择边界清楚、可验证的任务

从测试补充、文档同步、依赖升级、静态分析修复、内部脚手架等任务开始。每类任务必须有明确验收、稳定构建和回滚方式。记录基线时间与返工,不只收集主观满意度。高风险生产操作、关键权限与不可逆数据迁移暂不自治。

阶段二:修复知识入口与工程反馈

为仓库建立一页式系统地图:如何构建、测试、运行,主要模块和所有权,关键约束与禁止事项。清理失效文档,补上高价值测试,缩短 CI 时间。Agent 不是绕过工程健康的捷径;脆弱测试和缓慢反馈会直接限制它的有效循环次数。

阶段三:把架构规则机器化

选择最昂贵的三到五类偏差,例如跨层依赖、越权数据访问、API 不兼容、缺少迁移或敏感信息泄漏,把它们变为静态规则、契约测试或策略门禁。规则数量宁少勿滥,并为例外提供正式流程。

阶段四:建立风险分级委派

按可逆性、数据敏感性、爆炸半径和用户影响分级。低风险变更可以自动生成并自动验证,中风险需要指定评审,高风险只允许 Agent 调研和提出方案。所有级别都保留轨迹与产物来源;权限随任务临时授予,而非永久开放。

阶段五:再引入多 Agent 与长任务

只有当单 Agent 流程的失败模式已被理解,才通过 Manager 或 handoff 引入专业分工。为交接定义结构化包:目标、当前状态、证据、修改范围、未决风险与下一步。限制在制品,给长任务设置预算、检查点和停止条件。

阶段六:用事故和评测更新知识

把每次误生成、漏检、错误工具调用和人工接管转化为评测用例或更清晰的约束。定期删除无效规则和旧 Memory。成熟组织的优势不是从不出错,而是每次错误都让控制面更精确,而不是只让提示词更长。

Agent 工程运行检查表
层面 上线前必须回答 最小证据
目标 任务的完成和不完成分别是什么 可执行验收条件
上下文 事实来自哪里,冲突以谁为准 来源、版本、时间戳
工具 Agent 可以读写什么,能否产生外部副作用 权限清单与沙箱策略
验证 谁证明局部与系统行为都正确 测试、评测、扫描与人工审阅
运行 超时、循环、部分失败如何处理 预算、重试、停止与补偿策略
责任 谁批准不可逆动作,谁接管异常 审批人与升级路径
学习 失败如何回流到知识和评测 复盘、用例和规则版本记录

20软件工程下一站:管理可生成系统

软件工程的下一站,不是“人人不再写代码”,而是越来越多系统同时包含确定性软件、概率性模型和能够采取行动的 Agent。它们的边界会比传统应用更动态:同一目标可能产生不同路径,工具和数据实时变化,长期 Memory 又把过去带入现在。工程的任务从管理静态制品,扩展为管理可生成行为。

第一项变化是规格重新成为一等资产。但这不是回到瀑布式大文档,而是建立可演进、可测试的意图:场景、契约、不变量、策略和评测。规格与实现之间的反馈会更短,二者甚至可以互相生成,但人必须保留对语义的裁决。

第二项变化是软件供应链扩展为知识供应链。组织不仅要追踪依赖包来自哪里,还要追踪 Agent 使用了哪些模型、指令、工具、知识源与评测版本。错误可能不在代码提交中,而在一次过期检索、一条被污染的 Memory 或一次权限配置变更中。

第三项变化是架构从结构设计扩展到行为治理。过去的图主要回答组件如何连接;未来还要回答谁可以代表谁行动、哪类决定必须征求批准、系统如何解释自己的证据、何时必须停止自治。这会让安全、合规、SRE、产品和架构更早汇合。

第四项变化是源代码不再是唯一的人机边界。自然语言、Schema、Policy、Skill、评测集与操作轨迹共同定义系统。工程团队需要像审查代码一样审查这些对象:版本化、测试、评审、发布和回滚。Prompt Review、Skill Review、Memory Review 不是 Code Review 的替代,而是新的审查面。

第五项变化是竞争优势来自反馈系统,而非某个模型。基础模型会更新,工具会趋同,真正难复制的是组织如何把领域知识编码为边界,把真实失败转为评测,把运行证据转为改进,再让 Agent 在这些约束内加速。这个闭环越快,AI 越像杠杆;闭环越弱,AI 越像复杂性放大器。

真正的软件工程控制链:Problem、Intent、Architecture、Knowledge、Agent、Code、Deployment、Evidence、Learning 依次连接,Evidence 反馈校准 Intent、更新 Knowledge 并扩充 Evaluation 评测

图 7 · 真正的软件工程控制链 从 Problem 到 Learning 的主链跨越控制面、执行面和证据学习面;生产运行产生的 Evidence 持续校准 Intent、更新 Knowledge 并扩充评测,使软件工程成为闭环学习系统,而非单向代码生成流水线。

结语:Brooks 没有说错,只是管理对象变了

1975 年,软件工程的显性问题是如何组织程序员完成前所未有的大系统;2026 年,问题扩展为如何组织人、模型、工具、知识与自动化共同演进系统。过去我们审查提交,未来还要审查 Agent 的上下文与行动轨迹;过去我们管理开发者之间的沟通,未来还要管理 Agent 之间的交接;过去架构约束主要靠人记住,未来它必须同时被人理解、被机器执行。

不变的是:软件仍然是对现实问题的模型,任何模型都需要取舍;复杂系统仍然需要概念完整性;沟通仍然消耗时间;新增参与者仍然增加协调;快速产出仍然不能替代正确判断;责任仍然必须落在人和组织上。

变化的是:代码不再是最稀缺的生产要素,知识与验证成为新的瓶颈;原型和候选方案变得便宜,选择与长期拥有变得更重要;架构师的影响力可以通过 Agent 被放大,架构错误也可以以同样速度扩散。

所以,《人月神话》在 AI 时代最大的启示,不是劝我们怀疑新工具,而是教我们把新工具放回系统。AI 可以让一支好团队更快验证、更快学习、更快交付;也可以让一个边界混乱的组织更快堆积难以解释的代码。决定两者差异的,从来不是生成速度本身,而是我们是否拥有清晰的意图、完整的概念、可靠的反馈和敢于承担后果的人。

当代码变得廉价,判断就变得昂贵;当智能体变得普遍,软件工程的核心将是设计它们必须服从的现实。

参考文献与延伸阅读

英文书名与论文名保留原文。产品与研究资料以本文资料更新时间为界;链接均指向作者、出版机构、研究团队或官方项目页面。

  1. Brooks, Frederick P. Jr. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1975; Anniversary Edition, 1995.
  2. Brooks, Frederick P. Jr. “No Silver Bullet—Essence and Accidents of Software Engineering.” Computer, 20(4), 1987.
  3. IBM. “The IBM System/360.” IBM History.
  4. Parnas, David L. “On the Criteria To Be Used in Decomposing Systems into Modules.” Communications of the ACM, 1972.
  5. Conway, Melvin E. “How Do Committees Invent?Datamation, 1968.
  6. Dijkstra, Edsger W. “The Humble Programmer.” ACM Turing Lecture, 1972.
  7. Royce, Winston W. “Managing the Development of Large Software Systems.” Proceedings of IEEE WESCON, 1970.
  8. Boehm, Barry W. “A Spiral Model of Software Development and Enhancement.” Computer, 1988.
  9. Gamma, Erich, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
  10. Beck, Kent, et al. “Manifesto for Agile Software Development.” 2001.
  11. Fowler, Martin. “Continuous Integration.” 2006.
  12. Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2003.
  13. Humble, Jez, and David Farley. Continuous Delivery. Addison-Wesley, 2010.
  14. Beyer, Betsy, et al., eds. “Site Reliability Engineering.” O’Reilly / Google, 2016.
  15. Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate. IT Revolution, 2018.
  16. Nygard, Michael. “Documenting Architecture Decisions.” 2011.
  17. Brown, Simon. “The C4 Model for Visualising Software Architecture.”
  18. Ford, Neal, Rebecca Parsons, and Patrick Kua. Building Evolutionary Architectures. O’Reilly, 2017.
  19. Skelton, Matthew, and Manuel Pais. Team Topologies. IT Revolution, 2019.
  20. The Open Group. “TOGAF Standard: Architecture Repository.”
  21. Forsgren, Nicole, et al. “The SPACE of Developer Productivity: There’s More to It Than You Think.” ACM Queue, 2021.
  22. Jimenez, Carlos E., et al. “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” 2023.
  23. NIST. “AI Risk Management Framework.” 2023.
  24. OpenAI. “Introducing Codex.” May 2025.
  25. OpenAI. “Introducing the Codex App.” February 2026.
  26. OpenAI. “A Practical Guide to Building Agents.”
  27. OpenAI. “OpenAI Agents SDK Documentation”; see also Tracing.
  28. Anthropic. “Introducing the Model Context Protocol.” November 2024.
  29. Google Developers Blog. “Announcing the Agent2Agent Protocol.” April 2025.
  30. Anthropic. “Building Effective Agents.” December 2024.
  31. DORA / Google Cloud. “2025 State of AI-assisted Software Development Report.” 2025.
  32. Becker, Joel, et al. “Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity.” METR, 2025.
  33. Anthropic. “Claude Code: Best Practices for Agentic Coding.” 2025.
  34. Fowler, Martin. “The New Nature of Abstraction in Software Development.” 2025.
  35. Thoughtworks. “Technology Radar.” Continuous series.
  36. Allspaw, John, and Paul Hammond. “10+ Deploys Per Day: Dev and Ops Cooperation at Flickr.” Velocity, 2009.