乐于分享
好东西不私藏

AI Agent 入门第十课:走向生产环境——从原型到上线,有哪些你想不到的坑

AI Agent 入门第十课:走向生产环境——从原型到上线,有哪些你想不到的坑

我曾经以为把 Agent 跑起来就算上线了,直到第一个真实用户来了……

本地测试跑得溜溜的,换一个真实用户,立刻给你表演各种崩法——超时、乱答、成本飞涨、报错找不到原因。那一刻你才发现,原型和生产之间,不是一步,是一道沟,而且还挺深的。


原型和生产,差的不是一点点

先直观感受一下这条鸿沟有多宽:

维度原型阶段生产环境
用户规模就你自己测成千上万并发
错误处理报错了看看日志错误难复现,上下文依赖
成本控制随便跑Token/API 费用飞涨
可见性本地看输出完全黑盒,靠猜
性能要求跑得出来就行延迟、准确性都得过关

说白了,原型是你一个人在自嗨,生产环境是要对真实用户负责的。用户不管你背后用的是什么模型、什么框架,他们只在乎「这东西好不好用」。


你看不见,才是最大的麻烦——可观测性三支柱

上生产最怕的不是出问题,是出了问题你根本不知道哪里出了问题。这就是「可观测性」要解决的事。

它有三个核心支柱:日志、追踪、指标。缺哪一个,你的 Agent 基本就是在黑暗里裸奔。

日志(Logging)

没有日志的情况是这样的:用户投诉 Agent 给了个明显错误的答案,你打开系统一看——啥记录都没有。不知道它当时调用了哪些工具,不知道走了哪条推理路径,不知道哪一步拐歪了。就像飞机出事了,找不到黑匣子,只能猜。

日志要记的不是"程序跑了",是"Agent 在这一刻在干什么、用什么信息做了什么决定"。

追踪(Tracing)

没有追踪的情况:一个调了好几个工具的 Agent,某天延迟突然从 2 秒飙到 20 秒。是模型推理变慢了?是某个工具 API 超时了?是网络抖了?你完全不知道。

开启追踪(比如 Azure AI Tracing)之后,每一步的耗时都清清楚楚——第一步调了搜索工具,0.3 秒;第二步喂给模型,18 秒。哦,问题在模型这里。马上锁定,不用猜。

指标(Metrics)

没有指标的情况:你以为 Agent 一直在正常运行,其实成功率已经悄悄从 95% 跌到 60% 了。等用户开始批量投诉,黄花菜都凉了。

指标是你的体检报告,得定时看,不能等出事了才想起来查。


怎么知道 Agent 干得好不好——评估框架

可观测性告诉你「发生了什么」,评估框架告诉你「干得好不好」。

评估分两个阶段:

离线评估——上线之前,准备一批测试案例,用 Azure AI Evaluation SDK 跑一遍,看质量达不达标。就像考试前做模拟题。 在线评估——上线之后,A/B 测试不同版本,看用户的真实反应(点赞、踩、留存)。

评估时有 5 个指标值得重点关注:

指标大白话含义
Groundedness回答有没有乱编?是不是基于真实信息说的
Relevance答的是不是问的那个问题?
Coherence说的话是不是连贯,读起来是不是像个正常人说的
Fluency语言是否流畅,有没有奇怪的断句或语法错误
Task Completion用户要做的事情,做成了没有

这些指标不是让你背的,是让你上线前有个检查清单用的。每一项都对应一类真实问题,提前对照一遍,能省你不少事后救火的力气。


生产环境最常见的五个坑

理论讲完了,来点实的。我研究了一圈,生产环境的坑归来归去就那几类,挑五个最常踩的说一说。

问题1:Agent 卡住不动

用户等了 30 秒,啥反应都没有,以为系统挂了,直接关掉走人。实际上可能是工具调用超时了,也可能 Agent 进了死循环,一直在"思考"出不来。

解法直接:设 timeout + max_iterations。超过时间或者超过推理步数,强制返回一个"我搞不定",比让用户傻等强多了。

问题2:输出质量突然下降

Agent 开始答非所问,或者明明聊了半天,突然"忘记"了你说过什么。这不是模型变笨了,是上下文窗口撑不住了——早期的对话被截断,Agent 真的失忆了。

解法:压缩历史记录,把关键信息做成摘要放进上下文,别把每一句原话都塞进去。

问题3:成本爆炸

月底看账单,Token 消耗比预期多出 5 倍。往往是因为每次调用都把完整对话历史带上去了,重复内容大量浪费。

解法:加缓存,同样的查询直接命中缓存不重复调用;非关键任务用更小的模型来跑,没必要每次都上最贵的。

问题4:幻觉越来越多

Agent 开始自信地说错误的事情,用户投诉"你在乱编"。根源通常是 RAG 检索回来的内容质量太差,Agent 找不到可靠信息就开始发挥想象力。

解法:改进检索质量,加 Grounding 验证,每个回答都要能追溯到信息来源,不能空口说白话。

问题5:用户投诉突然变多

技术指标看起来一切正常,但用户越来越不满意。这说明你监控的指标跟用户真正在意的东西对不上。你盯着延迟,用户其实在意准确性;你盯着成功率,用户其实在意回答有没有用。

解法:完善日志覆盖,主动收集用户反馈——哪怕只是加个点赞/踩按钮也行。


3 行代码开启全链路追踪

说了这么多,追踪怎么开?其实挺简单的,Azure AI Tracing 就这几行:

`python

from azure.ai.projects import AIProjectClient

from azure.identity import DefaultAzureCredential

# 启用追踪——之后所有 Agent 调用都会自动记录到 Azure Monitor

project_client = AIProjectClient.from_connection_string(...)

project_client.telemetry.enable()

`

就这样。之后你的 Agent 每次执行,完整调用链路、每一步耗时、输入输出,全都自动记录到 Azure Monitor。出了问题,直接查记录,不用靠猜,也不用在日志里大海捞针。

不开追踪就是盲飞。开了,至少你知道自己在哪儿。


✅ 上线前必须确认的10件事

走到这里,给你一张清单,上线前对照着过一遍:

  • ✅ 所有工具调用都设置了 timeout 和重试机制
  • ✅ 开启了 Tracing,能看到完整执行链路
  • ✅ 设置了 Logging,关键动作有记录
  • ✅ 核心指标有监控告警(成功率、延迟 P99)
  • ✅ 上下文窗口有压缩策略,不会因超长而截断
  • ✅ 用离线评估集测试过,5个关键指标都达标
  • ✅ 设置了 max_iterations,防止死循环
  • ✅ 有成本控制机制(缓存 + 模型降级)
  • ✅ RAG 检索质量经过验证,有 Grounding 机制
  • ✅ 有用户反馈收集渠道(哪怕只是个点赞/踩按钮)

10条都打钩了,可以上线。打钩不到 8 条,再等等。


💡 留给你的思考题

  • 可观测性和评估,你觉得哪个更重要?如果资源有限,优先做哪个?
  • 评估指标设计得好不好,直接决定你能发现什么问题。你会怎么设计一套符合你自己场景的指标?
  • 生产环境的很多问题,其实在原型阶段就能预防。你觉得哪些「原型好习惯」能减少上线后的坑?

第11课预告:Agent 协议三巨头——MCP、A2A、NLWeb,它们正在定义 AI 的互联网,期待的扣1。

AI 的世界每天都比昨天更陌生一点,但也更有意思一点。我们明天见。