乐于分享
好东西不私藏

软件教父Martin Fowler最新长文程序员构建AI-Agent的5条铁律

软件教父Martin Fowler最新长文程序员构建AI-Agent的5条铁律

6月21日,软件工程界教父级人物 Martin Fowler 发了一篇长文。

《Building reliable agentic AI systems》——构建可靠的 agentic AI 系统。

112 分,23 条评论,HN 首页热帖。

我读完第一遍,合上电脑,想了一会儿。

写的不是科普,是写给工程师的"AI Agent 工程化指南"。


Fowler 这个人,写过的书包括《重构》《企业应用架构模式》《分析模式》,基本是软件工程领域的"参考书鼻祖"。

他写的不是技术教程,是思考框架

这篇文章的核心不是"怎么用 AI Agent",是"怎么让 AI Agent 在生产环境里不出事"。

我把它翻译成中文工程师能直接用的 5 条铁律——


铁律 1:Agent 是实习生,不是魔法

Fowler 开篇就讲了一个比喻:

"把 Agent 当成新来的实习生。它有热情,但判断力有限,需要被引导、被监督、被审查。"

这话翻译成工程语言就是:

Agent 不是一个"能完成任务的工具",是一个"需要被工程化管理的执行者"。

它能干活,但它没有全局视野。

它会出错,而且错得很有自信。

你不能给它"目标"就完事了,你得给它"流程"——每一步可中断、可回滚、可审计。


铁律 2:三大支柱——护栏、评估、降级

Fowler 把 Agent 的"可靠性"拆成三大支柱:

支柱 1:分层护栏(Guardrails)

不是"一个 if 拒绝",是多层级防御:

  • 输入层:prompt injection 检测
  • 工具调用层:权限白名单
  • 输出层:敏感信息过滤
  • 行为层:连续异常自动熔断

光靠 prompt 里写"你不能做 XX"是不够的,得在系统架构上卡死。

支柱 2:评估基础设施

传统软件:写单元测试 → 跑测试 → 上线。

Agent 系统:你没法写单元测试,因为输出非确定性。

你需要一个持续的 benchmark pipeline——固定测试集 + 关键场景 + 失败回滚机制。

不是"上线后看用户反馈",是"上线前就有一堆红灯在等着你"。

支柱 3:优雅降级

Fowler 讲了一个很反常识的观点:

"Agent 失败时,系统的正确反应不是崩溃,是降级。"

AI 算错了,不要整个流程挂掉。

降级到"人工审核",降级到"用上一版本的 cache 结果",降级到"明确告诉用户:这事 AI 搞不定,请人工处理"。

降级不是认输,是工程化的"安全网"。


铁律 3:让 Agent 决定"何时停",是危险的设计

Fowler 直接点名了一个常见反模式:

"很多团队让 Agent 自己决定'任务什么时候算完成'。这是灾难的开始。"

Agent 的"完成判断"是不可信的。

你必须从外部定义停止条件——token 耗尽、时间超限、连续 3 次循环、用户主动中断。

Agent 永远不应该有"我自己觉得搞定了"的权力。

这是程序员的本分——给 AI 划边界。


铁律 4:工程师从"写代码"转向"写约束+做评审"

这部分是我看完最扎心的。

Fowler 写:

"随着 Agent 接管越来越多'写代码'的工作,工程师的核心职责会转向'定义约束'和'评审产出'。"

写约束——比"写代码"更难。

你要在系统级别表达"这个不能做""这个必须做""这个做完要停"。

做评审——比"自己写"更累。

Agent 1 小时写的代码,你 10 分钟要判断"对不对""能不能上线""有没有安全风险"。

这要求工程师的能力不是降低,是升级。


铁律 5:警惕"Agent 编排"的组织陷阱

最后一条,讲给团队 leader 听。

Fowler 警告:

"如果你的组织只是'用 Agent 替代人手',你不会变快,你会变乱。"

正确的方式是重塑工作流——

不是"原来 3 个人的活,现在 1 个人 + Agent 干"。

是"原来 3 步流程,现在重新设计成 Agent 主导 + 1 个人 review"。

人没减少,但单位时间产出翻倍。

组织没变快,但流程变清晰了。


这篇文章对中文工程师的真正价值

Fowler 的英文长文,讲的是普适工程原则。

对中文工程师,我翻译成三句话:

  1. 别再"试 Agent 能做什么"了,开始"工程化 Agent 的失败模式"。
  2. 写代码还是核心,但写"护栏"和"评审"会变成新核心。
  3. 不要把 Agent 当魔法,把它当实习生——能给活,但得有人看着。

一个推荐书单

如果你想继续深入,Fowler 这篇文章的 Reference 里有几本必读:

  • 《Designing Data-Intensive Applications》——数据流的护栏怎么设计
  • 《Site Reliability Engineering》——SRE 思维怎么用到 Agent
  • 《Building Secure & Reliable Systems》——安全和可靠性的硬功夫

这三本,中文版都有,别再说没时间读了。


回见。