尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

多 Agent 系统在客服场景的落地实录:意图分发、转人工兜底与 SLA 保障

多 Agent 系统在客服场景的落地实录:意图分发、转人工兜底与 SLA 保障 多 Agent 系统在客服场景的落地实录意图分发、转人工兜底与 SLA 保障智能客服是很多企业尝试将大模型和 Agent 商业化落地的“第一战场”。然而很多团队在实际把多 Agent 客服系统推上线后往往会遭遇严峻的客诉风暴客户明明只是想查一下物流单号智能体却在多轮对话中“过度发散”反复确认地址把简单的 2 秒查询拖成 30 秒的长篇大论当遇到愤怒的用户爆粗口或要求退款时模型依然在机械地复读通用话术缺乏敏感情绪识别与秒级转人工机制下游订单或支付查询接口发生偶发超时Agent 直接对用户展示内部异常堆栈导致用户体验全面崩盘。在真实的客服生产场景中大模型不能作为唯一的决策黑盒。必须构建一套由快速意图识别路由、专业领域子 Agent 协同、情绪阈值感知与自动化转人工兜底组成的强管控架构。今天我们拆解一套在日均 10 万次对话中稳定运行的多 Agent 智能客服生产落地架构。一、客服多 Agent 架构全景分层flowchart TD UserMsg[用户输入提问] -- IntentRouter[意图分类与情绪检测路由] IntentRouter --|情绪激化 / VIP 用户| HumanQueue[转人工坐席通道 (毫秒级切流)] IntentRouter --|售后查件意图| OrderAgent[订单物流 Agent (执行只读/写工具)] IntentRouter --|技术咨询意图| TechRAGAgent[产品手册 RAG Agent (知识库检索)] IntentRouter --|通用闲聊意图| GeneralAgent[轻量轻回复 Agent] OrderAgent TechRAGAgent GeneralAgent -- OutputGuard[输出安全审查与敏感词拦截] OutputGuard -- StreamResp[流式推送到用户端]四大核心设计原则意图路由前置且轻量化用轻量级小模型如 Qwen-7B或正则规则在 150ms 内完成意图分流绝不让所有请求走昂贵的主力大模型状态与权限强隔离订单修改 Agent 与商品咨询 Agent 物理隔离前者必须强校验用户 Token绝不给普通咨询 Agent 开放修改订单的工具情绪阈值触发熔断转人工建立负向情绪关键词词库与意图重试计数器用户连续两次表达不满或输入“人工”无条件阻断 Agent直接打入人工座席排队队列SLA 耗时保底端到端首字延迟TTFT必须控制在 800ms 以内若子 Agent 在 2.5 秒内未完成推理立刻输出“正在为您查询中请稍候……”并异步分块推送。二、生产级意图路由器与情绪拦截代码实现import re from typing import Dict, Any, Tuple from pydantic import BaseModel class CustomerIntent(BaseModel): category: str # LOGISTICS | REFUND | PRODUCT_QA | HUMAN_TRANSFER | CHITCHAT urgency_level: int # 1 (普通) ~ 5 (极度紧急/愤怒) needs_human: bool # 是否必须转人工 extracted_entities: Dict[str, Any] class IntentRouter: def __init__(self): # 紧急人工直通关键词正则 self.human_keywords re.compile(r(人工|客服电话|投诉|消协|打官司|骗子|差评|老板出来), re.IGNORECASE) self.order_id_pattern re.compile(r(ORD-\d{8}-\d{4}|\d{16})) def route_message(self, user_text: str, session_history: list) - CustomerIntent: # 1. 优先执行硬规则与情绪秒级拦截零延迟 if self.human_keywords.search(user_text): return CustomerIntent( categoryHUMAN_TRANSFER, urgency_level5, needs_humanTrue, extracted_entities{} ) # 2. 检查会话是否连续重复未解决 if len(session_history) 4: recent_user_msgs [m[content] for m in session_history[-4:] if m[role] user] if len(set(recent_user_msgs)) 2: # 用户在重复表达相同问题 return CustomerIntent( categoryHUMAN_TRANSFER, urgency_level4, needs_humanTrue, extracted_entities{reason: 连续多轮未收敛} ) # 3. 提取订单号等实体 order_match self.order_id_pattern.search(user_text) entities {order_id: order_match.group(1)} if order_match else {} # 4. 规则匹配快速分流 if 发货 in user_text or 快递 in user_text or 物流 in user_text: return CustomerIntent(categoryLOGISTICS, urgency_level2, needs_humanFalse, extracted_entitiesentities) elif 退款 in user_text or 退货 in user_text: return CustomerIntent(categoryREFUND, urgency_level3, needs_humanFalse, extracted_entitiesentities) else: return CustomerIntent(categoryPRODUCT_QA, urgency_level1, needs_humanFalse, extracted_entitiesentities)三、子 Agent 的沙箱化与 SLA 保障执行器import asyncio from typing import AsyncGenerator async def execute_agent_with_sla_guard(agent_func, args: dict, timeout_sec: float 3.0) - AsyncGenerator[str, None]: 带 SLA 保障的流式生成包装器 try: # 在超时窗口内执行 Agent 推理 async with asyncio.timeout(timeout_sec): async for chunk in agent_func(**args): yield chunk except asyncio.TimeoutError: # 触发 SLA 超时保底降级话术 yield \n[系统提示] 抱歉当前查询数据量较大正在为您加急处理您可以继续提问或输入人工为您转接专员。 except Exception as e: # 异常阻断绝不向客户端吐出 Traceback yield \n[系统提示] 抱歉网络连接稍有延迟请稍后重试或联系在线人工客服。四、生产实战运维指标体系在客服系统上线后必须在 Grafana 建立专门的Agent 客服效能大盘机器人自主解决率Self-Resolution Rate衡量无需转人工、会话自然结束的比例优秀指标通常在 65%~80%转人工响应时效Transfer Latency从触发转人工到坐席系统收到上下文的延迟必须控制在 300ms 以内且完整对话历史必须结构化同步给坐席人员幻觉与违规话术拦截率异步质检系统每小时抽检 10% 对话对出现“保证 100% 退赔”、“虚假承诺”等违规输出打标并触发工程师告警。把边界用代码定死多 Agent 才能在客服一线既帮企业节省真金白银的人力成本又守住品牌的口碑底线。
返回列表