
原文链接:
https://tecdat.cn/?p=45059
作者信息

YouMing Zhang
东北大学信息与计算科学专业学士,专注机器学习与深度学习领域。擅长Python、matlab等工具,在大型语言模型应用与多智能体系统开发方面具有丰富实践经验。
人工智能正在深刻重塑客户服务领域。以往,当用户联系在线商店查询订单状态或申请退款时,常常面临漫长的等待或机械化的通用回复。而如今,基于大语言模型驱动的多智能体系统,能够理解用户意图、识别情感倾向,并在全天候运行中提供准确、个性化的响应——这正是AI智能体为客服场景带来的核心价值。
YouMing Zhang
内容提要
ADK框架模块化构建情感识别、知识检索与升级处理三类远程智能体的方法
A2A协议如何通过AgentCard服务发现与JSON-RPC标准化通信实现智能体间跨框架协作
Coordinator协调智能体如何结合情感分析结果实现查询的智能路由
模型-任务匹配策略:为不同智能体选用最适合的LLM规格以优化推理成本
RAG防幻觉机制:知识库无匹配时明确返回NO_KB_MATCH
Streamlit同步界面与A2A异步客户端的线程桥接方案
摘要
本文围绕基于ADK框架与A2A协议的多智能体客服系统构建,回答以下核心问题:(1)如何利用ADK框架模块化构建情感识别、知识检索与升级处理三类远程智能体?(2)A2A协议如何通过AgentCard服务发现与JSON-RPC标准化通信实现智能体间跨框架协作?(3)Coordinator协调智能体如何结合情感分析结果实现查询的智能路由?本文提供完整代码实现与可运行的AI智能体提示词。
Abstract: This paper addresses the construction of a multi-agent customer support system based on the ADK framework and A2A protocol, answering: (1) How to modularly build sentiment-analysis, knowledge-retrieval, and escalation remote agents using ADK? (2) How does the A2A protocol enable cross-framework agent collaboration through AgentCard discovery and standardized JSON-RPC communication? (3) How does the Coordinator agent achieve intelligent query routing based on sentiment analysis? Complete code and executable AI agent prompts are provided.
引言
本文将项目中建模经验沉淀为一套对话式AI智能体。ADK为构建具备复杂推理能力的智能体提供了高层次框架,而A2A协议则为智能体之间的通信与协作提供了标准化语言,二者相辅相成,共同构成多智能体系统的技术基石。
阅读原文进群获取本文完整代码、数据、AI智能体及更多最新AI见解和行业洞察,可与900+行业人士交流成长;还提供人工答疑,拆解核心原理、代码逻辑与业务适配思路;遇代码运行问题,更能享24小时调试支持。

项目文件目录结构
文章帮助客户设计了基于LangChain框架的多智能体协作架构,将电商客服全流程任务拆解为用户交互、商品查询、订单处理三个核心智能体,每个智能体通过专属系统提示词明确角色边界,智能体之间通过标准化Tool抽象完成协作调用。采用DeepSeek大语言模型与FastAPI后端框架,实现了模块化、可扩展的客服系统,为理解多智能体客服架构提供了实战参考。
ADK框架概述
AI智能体近年来受到广泛关注,各类支持其开发的框架不断涌现。其中,ADK(Agent Development Kit)是一个模块化框架,专为构建生产级AI智能体而设计。ADK的核心理念是让智能体开发更贴近传统软件工程实践,使开发者能更轻松地进行扩展、测试和部署。
A2A协议概述
以企业自动化入职流程为例:HR智能体负责收集文档和管理文书,IT智能体负责开设账户和分配设备,财务智能体负责将新员工注册到薪酬系统。通过A2A,一个协调智能体启动流程并将任务委派给各专业远程智能体,各智能体独立运行、完成各自职责并反馈更新,实现端到端的自动化入职体验。
项目架构概览
本系统接收客户文字消息,理解其意图和情感,并将其路由到合适的智能体进行处理。具体工作流程如下:

Streamlit演示界面
1
系统工作步骤
1. 接收客户查询作为输入
2. 调用三个独立的远程智能体:
- 情感识别智能体:分析用户消息的情感,分类为积极、中性或消极
- 知识检索智能体:通过检索增强生成技术从预定义知识库中查找答案
- 升级处理智能体:处理愤怒或沮丧的用户,模拟升级至人工支持团队
3. 协调智能体作为宿主智能体编排整个工作流——首先调用情感识别智能体评估用户语气,然后根据情感极性将原始查询路由至对应智能体

