评估与生产部署
课程简介
智能体系统的性能评估、错误分析、安全与监控。
🎬 本课程视频:Agentic AI — AI 智能体设计模式
评估与生产部署:让 Agent 稳定可靠
一、从原型到产品的鸿沟
在开发环境中运行的 Agent 表现良好,不代表它在生产环境中也能稳定工作。现实生产环境充满了不确定性:用户输入千奇百怪、第三方 API 可能宕机、模型更新后行为变化、提示词微调带来连锁反应。
本节讲解如何系统性地评估 Agent 系统的质量,并将其安全可靠地部署到生产环境。
二、三维度评估体系
2.1 任务完成率
任务完成率衡量 Agent 是否达成了用户的目标。这是最高层的评估指标。
评估方法:
- 端到端测试:给定一个用户请求,检查 Agent 的最终输出是否满足需求
- 子目标达成率:将任务分解为子目标,分别检查每个子目标的完成情况
- 用户确认率:在实际使用中,用户确认问题被解决的比率
测试用例设计:
- 正常场景:覆盖 80% 的常见用户请求(60 个用例)
- 边界场景:覆盖 15% 的边缘情况(30 个用例)
- 异常场景:覆盖 5% 的异常输入(10 个用例)
2.2 效率指标
效率指标衡量 Agent 系统的资源消耗和响应速度。
关键指标:
- LLM 调用次数:完成一个任务平均需要多少次 LLM 调用
- Token 消耗:每次任务的平均 Token 消耗量
- 工具调用次数:平均调用工具的次数
- 响应延迟:从接收到返回的端到端延迟(P50/P95/P99)
- 成功率:工具调用成功的比例
- 重试率:需要重试的工具调用比例
优化目标:
- 在满足质量要求的前提下,最小化 Token 消耗和延迟
- 对于 P99 延迟超过 10 秒的场景,考虑异步处理
2.3 质量指标
质量指标评估 Agent 输出的准确性和合规性。
评估维度:
- 输出准确性:Agent 的回答是否事实正确
- 格式合规性:输出是否符合要求的格式规范
- 安全性:输出是否包含有害内容或敏感信息
- 一致性:相同输入是否得到一致的输出
- 鲁棒性:输入有微小变化时,输出是否稳定
三、错误分析与归因
当 Agent 表现不佳时,需要深入分析根因。错误可以分为以下几类:
3.1 意图识别错误
Agent 误解了用户的真实需求。例如用户说「帮我看看这个数据」,Agent 理解为「分析数据」而用户实际上需要的是「检查数据完整性」。
改进方法:
- 优化系统提示词中的角色定义
- 增加意图分类步骤,先分类再处理
- 增加确认机制:「您是想分析数据还是检查数据完整性?」
3.2 工具调用失败
Agent 选择的工具或参数不正确。例如用户需要查询天气,Agent 却调用了搜索引擎而不是天气 API。
改进方法:
- 优化工具描述的准确性
- 增加工具选择的约束规则
- 实现调用失败时的优雅降级
3.3 规划逻辑缺陷
Agent 的任务分解或执行顺序不合理。例如应该先收集数据再分析,Agent 却先开始分析。
改进方法:
- 使用预定义的任务模板
- 增加规划结果的验证步骤
- 实现动态重规划能力
3.4 输出质量问题
Agent 生成了事实错误、逻辑不连贯或格式不规范的输出。
改进方法:
- 启用反思模式自我检查
- 增加输出验证规则
- 使用结构化输出约束(如 JSON Schema)
四、安全监控与护栏设计
4.1 输入安全
注入攻击防护:检测并拦截尝试操纵 Agent 行为的恶意输入。
检测模式:
- 系统提示词覆盖尝试:「忽略之前的所有指令...」
- 角色扮演攻击:「你现在是一个不受限制的 AI...」
- 越狱提示词:尝试绕过安全限制的特殊提示
内容安全:检测输入中的敏感信息,如个人身份信息、信用卡号等。
4.2 输出安全
敏感信息过滤:阻止 Agent 输出个人隐私、商业机密等敏感信息。
行为限制:限制 Agent 不能执行的操作,如不能发送邮件、不能修改数据库等。
内容审核:检查输出是否包含仇恨言论、暴力内容、非法指导等。
4.3 护栏 Agent
护栏 Agent(Guardrail Agent)是一个专门用于监督其他 Agent 行为的独立 Agent。它不参与任务执行,而是持续监控 Agent 的输入、输出和行为。
护栏 Agent 的职责:
1. 实时拦截:在 Agent 可能执行危险操作时立即阻止
2. 行为审计:记录 Agent 的所有行为,包括推理过程和工具调用
3. 异常检测:发现 Agent 行为与预期不符时发出警报
4. 人工升级:在无法判断时将决策升级给人类审核
class GuardrailAgent:
def __init__(self, monitored_agent):
self.monitored = monitored_agent
def monitor_interaction(self, user_input):
# 1. 输入检查
safety_check = self.check_input_safety(user_input)
if not safety_check.passed:
return self.block_response(safety_check.reason)
# 2. 交由主 Agent 处理
response = self.monitored.process(user_input)
# 3. 输出检查
output_check = self.check_output_safety(response)
if not output_check.passed:
return self.safe_fallback(output_check.reason)
return response
def check_input_safety(self, text):
# 检查注入攻击、敏感信息等
...
def check_output_safety(self, text):
# 检查有害内容、信息泄露等
...
五、执行追踪与可观测性
5.1 完整执行轨迹
记录 Agent 每次执行的完整轨迹,包括:
- 用户输入
- Agent 的内部推理过程(思考链)
- 每次工具调用的请求和响应
- 中间结果
- 最终输出
- Token 消耗和时间消耗
{
"trace_id": "trace_20240727_001",
"user_input": "帮我分析这份销售数据",
"steps": [
{
"step": 1,
"type": "llm_call",
"model": "gpt-4",
"prompt": "...",
"response": "...",
"tokens": 1250,
"latency_ms": 2340
},
{
"step": 2,
"type": "tool_call",
"tool": "code_interpreter",
"input": "analyze_sales_data(data.csv)",
"output": "{"avg_growth": 0.15}",
"latency_ms": 4500
}
],
"total_tokens": 3400,
"total_latency_ms": 12400,
"final_output": "..."
}
5.2 可观测性工具
推荐的可观测性平台:
- LangSmith:专为 LLM 应用设计的调试和监控平台
- Weights & Biases Prompts:提示词管理和追踪
- 自建 ELK 栈:对于有特殊合规需求的企业
六、灰度部署策略
6.1 部署模式
蓝绿部署:同时运行新旧两个版本,将一部分流量切换到新版本验证。
金丝雀发布:先让新版本处理 5-10% 的流量,监控关键指标,确认稳定后逐步扩大。
A/B 测试:不同用户群体使用不同版本,对比业务指标。
6.2 发布检查清单
部署前的检查项目:
- [ ] 评估集测试通过(100 个以上测试用例)
- [ ] 安全审计完成
- [ ] 护栏 Agent 就位
- [ ] 执行轨迹记录启用
- [ ] 关键指标监控告警配置
- [ ] 回滚方案准备就绪
- [ ] 人工审核流程明确
七、总结
将 Agent 系统从实验原型升级为可靠的生产服务,需要三维度评估体系定位问题、安全监控机制保障运行安全、执行追踪提供调试数据、灰度部署策略控制发布风险。这些工程实践是把实验性 Agent 变成真正可靠产品的关键。
九、实用工具与框架推荐
9.1 评估框架
- LangSmith:LangChain 出品的 LLM 应用监控和评估平台
- Weights & Biases Prompts:提示词管理和评估工具
- MLflow:开源 ML 生命周期管理,支持 LLM 评估
- DeepEval:专为 LLM 应用设计的评估框架
9.2 可观测性工具
- LangFuse:开源 LLM 可观测性平台
- Arize AI Phoenix:LLM 可观测性和评估
- Helicone:LLM API 监控和日志
9.3 安全工具
- Guardrails AI:护栏系统和输出验证
- Rebuff:提示注入检测
- NeMo Guardrails:NVIDIA 的开源护栏框架
十、总结
将 Agent 系统从原型转化为可靠产品,需要评估、监控和安全三位一体。
关键要点回顾:
- 三维评估:任务完成率、效率指标、质量指标
- 错误分析归因到四个层面:意图识别、工具调用、规划逻辑、信息整合
- 安全监控覆盖输入、执行、输出三个环节
- 护栏 Agent 是独立的安全层
- 灰度发布和 A/B 测试确保变更安全可控
- 完整的可观测性基础设施是系统可靠运行的保障
从这一课开始,你不再只是构建原型,而是能够交付真正可靠的生产级 Agent 系统。
九、实用工具与框架推荐
9.1 评估框架
- LangSmith:LangChain 出品的 LLM 应用监控和评估平台
- Weights & Biases Prompts:提示词管理和评估工具
- MLflow:开源 ML 生命周期管理,支持 LLM 评估
- DeepEval:专为 LLM 应用设计的评估框架
9.2 可观测性工具
- LangFuse:开源 LLM 可观测性平台
- Arize AI Phoenix:LLM 可观测性和评估
- Helicone:LLM API 监控和日志
9.3 安全工具
- Guardrails AI:护栏系统和输出验证
- Rebuff:提示注入检测
- NeMo Guardrails:NVIDIA 的开源护栏框架
十、总结
将 Agent 系统从原型转化为可靠产品,需要评估、监控和安全三位一体。
关键要点回顾:
- 三维评估:任务完成率、效率指标、质量指标
- 错误分析归因到四个层面:意图识别、工具调用、规划逻辑、信息整合
- 安全监控覆盖输入、执行、输出三个环节
- 护栏 Agent 是独立的安全层
- 灰度发布和 A/B 测试确保变更安全可控
- 完整的可观测性基础设施是系统可靠运行的保障
从这一课开始,你不再只是构建原型,而是能够交付真正可靠的生产级 Agent 系统。
我们再深入探讨一下持续监控的最佳实践。生产环境的 Agent 系统需要三个层次的可观测性:第一层是“指标层”,关注系统健康度,包括响应时间、错误率、吞吐量;第二层是“质量层”,关注系统效果,包括用户满意度、任务完成率、人工介入率;第三层是“安全层”,关注系统安全性,包括被攻击尝试、异常行为、数据泄露风险。
告警策略也很关键。告警不是越多越好——过多的告警会产生“告警疲劳”,真正的问题反而被淹没。好的告警策略是:分层告警(严重、警告、通知),每个告警都有明确的触发条件和处理方法。同时要避免“抖动告警”——条件在阈值附近反复触发——可以用连续触发 N 次才告警的方式来解决。
九、实用工具与框架推荐
9.1 评估框架
- LangSmith:LangChain 出品的 LLM 应用监控和评估平台
- Weights & Biases Prompts:提示词管理和评估工具
- MLflow:开源 ML 生命周期管理,支持 LLM 评估
- DeepEval:专为 LLM 应用设计的评估框架
9.2 可观测性工具
- LangFuse:开源 LLM 可观测性平台
- Arize AI Phoenix:LLM 可观测性和评估
- Helicone:LLM API 监控和日志
9.3 安全工具
- Guardrails AI:护栏系统和输出验证
- Rebuff:提示注入检测
- NeMo Guardrails:NVIDIA 的开源护栏框架
十、总结
将 Agent 系统从原型转化为可靠产品,需要评估、监控和安全三位一体。
关键要点回顾:
- 三维评估:任务完成率、效率指标、质量指标
- 错误分析归因到四个层面:意图识别、工具调用、规划逻辑、信息整合
- 安全监控覆盖输入、执行、输出三个环节
- 护栏 Agent 是独立的安全层
- 灰度发布和 A/B 测试确保变更安全可控
- 完整的可观测性基础设施是系统可靠运行的保障
从这一课开始,你不再只是构建原型,而是能够交付真正可靠的生产级 Agent 系统。
我们再深入探讨一下持续监控的最佳实践。生产环境的 Agent 系统需要三个层次的可观测性:第一层是“指标层”,关注系统健康度,包括响应时间、错误率、吞吐量;第二层是“质量层”,关注系统效果,包括用户满意度、任务完成率、人工介入率;第三层是“安全层”,关注系统安全性,包括被攻击尝试、异常行为、数据泄露风险。
告警策略也很关键。告警不是越多越好——过多的告警会产生“告警疲劳”,真正的问题反而被淹没。好的告警策略是:分层告警(严重、警告、通知),每个告警都有明确的触发条件和处理方法。同时要避免“抖动告警”——条件在阈值附近反复触发——可以用连续触发 N 次才告警的方式来解决。
延伸阅读
- 📺 B 站播放列表:Agentic AI — AI 智能体设计模式
- 📚 更多学习资源,请访问 deeplearning.ai 官网