乐于分享
好东西不私藏

从 Demo 到 Production,AI 智能体最容易死在哪一步?

从 Demo 到 Production,AI 智能体最容易死在哪一步?

见过不少人做完智能体 demo,信心满满地推上线,然后两周后开始疯狂打补丁。

不是模型不够强。是他们根本没意识到,demo 和 production 是两个完全不同的工程问题。


一、Demo 为什么总是成功

Demo 天生有四个生产环境不具备的优势:

  • 输入是挑过的
  • 路径是预设的
  • 工具处于理想状态
  • 边界情况根本不会被触发

所以 demo 验证的不是系统能力,而是在一组精心控制的前提下,这套系统能不能走通一次

这有价值。但它很容易制造一种错觉:只要把当前能力再打磨一下,就能自然过渡到生产。

这个判断,是从 demo 到 production 最常见的认知陷阱。


二、Production 真正在考什么

Production(生产环境):智能体面向真实用户运行的线上状态。区别于 demo 的核心不是"规模大小",而是"是否暴露在不可控的真实输入和异常下"。

Production 难,不是系统突然变笨了,而是它终于要面对真实世界:

  • 用户输入不规整,目标描述不完整
  • 工具和外部接口会超时、会失败
  • 业务规则有例外和冲突
  • 时延和成本变成硬约束
  • 错误不是"答得不太对",而是可能真的带来后果

Demo 时你在验证能力上限。Production 时你必须面对系统下限

真正被放大的,不是"它最强时有多强",而是"它最差时会怎么崩"。


三、失控通常从哪里开始

场景边界没定义

我第一次把智能体推上生产时,最先崩的不是技术,而是这个:我们根本没想清楚它不该做什么。

Demo 阶段,大家更愿意展示"会做什么",没人认真定义"做到哪里该停""哪些情况该转人工""哪些场景压根不在支持范围内"。

结果系统上线后,用户输入只要稍微偏一点,它就开始:

  • 自己脑补前提
  • 试图回答不该回答的问题
  • 在证据不足时依然坚持给出结论

当时我们把问题归因到"模型不稳",改了好几版 prompt,没用。后来才意识到——场景边界根本没定义清楚,prompt 再好也补不上这个洞。

Production 不是让系统显得万能,而是让系统知道哪里是它该工作的区域,哪里不是。


异常处理没成体系

Demo 只演示顺利路径。用户输入合理、工具调用成功、外部接口稳定——这些前提一旦成立,大部分智能体都能表现得不错。

但 production 的特点是:异常不是偶尔发生,而是持续发生。

工具返回超时、检索结果为空、中间状态互相矛盾、权限不足导致某步操作无法完成……

如果系统没有设计异常处理路径,表现通常有两种:

  • 直接崩掉
  • 不崩,但带着错误继续往下走

后者更危险。 它让问题不容易被察觉,直到最终结果完全失真才暴露出来。


工具链一旦不稳,连续失真

工具链:智能体完成任务时依次调用的一系列外部工具或 API,比如先查数据库、再调计算服务、再写回结果。

智能体通常不是只调用一次工具,而是多步依赖。前一步工具结果不稳定,很容易传导到后续步骤:

第一步信息查错 → 第二步基于错误信息规划 → 第三步调用了不该调用的工具 → 最终输出看起来完整,但整个链路已经偏得很远

这就是为什么工具链稳定性在生产里会被放大成系统问题,而不是单点问题。

没有返回校验和失败恢复机制,工具一旦出问题,智能体很难自己停在正确位置。


状态脆弱,错误被继承

多轮执行带来的代价,是状态管理变得极其关键

状态管理:智能体在多轮执行过程中,如何保存、更新和清除中间结论、上下文信息的机制。

只要系统会记忆上下文、保留中间结论、沿着多步链路推进,就必须回答一个现实问题:当前保存的那些"状态",哪些是真实事实,哪些是临时假设,哪些已经过期?

Demo 里这个问题不明显,因为任务短、状态简单、流程受控。但任务一长、轮次一多,脆弱的状态结构就会迅速失控。

很多智能体不是死在"不会规划",而是死在"前面的错误没被隔离,后面还在引用它"。


出了问题只能靠猜

这一点几乎是 production 和 demo 最本质的区别。

Demo 可以容忍过程不透明,只要最终结果像样就行。但 production 一旦出问题,你必须能回答:

  • 它为什么这样规划?
  • 从哪一步开始偏的?
  • 这是偶发问题还是系统性问题?

如果没有日志、链路追踪、回放能力,团队就只能靠猜。

而 production 最大的成本之一,就是"猜问题"。 每次猜错,都会拖慢修复节奏,降低团队对系统的信心。


四、根本原因:思维没切换

把这些问题合起来看,会发现一个规律:大部分智能体不是死在某个具体技术点上,而是死在还在用 demo 思维设计一个本该进入 production 的系统。

维度
Demo 思维
Production 思维
关注点
亮点展示、能力上限
边界定义、系统下限
对异常的态度
不触发
必须处理
对工具失败的预期
不会失败
迟早会失败
对状态错误的处理
没有
隔离 + 回退
出问题后的手段
靠猜
日志 + 回放

如果这套思维没有切换,系统即便在某些样本上表现很好,也很难进入长期可维护的生产状态。


五、一个更现实的迁移路径

不建议把路径设计成"demo 成功 → 直接全面上线 → 完全自治"。这条路跨过了太多还没验证的东西。

更现实的路径:

阶段
目标
关键信号
Demo
验证核心能力
在理想输入下能走通
内部试用
暴露真实输入问题
找到第一批边界情况
半自动辅助
系统给建议,不直接执行
人工确认率开始下降
人机协同
关键节点保留人工确认
异常处理覆盖了主要场景
有限自动化
只在受控场景下自动执行
监控和回放能力上线
生产级自治
在明确边界内稳定运行
错误自愈率可量化

这条路看起来慢,但它的价值在于:你能逐步把 production 需要的能力补上,而不是一次性把所有风险压到线上。


六、这篇文章没讲到的

说清楚了:几类死法、思维切换、迁移路径。

没讲清楚的:具体技术怎么做——比如状态管理用什么方案、工具链怎么加熔断、日志链路怎么设计。这些每个单独展开都是一篇文章,放这里只会变成堆砌。

另外,这篇的视角是"从 demo 往 production 推"的团队。如果你是从零开始设计生产级系统,顺序不同,很多判断也不一样。


从 demo 到 production,最容易死的不是能力,而是用"证明它能工作"的方式,去应对一个必须"保证它持续可靠工作"的系统。

这是两种完全不同的工程问题。