设计题:智能客服多 Agent 系统
设计一个智能客服系统,能自动处理客户咨询、支持多轮对话,并在必要时转接人工客服。
- 多渠道接入(网页聊天、App、微信)
- 意图识别与自动路由
- 多轮对话与上下文保持
- 人工转接与 Agent-人工协同
- 工单创建与跟踪
非功能性需求
Section titled “非功能性需求”- 首次响应 < 2 秒
- 自动解决率 > 70%
- 7×24 小时可用
- 支持峰值 1000 并发对话
flowchart TD
Channel["多渠道接入"] --> GW["API Gateway\n(认证 + 限流 + 路由)"]
GW --> SM["Session Manager\n(会话状态 + 上下文)"]
SM --> IR["Intent Router\n(意图分类 + 路由)"]
IR --> Order["订单 Agent"]
IR --> Refund["退款 Agent"]
IR --> Tech["技术 Agent"]
IR --> FAQ["FAQ Agent"]
Order --> Esc["Escalation Manager\n(转接决策 + 排队)"]
Esc --> Human["人工客服工作台"]
核心组件设计
Section titled “核心组件设计”1. Intent Router(意图路由器)
Section titled “1. Intent Router(意图路由器)”两级分类策略:
第一级(快速分类,< 100ms): - 基于关键词 + 轻量分类模型 - 分到大类:订单、退款、技术支持、通用咨询
第二级(精细分类,LLM): - 确定具体意图和所需信息 - 提取实体(订单号、产品名等)路由规则引擎:
routing_rules = { "order_status": {"agent": "OrderAgent", "priority": "normal"}, "refund_request": {"agent": "RefundAgent", "priority": "high"}, "technical_issue": {"agent": "TechAgent", "priority": "normal"}, "complaint": {"agent": "EscalationMgr", "priority": "urgent"},}2. 专家 Agent 集群
Section titled “2. 专家 Agent 集群”每个专家 Agent 有独立的:
- System Prompt(角色定义和行为约束)
- 工具集(该领域专用 API)
- 知识库(领域文档和 FAQ)
- 升级条件(何时转人工)
订单 Agent 示例:
工具集: - 查询订单状态 API - 查询物流信息 API - 修改配送地址 API
知识库: - 退换货政策 - 配送时效说明 - 常见订单问题 FAQ
升级条件: - 用户连续表达不满 ≥ 2 次 - 涉及金额 > 阈值 - Agent 信心分 < 0.6 - 用户主动要求人工3. 人工转接机制
Section titled “3. 人工转接机制”转接决策模型:
触发条件(满足任一即转接):├── 显式触发:用户说"转人工"├── 情绪触发:情绪分析检测到愤怒/焦虑├── 能力触发:Agent 无法解决(循环 > 3 次)├── 策略触发:敏感操作(大额退款、投诉)└── 质量触发:Agent 信心分持续低于阈值转接流程:
1. Agent 生成对话摘要(关键信息、已尝试方案、客户情绪)2. 根据技能标签匹配可用人工客服3. 客户进入等待队列(显示预计等待时间)4. 人工客服接入,自动推送对话摘要5. 人工处理期间,Agent 旁听辅助(推荐回复、查询信息)4. 记忆与上下文管理
Section titled “4. 记忆与上下文管理”三层记忆架构:
| 层级 | 内容 | 存储 | 生命周期 |
|---|---|---|---|
| 会话记忆 | 当前对话消息 | Redis | 会话结束后 24h |
| 用户画像 | 历史偏好、历史问题 | 数据库 | 长期 |
| 知识记忆 | FAQ、政策文档 | 向量数据库 | 持久 |
上下文窗口管理:
策略:滑动窗口 + 摘要- 最近 10 轮对话保留原文- 更早的对话压缩为摘要- 关键实体(订单号、用户信息)始终保留关键设计决策
Section titled “关键设计决策”单 Agent vs Multi-Agent
Section titled “单 Agent vs Multi-Agent”| 维度 | 单 Agent | Multi-Agent |
|---|---|---|
| 开发成本 | 低 | 高 |
| 维护性 | Prompt 臃肿 | 各自独立 |
| 准确性 | 领域混淆 | 专业精准 |
| 可扩展性 | 差 | 好 |
结论: 推荐 Multi-Agent + Router 模式,各领域独立迭代。
情绪检测方案
Section titled “情绪检测方案”方案 1:专用情绪分类模型(快速,需要训练数据)方案 2:LLM 内置判断(准确,增加延迟和成本)方案 3:混合 — 规则快筛 + LLM 复核面试追问与答案
Section titled “面试追问与答案”Q: 如何处理 Agent 之间的对话转移?
Section titled “Q: 如何处理 Agent 之间的对话转移?”A: 当需要从订单 Agent 转到退款 Agent 时:
- 当前 Agent 输出结构化交接摘要
- Router 接收摘要并路由到新 Agent
- 新 Agent 加载摘要到上下文,无缝衔接
- 用户无感知,但可以提示”已为您转到退款专员”
Q: 如何衡量客服系统的质量?
Section titled “Q: 如何衡量客服系统的质量?”A:
- 自动解决率 — 无需人工介入的对话比例
- 首次响应时间 — 用户发送消息到收到回复的时间
- 客户满意度 (CSAT) — 对话结束后的评分
- 平均处理时长 — 从开始到解决的总时间
- 转人工率 — 需要人工介入的比例
- 解决准确率 — 人工复核 Agent 回答的正确率
Q: 高峰期如何保证服务质量?
Section titled “Q: 高峰期如何保证服务质量?”A:
- Auto-scaling Agent 实例
- 非紧急查询排队 + 异步处理
- 降级策略:高峰期优先走规则引擎,减少 LLM 调用
- 预热缓存:高频问题的回答直接缓存