跳到正文

人月神话,第 7-12 章:协调是产品

对“神话人月”的诱人现代解读是:“布鲁克斯警告我们,迟加人会使项目变慢。”确实如此,但它太小了。

第 7-12 章实际上是关于看起来不像编码的工程部分:共享语言、估计、资源预算、文档控制、原型规则和通用工具。这些部分听起来很管理,直到它们消失为止。然后它们就变成了项目。

这就是为什么这些章节对于智能体系统仍然有用的原因。coding agent 可以比人类更快地进行本地更改。它不能自动使整个组织变得更加清晰。

Babel 失败

布鲁克斯将巴别塔视为工程失败:不是缺乏雄心、材料、劳动力或时间,而是沟通和组织的失败。

智能体版本很容易想象:

  • 规划者要求更改 API;
  • 编码器将字段从 source 重命名为 uri
  • 测试智能体仅检查本地模块;
  • 文件智能体继续撰写旧合同;
  • 即使每个智能体都报告成功,下游呼叫者仍会破产。

问题不在于智能体弱。问题在于系统没有共享合约,没有变更传播路径,也没有接口的所有者。

因此,智能体编排是任务分解之前的通信设计。自然语言消息很有用,但还不够。多智能体系统需要模式、类型化工具契约、接口版本、跟踪链接、变更日志和所有权。

估计的不是代码生成时间

布鲁克斯反对根据小程序经验来估计大型系统。编码只是工作的一部分。规划、文档、测试、集成、训练和沟通消耗了其余部分。

当我们通过询问“模型需要多长时间来编写补丁?”来估计智能体工作时,也会出现同样的错误。

对于生产变化,实际单位更大:

accepted diff
 + passing evals
 + review cost
 + migration risk
 + rollback path
 + security boundary
 + monitoring and debugging cost

智能体可以减少本地打字和搜索成本,但系统仍然支付集成费用。跨服务、跨数据或跨权限表面越大,“每分钟生成的行数”就越没用。

五磅重的袋子现在是上下文

第 9 章讨论空间预算。重点不是对小型机器的怀旧。关键是每一种稀缺资源都需要系统级预算。

在智能体产品中,五磅重的麻袋不再只是记忆。它也是:

预算常见故障
上下文窗口每个模块都添加“一点点”更多文本
token成本自检、重试、痕迹悄然倍增
延迟跨智能体累积工具调用
注意用户收到太多解释而无法采取行动
保养提示、工具和模式各自漂移

危险版本并不是一个明显浪费的模块。它是五个合理的模块,每个模块添加一个合理的东西,直到工作流程变得缓慢、嘈杂且难以重现。

这样压缩、缓存、数据表示和调用边界架构决策成为可能。即时调整无法修复没有资源控制平面的系统。

作为控制面的文档

布鲁克斯的“文献假设”听起来很枯燥,除非你将其重新解释为控制问题。一个项目有太多的事实,每个人都难以记住。文档的作用是做出少量决策,足够明确以供检查、更新和共享。

对于智能体平台来说,关键文档通常不是很长的 wiki,而是短、硬、可检查的产物:

  • 产品目标;
  • 建筑合同;
  • 工具注册表;
  • 评估计划;
  • 发布清单;
  • 成本预算;
  • 所有者地图;
  • 事件和重播政策。

这些文件应该对人类和智能体都有用。这意味着它们应该是结构化的、版本化的、可搜索的,并尽可能与测试或模式相关联。

文档不是旁路。这就是系统记住聊天记录忘记的内容的方式。

故意扔掉一个第 11 章的著名教训是,第一个系统通常应该被丢弃。危险在于不编写原型。危险在于假装原型是产品。

这对于智能体工作流程尤其重要。第一个版本通常将提示、工具调用、内存模式、重试和评估逻辑硬编码到一个循环中。几周后,团队了解到:

  • 计划者过度分配任务;
  • 猎犬发出噪音;
  • 测试智能体错过了真正的故障;
  • 内存污染下一次运行;
  • 痕迹太弱,无法进行调试。

到那时,修补可能比围绕所学到的内容重写循环更昂贵。

健康的做法是尽早标记一次性部分:提示格式、内存模式、跟踪格式、评估集、工具协议和编排策略。原型应该产生知识,而不是永久的债务。

利器是共享工具

布鲁克斯还反对每个程序员都维护一个私有工具箱。在大型项目中,私有工具会增加摩擦,因为团队失去了可比性。

智能体版更加犀利。如果每个工程师都使用不同的提示库、沙箱、测试命令、本地内存和重播约定,则智能体生成的差异将不再具有可比性。没有共同的“完成”概念。

一个严肃的智能体工具链需要通用的基础设施:

sandbox
test runner
dependency scanner
trace viewer
eval dashboard
fixture library
permission model
replay mechanism
rollback path

工具匠变得更加重要,而不是更少。工具匠正在定义智能体可以安全地做什么、如何重现故障以及哪些证据算作进展。

还剩下什么

书中标注日期的部分是机器价格、职位名称和一些工具形状。持久的部分是系统课程:

programmer coordination -> agent orchestration
manual review -> eval, CI, trace
architecture handbook -> executable contract
late manpower -> late agent swarm
space budget -> token, latency, context budget
pilot system -> throwaway agent prototype
tool room -> shared sandbox, replay, eval harness

这些章节并没有说现代球队应该复制布鲁克斯的组织。他们说了一些更基本的话:实施速度不是交付速度。

智能体编码使本地实施更便宜。它并没有消除对沟通、估算、预算、文档、原型和工具的需求。在许多情况下,它使这些约束更加明显,因为现在可以在任何人注意到系统没有共享形状之前完成更多工作。