多智能体客服查询路由与解决系统架构图
整个流程的核心是A2A协议提供的标准化协作框架。通过发布Agent Card,智能体之间可以相互发现能力;通过严格的JSON-RPC协议保证消息格式一致性。
示例:用户输入“我非常不满意,你们的产品有问题”
1. 服务发现:协调智能体查询情感识别智能体的AgentCard,确认其具备“情感分类”能力; 2. 通信:将用户消息以标准JSON-RPC请求发送,情感识别智能体处理后返回“消极”结果; 3. 协作:协调智能体确认升级处理智能体的能力后,将原始消息转发并完成升级处理
模型集成策略
本多智能体系统采用不同的大语言模型来匹配各智能体的任务特性,实现精度、速度与成本的平衡优化:
1
情感识别与升级处理智能体
— 采用Llama-3.1-8B指令微调版本,针对短文本、指令式提示进行优化,适用于快速情感分析
2
知识检索智能体
— 采用Qwen3-30B,具备可靠的函数调用能力和高召回率,适合知识库问答场景
3
嵌入模型
— 采用Qwen3-Embedding-8B,生成高质量向量嵌入,驱动RAG检索
通过为每个智能体匹配最适合的模型规格,系统在保持高精度的同时控制了推理成本。
工具函数实现
AI智能体依赖工具函数来执行任务、检索信息和与外部环境交互。以下是系统三个核心工具的实现。
1
知识库初始化与RAG流水线
系统的查询解决核心是一个知识库类,它加载FAQ的JSON文件,将文本分块后用嵌入模型向量化,最终构建向量索引——形成一套完整的检索增强生成流水线。
该流水线工作流程为:首先用文本分割器将FAQ条目切分为512词的语义块,然后用嵌入模型将每块映射为高维向量存入向量索引。用户提交查询时,系统从索引中检索最相关的前K个块,最后将这些块与用户问题一并送入大语言模型生成上下文感知的精准回答。
知识库数据源可以是内部帮助台系统、内容管理平台、API知识库或实时文档——在生产部署中可灵活替换。
2
查询解决工具
查询解决函数将用户问题发送至RAG引擎,若找到相关内容且模型生成了有意义的回答,则返回以KB_RESULT为前缀的结果;否则返回NO_KB_MATCH,防止系统在知识库缺乏相关信息时编造答案。
3
情感分类工具
情感分类函数使用简洁的提示词模板,将用户消息的情绪倾向分类为积极、中性或消极三类,底层通过大语言模型API完成推理。情感分类实现的内容不在三分类内,默认回退为neutral。
4
升级处理工具
当用户发送沮丧或负面的消息时,系统通过升级处理工具模拟将案例升级至人工支持团队。该函数记录事件日志并返回用户友好的响应。在生产环境中,可触发创建工单或通过即时通讯工具通知团队。
远程智能体创建
在工具函数完成后,使用ADK的LlmAgent类创建智能体。每个智能体通过声明式方式配置四个关键组件:名称、大语言模型、工具集合和定义行为的指令提示。
三个远程智能体分别为:
- 情感识别智能体:接收用户消息,调用analyze_sentiment工具进行情感分类
- 知识检索智能体:调用search_knowledge_base工具查询知识库,确保仅返回有意义的回答
- 升级处理智能体:处理需人工介入的案例,调用handle_escalation工具模拟移交
A2A服务封装
为了将远程智能体暴露到网络中,需将它们包装在A2A服务中。ADK提供了官方的A2aAgentExecutor,无缝桥接A2A协议与ADK运行时,大幅简化服务端设置。
只需创建一个函数,接收ADK智能体和Agent Card,通过A2aAgentExecutor将它们连接,并用A2A SDK的A2AStarletteApplication包装即可。
from google.adk.a2a.executor.a2a_agent_executor import (
A2aAgentExecutor, A2aAgentExecutorConfig
)
def wrap_agent_as_server(agent_bot: LlmAgent, bot_card):
executor = A2aAgentExecutor(
agent=agent_bot,
config=A2aAgentExecutorConfig(
card=bot_card
),
artifact_service=InMemoryArtifactService(),
session_service=InMemorySessionService(),
memory_service=InMemoryMemoryService()
)
return A2AStarletteApplication(
agent_executor=executor
)
协调智能体与客户端通信
协调智能体是整个系统的核心调度者,它作为一个工具使用A2A客户端与各远程智能体通信。每个create_task调用执行三步流程:(1)通过AgentCard端点进行A2A服务发现;(2)使用官方客户端工厂创建连接;(3)发送标准消息并处理响应流。
系统编排与启动
run_agents.py是多智能体系统的主入口,负责编排整个启动序列。它利用异步编程和线程机制,将每个智能体作为独立的Uvicorn后台服务启动。
1
启动流程
launch_agent_server():将每个智能体服务在独立线程中启动,实现并发运行
probe_agent_health():轮询每个智能体的AgentCard健康检查端点,确保就绪
boot_all_agents():按正确顺序编排完整启动序列:
(1) 启动三个远程专业智能体(端口10020-10022)
(2) 等待三个专业智能体健康检查通过
(3) 实例化协调智能体(依赖确认就绪后创建)
(4) 启动协调智能体(端口10023)并确认就绪
import asyncio, threading, time
import uvicorn
def launch_agent_server(build_fn, port_num: int, label: str):
def _serve():
app_instance = build_fn()
uvicorn.run(app_instance.build(), host="127.0.0.1", port=port_num, log_level="warning")
worker = threading.Thread(target=_serve, name=f"agent-{label}", daemon=True)
worker.start()
return worker
执行启动命令:
python -m a2a_customer_routing.multi_agent.run_agents

