Skip to content

设计题:智能客服多 Agent 系统

设计一个智能客服系统,能自动处理客户咨询、支持多轮对话,并在必要时转接人工客服。

  • 多渠道接入(网页聊天、App、微信)
  • 意图识别与自动路由
  • 多轮对话与上下文保持
  • 人工转接与 Agent-人工协同
  • 工单创建与跟踪
  • 首次响应 < 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["人工客服工作台"]

两级分类策略:

第一级(快速分类,< 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"},
}

每个专家 Agent 有独立的:

  • System Prompt(角色定义和行为约束)
  • 工具集(该领域专用 API)
  • 知识库(领域文档和 FAQ)
  • 升级条件(何时转人工)

订单 Agent 示例:

工具集:
- 查询订单状态 API
- 查询物流信息 API
- 修改配送地址 API
知识库:
- 退换货政策
- 配送时效说明
- 常见订单问题 FAQ
升级条件:
- 用户连续表达不满 ≥ 2 次
- 涉及金额 > 阈值
- Agent 信心分 < 0.6
- 用户主动要求人工

转接决策模型:

触发条件(满足任一即转接):
├── 显式触发:用户说"转人工"
├── 情绪触发:情绪分析检测到愤怒/焦虑
├── 能力触发:Agent 无法解决(循环 > 3 次)
├── 策略触发:敏感操作(大额退款、投诉)
└── 质量触发:Agent 信心分持续低于阈值

转接流程:

1. Agent 生成对话摘要(关键信息、已尝试方案、客户情绪)
2. 根据技能标签匹配可用人工客服
3. 客户进入等待队列(显示预计等待时间)
4. 人工客服接入,自动推送对话摘要
5. 人工处理期间,Agent 旁听辅助(推荐回复、查询信息)

三层记忆架构:

层级内容存储生命周期
会话记忆当前对话消息Redis会话结束后 24h
用户画像历史偏好、历史问题数据库长期
知识记忆FAQ、政策文档向量数据库持久

上下文窗口管理:

策略:滑动窗口 + 摘要
- 最近 10 轮对话保留原文
- 更早的对话压缩为摘要
- 关键实体(订单号、用户信息)始终保留
维度单 AgentMulti-Agent
开发成本
维护性Prompt 臃肿各自独立
准确性领域混淆专业精准
可扩展性

结论: 推荐 Multi-Agent + Router 模式,各领域独立迭代。

方案 1:专用情绪分类模型(快速,需要训练数据)
方案 2:LLM 内置判断(准确,增加延迟和成本)
方案 3:混合 — 规则快筛 + LLM 复核

Q: 如何处理 Agent 之间的对话转移?

Section titled “Q: 如何处理 Agent 之间的对话转移?”

A: 当需要从订单 Agent 转到退款 Agent 时:

  1. 当前 Agent 输出结构化交接摘要
  2. Router 接收摘要并路由到新 Agent
  3. 新 Agent 加载摘要到上下文,无缝衔接
  4. 用户无感知,但可以提示”已为您转到退款专员”

A:

  • 自动解决率 — 无需人工介入的对话比例
  • 首次响应时间 — 用户发送消息到收到回复的时间
  • 客户满意度 (CSAT) — 对话结束后的评分
  • 平均处理时长 — 从开始到解决的总时间
  • 转人工率 — 需要人工介入的比例
  • 解决准确率 — 人工复核 Agent 回答的正确率

A:

  • Auto-scaling Agent 实例
  • 非紧急查询排队 + 异步处理
  • 降级策略:高峰期优先走规则引擎,减少 LLM 调用
  • 预热缓存:高频问题的回答直接缓存