——从 AI Agent 工作流故障定位到企业级智能系统稳定性建设
一、引言:AI Agent 进入生产环境后,最大的挑战是什么?
过去,企业部署一个 AI 应用可能只是:
用户问题 ↓ LLM ↓ 答案系统简单,出现问题也容易定位。
例如:
用户问:
“公司的报销流程是什么?”
结果错误:
检查:
- Prompt 是否正确;
- 模型是否异常;
- 知识库是否召回错误。
但是随着 AI Agent 和图编排(Graph Orchestration)的发展,企业 AI 应用变成了:
用户请求 | 意图识别 | ------------------- | | 知识检索 数据查询 | | ------------------- | Agent分析 | 内容审核 | 最终输出一次请求可能经过:
- 多个 Agent;
- 多个工具调用;
- 多个 LLM;
- 多个数据库;
- 多个外部 API。
这时候出现问题:
AI 回答错误,到底是哪一步出了问题?
可能是:
- 节点没有执行;
- 状态传递错误;
- 检索结果异常;
- Prompt 拼接错误;
- LLM 输出不可控;
- API 超时;
- 并发导致资源耗尽。
因此:
可观测性(Observability)成为企业 AI 系统生产化的关键能力。
二、什么是图执行系统中的可观测性?
简单理解:
可观测性就是:
让系统内部发生了什么,可以被看到、被分析、被追踪。
传统系统关注:
- CPU;
- 内存;
- 网络;
- QPS。
但是 AI Agent 系统还需要关注:
- 哪个节点执行?
- 花费多少时间?
- 输入是什么?
- 输出是什么?
- 使用多少 Token?
- 为什么选择这个路径?
三、为什么图编排系统更需要可观测性?
1. 执行链路复杂
普通程序:
def process(): step1() step2() step3()调用关系明确。
但是图执行:
A / \ B C \ / D实际路径可能动态变化。
一次请求:
可能:
A → B → D下一次:
A → C → D没有追踪:
无法知道真实执行路径。
2. Agent 决策具有不确定性
传统程序:
输入:
A
输出:
B
确定。
AI Agent:
输入:
A
可能:
- 调用工具1;
- 调用工具2;
- 重新规划;
- 重试。
例如:
销售 Agent:
用户: 帮我分析客户 Agent: 查询CRM ↓ 查询历史订单 ↓ 生成方案如果结果错误:
需要知道:
为什么调用这个工具?
四、图执行失败的常见问题类型
企业排查问题前,需要先分类。
问题一:节点没有执行
现象
用户请求:
超时。
日志:
START ↓ Intent Node ↓ ???后续节点没有记录。
排查方向
检查:
1. 节点条件判断
例如:
if intent=="finance": next="finance_agent"可能:
分类结果错误。
2. Edge 配置
图:
A ↓ B但是代码:
graph.add_edge("A","C")导致:
执行路径错误。
解决方案
增加:
Node Trace。
例如:
{ "node":"intent", "status":"success", "time":"120ms" }问题二:节点执行慢
现象
用户感觉:
AI 很慢。
但是:
程序没有报错。
如何定位?
查看:
节点耗时。
例如:
| 节点 | 耗时 |
|---|---|
| 意图识别 | 200ms |
| RAG检索 | 300ms |
| 数据库查询 | 500ms |
| LLM生成 | 8s |
发现:
LLM占主要时间。
优化方向
1. 减少模型调用
错误:
Node1 调用LLM ↓ Node2 调用LLM ↓ Node3 调用LLM优化:
一次规划 ↓ 多个任务执行2. 模型分层
简单任务:
小模型。
复杂推理:
大模型。
问题三:状态传递错误
这是图编排最常见的问题之一。
示例
节点A:
输出:
{ "user":"张三" }节点B:
需要:
{ "user_name":"张三" }结果:
字段不匹配。
导致:
Agent行为异常。
排查方式
记录:
每个节点:
输入状态:
{ "input":"xxx" }输出状态:
{ "result":"xxx" }比较:
哪里发生变化。
问题四:RAG召回错误
企业 AI 中:
非常常见。
用户:
最新报销规则是什么?
AI回答:
旧制度。
原因:
可能:
- 向量库存在旧版本;
- Metadata过滤失败;
- Embedding效果不好。
排查链路
检查:
Query
用户问题:
最新报销规则↓
Retriever
召回:
报销制度2023 报销制度2025↓
Context
发送给LLM:
是否包含最新版本?
问题五:LLM输出异常
例如:
要求:
返回 JSON。
结果:
好的,我来分析一下: { "name":"xxx" }前面多了一句话。
导致:
解析失败。
排查
记录:
完整 Prompt。
包括:
输入:
System Prompt + User Prompt + Retrieved Context输出:
LLM Response五、企业级图系统需要记录哪些日志?
一个完整 Trace:
应该包含:
1. 请求信息
{ "request_id":"123456", "user":"001", "time":"10:20" }2. 节点执行记录
{ "node":"retriever", "start":"10:20:01", "end":"10:20:03" }3. 模型调用信息
包括:
- 模型名称;
- Token数量;
- Prompt长度;
- Response时间。
例如:
{ "model":"GPT", "input_tokens":2000, "output_tokens":500 }4. 工具调用记录
例如:
{ "tool":"CRM_API", "status":"success", "time":"500ms" }六、如何设计企业级 AI 可观测体系?
推荐架构:
用户请求 | Graph Runtime | -------------------------------- | | | Node Trace LLM Trace Tool Trace | Observability Layer | -------------------------------- | | | Logs Metrics Traces | Monitoring Platform七、核心指标应该关注什么?
1. 性能指标
延迟
Latency:
P50 P95 P99例如:
95%的请求:
小于5秒。
2. 成功率
例如:
Graph Success Rate =成功执行次数 / 总请求3. 节点失败率
例如:
| 节点 | 失败率 |
|---|---|
| RAG | 1% |
| API调用 | 5% |
| LLM | 2% |
快速定位问题。
4. Token成本
企业非常关注。
统计:
- 每次请求Token;
- 每个Agent成本;
- 每个业务成本。
八、常用可观测工具
LangSmith
适合:
LangChain / LangGraph。
能力:
- Trace查看;
- Prompt调试;
- Agent路径分析。
OpenTelemetry
企业级标准。
支持:
- Trace;
- Metrics;
- Logs。
Prometheus + Grafana
监控:
- QPS;
- 延迟;
- 错误率。
ELK
日志分析:
- Elasticsearch;
- Logstash;
- Kibana。
九、AI Agent 排障最佳实践
1. 每次请求生成 Trace ID
例如:
request_id: abc123所有日志关联:
方便查询。
2. 保存完整执行路径
例如:
User ↓ Planner ↓ Retriever ↓ Tool ↓ LLM ↓ Output3. 记录 Prompt 和 Context
很多 AI 问题:
不是代码问题。
而是:
输入内容错误。
4. 建立失败回放机制
生产问题:
不要只能看日志。
应该支持:
重新执行:
历史请求 ↓ Replay ↓ 分析结果类似:
软件测试中的:
Replay。
十、未来趋势:AI 系统需要像分布式系统一样被监控
未来企业 AI:
会越来越复杂:
100+ Agent 1000+ Workflow 百万级请求它不再只是:
一个模型调用。
而是:
一个新的软件系统。
因此:
AI 应用需要:
像 Kubernetes、微服务一样:
拥有完整:
- Trace;
- Metrics;
- Logging;
- Debug能力。
十一、总结
图编排让 AI Agent 拥有了复杂任务执行能力。
但是:
复杂度也随之增加。
当图执行失败时:
不要只看最终答案。
应该沿着链路排查:
- 哪个节点失败?
- 执行路径是否正确?
- 状态是否异常?
- 检索是否正确?
- Prompt 是否合理?
- LLM 是否稳定?
- 外部工具是否正常?
优秀的企业 AI 系统,不仅要:
会思考
还必须:
可观察、可调试、可维护。
最终目标:
让 AI Agent 从“实验室 Demo”,成长为企业真正可靠的生产系统。