智能体启动运行状态
阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。
客户端交互界面
多智能体后端就绪后,使用Streamlit构建聊天界面,通过A2A协议与协调智能体直接通信。一个关键技术挑战是Streamlit的同步框架与A2A SDK异步客户端的适配——通过在独立后台线程中运行异步A2A通信,避免了事件循环冲突,确保界面保持响应。
核心逻辑分为两层:异步函数call_orchestrator_async使用A2A SDK官方客户端处理协议通信;同步包装函数供Streamlit组件调用。
import httpx, asyncio, threading
from a2a.client import ClientFactory, create_text_message_object
from a2a.utils.constants import AGENT_CARD_WELL_KNOWN_PATH
def invoke_async_in_thread(async_op):
result_container = []
def _runner():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
result_container.append(loop.run_until_complete(async_op))
worker = threading.Thread(target=_runner)
worker.start()
worker.join()
return result_container[0] if result_container else ""

Streamlit聊天演示界面
实际应用场景
本文展示的多智能体客服系统架构可拓展至多种业务场景:
应用场景 | 核心能力 | 预期价值 |
|---|---|---|
客服升级回退 | 常见问题自动解决,复杂问题路由人工 | 降低人力成本40%-60% |
自动化入职引导 | 引导新客户或员工完成设置,实时答疑 | 缩短入职周期50% |
内部帮助台 | 处理IT、HR、财务请求,无需人工分拣 | 工单处理效率提升3-5倍 |
API触发编排 | 协调订单跟踪、退款处理等多后端服务 | 业务流程自动化率提升 |
多语言支持 | 检测语言和情感,路由到区域专属智能体 | 覆盖全球用户,24/7运行 |
总结
1
核心问题与解决方案
问题一:如何构建多个独立且可协作的客服智能体?
解决方案:使用ADK的LlmAgent类声明式定义三个专业智能体——情感识别、知识检索和升级处理,每个智能体绑定专属工具函数和大语言模型,通过系统提示词限定行为边界。ADK的模块化架构使各智能体职责单一、便于独立测试和维护。
问题二:如何实现智能体之间的标准化通信与协作?
解决方案:采用A2A协议的AgentCard服务发现机制与JSON-RPC通信格式。每个智能体在标准端点发布能力描述,协调智能体通过查询AgentCard确认目标智能体的技能,再发送标准化请求并处理流式响应。这如同积木式架构,使智能体可独立开发、部署和替换。
问题三:如何根据用户情感智能路由查询?
解决方案:协调智能体作为核心调度器,先调用情感识别智能体分析用户消息的情感极性,根据结果选择路由路径——正面/中性路由至知识检索智能体进行RAG查询,负面路由至升级处理智能体模拟人工转接,实现了端到端的情感感知智能客服体验。
2
技术创新与业务价值
1. 模型-任务匹配策略:为情感识别选用轻量级8B模型,为知识检索选用30B强推理模型,在保证精度的同时优化推理成本
2. 标准化跨框架协作:通过A2A协议实现ADK构建的智能体与其他框架智能体的互通,避免厂商锁定
3. RAG防幻觉机制:知识检索智能体在无匹配内容时明确返回NO_KB_MATCH,防止模型编造答案
4. 异步线程桥接:Streamlit同步界面与A2A异步客户端的线程桥接方案,可作为类似场景的通用参考
相关阅读
READ MORE
点击标题查阅往期内容
以下是针对您需要的 LangChain 相关文章的精选链接汇总,涵盖了从核心概念、RAG系统构建到多智能体应用等多个实战方向:
核心内容:详解如何利用LangChain的标准组件(如检索器、生成器、记忆模块),结合Ollama本地运行的LLM,从零搭建一个无需API Key、保护隐私的RAG问答系统。文章包含三个实战案例,帮助你彻底掌握LangChain的核心用法[6, 10]。
核心内容:深入探讨如何在LangChain框架下实现BM25(稀疏检索)与稠密向量的混合检索策略,并通过RRF(倒数排序融合)等重排序技术显著提升检索精度和系统鲁棒性[1]。
RAG与Python的智能编程教程问答系统:DeepSeek大模型驱动、LangChain流程构建、FAISS向量检索 [7, 8]
核心内容:展示一个完整的项目实战,使用LangChain构建流程,结合FAISS向量数据库和DeepSeek等大模型,实现一个专业领域的智能问答系统,并对比分析RAG技术带来的准确率提升(约35%)[7, 8]。
LangGraph的智能RAG系统构建:从基础智能体到纠正性多智能体协作 [1, 2, 3, 4, 7]
核心内容:介绍如何使用LangGraph(LangChain生态中用于编排复杂工作流的库)构建多智能体协作的RAG系统。该系统包含检索验证、答案生成、质量评估等环节,通过智能体间的交互和纠正机制(Corrective RAG),大幅提升回答的准确性和可靠性[1, 2, 3, 4, 7]。
核心内容:探讨如何利用LangChain的DeepAgents等框架构建多智能体编码系统,并引入HumanEval基准和Pass@k等指标来量化其可靠性,解决AI项目落地中的“最后一公里”问题(如成本、延迟、随机性)[5]。
根据文章内容,以下表格对比了LangChain及其替代框架的核心特性,助你更好地进行技术选型[10]:
框架 | 定位 | 优势 | 劣势 |
|---|---|---|---|
LangChain | 通用LLM应用框架 | 生态最广,组件丰富,社区活跃 | 学习曲线较陡,抽象层次较高 |
LlamaIndex | 数据-centric RAG | 数据处理能力强,索引策略多样 | 代理和链式能力相对较弱 |
Haystack | 企业级搜索/RAG | 生产级特性(管道、监控)完善 | 定制灵活性略低 |
Semantic Kernel | 微软生态集成 | 与.NET、Azure深度整合 | 跨语言支持有限 |
谁最适合使用LangChain?[10]
AI原生初创团队:需要快速验证产品,构建MVP(最小可行产品)。
B2B SaaS开发者:希望在现有产品中集成复杂的AI功能。
技术爱好者/学生:旨在深入学习和实验LLM应用开发。
如果你的需求极其简单(如单次调用LLM API),直接调用可能更轻量。但对于需要构建复杂工作流(如RAG、多智能体协作)的场景,LangChain提供的标准化组件和链式组合能力价值无可替代[10]。
公众号后台回复“RAG案例”:可获取金融、医疗等特定领域的问答系统数据集和进一步案例[3, 7]。
进阶探索:在掌握基础后,可进一步研究LangSmith(用于调试与监控)和LangGraph(用于构建更复杂的状态机工作流)
本文配套的建模可直接套用的AI智能体、完整代码包、分析,可加小助手:tecdat_cn领取。


资料获取
在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

点击文末“阅读原文”
获取完整智能体、
代码、数据和文档。




