🔍 整体架构设计
💡 我们采用分层模块化的设计理念,构建了一个灵活可扩展的多智能体系统。这种设计不仅确保了系统的高可用性,也为未来的功能扩展提供了良好的基础。
基于多智能体的架构设计采用分层模块化方案,主要包含以下核心组件:
顶层控制模块
-
意图澄清Agent:
- 采用规则模板+相似度匹配处理模糊问题,阈值低于0.8时触发澄清
- 结合用户画像和历史会话进行意图预测,准确率超过95%才确认
- 使用主动问答策略收集缺失信息,如套餐类型、使用场景等
- 进行初步意图分类,支持查询、办理、咨询等类型
-
意图理解Agent:
- 使用NER(命名实体识别)技术识别业务实体(套餐名称、手机号码、时间等)
- 基于预定义规则模板进行意图匹配和分类
- 结合实体识别和规则匹配结果进行综合分析
- 输出标准化的意图理解结果(实体、类型、置信度)
-
任务规划Agent:
- 基于DAG图构建任务执行流程,将复杂任务拆解为原子任务节点
- 使用优先级队列管理任务调度,支持动态调整执行顺序
- 采用状态机管理任务生命周期,包含待执行、执行中、完成、失败等状态
- 内置任务重试和异常处理机制,确保任务执行的可靠性
业务执行模块
系统根据不同业务场景划分为多个并行的业务处理单元,每个单元包含两层智能体:
-
意图识别Agent:
- 基于澄清结果精确识别用户意图
- 基于上下文和历史交互智能推断用户真实意图
- 适配多个助手的意图识别,实现精准分发
-
业务逻辑Agent:
- 执行具体的业务操作:处理用户查询、执行业务办理、提供智能推荐
- 负责与底层服务交互:调用业务接口、访问数据库、对接第三方系统
- 处理业务规则校验:权限验证、规则约束、异常处理
🛠️ 智能体框架选型
💡 框架选择关系到整个项目的成败,我们进行了深入的调研和分析。
调研方法与过程
我认为在评估智能体框架时,我们应该采取更加务实的调研方式。我们首先对市面上常见的智能体框架做了全面摸底,重点看了各个框架的使用情况、社区活跃度,以及实际落地案例。除此之外,我们也深入研究了每个框架的技术特点、性能表现和扩展能力。
从业务角度来看,有几个关键点特别重要:首先是要能扛住大流量,其次是要能适应我们多样化的业务场景,最后是要保证稳定性和安全性。
为什么选择 AutoGen
经过反复比较和讨论,我们觉得 AutoGen 是最适合的选择:
- 灵活的 API 设计:工具链也很完善,对快速开发业务很有帮助
- 多语言支持:支持多种编程语言,插件机制也很强大
- 微软背书:有微软在背后支持,框架的未来发展更有保障
框架对比
| 框架名称 | 描述 | 优势 |
|---|---|---|
| AutoGen | 微软开源的新一代智能体框架 | 多层次API、强大插件系统、跨语言支持 |
| LangChain Agents | 模块化的大语言模型应用框架 | 高度模块化、生态完善、社区活跃 |
| Qwen-Agent | 通义千问开源的智能体框架 | 中文理解能力强、工具调用丰富 |
| BabyAGI | 轻量级自主智能体框架 | 轻量、简单、低门槛 |
🧠 Deepseek R1 融合
为了进一步提升系统的语义理解和意图解析能力,我们计划引入 Deepseek R1 模型,并将其与现有的多智能体架构深度融合。
集成方案:基于深度思考过程的认知迭代
在原有意图澄清与理解模块的基础上,我们进一步提取 Deepseek R1 模型内部的思考过程(chain-of-thought),并在此过程中调用知识库进行信息补充与反馈。
整体流程如下:
- 初步解析与思考:调用 Deepseek R1 模型进行初步语义解析,并提取模型内部生成的思考过程
- 知识库查询:利用初步生成的思考过程作为查询条件,获取相关的背景知识和数据补充
- 融合与迭代优化:将知识库返回的信息与原始思考过程进行融合,经过多轮迭代逐步收敛
示例代码:
def deepseek_iterative_analysis(user_input, max_iterations=3):
# 第一步:调用 Deepseek R1 生成初步解析结果和内部思考过程
initial_result = deepseek_r1_api(user_input, mode="chain-of-thought")
combined_input = initial_result["chain_of_thought"]
for i in range(max_iterations):
# 1. 主动查询知识库获取相关信息
kb_info = query_knowledge_base(combined_input)
# 2. 让知识库根据当前思考状态推送补充信息
kb_suggestions = knowledge_base_suggestions(combined_input)
# 3. 合并两种知识来源
enriched_knowledge = merge_knowledge(kb_info, kb_suggestions)
# 迭代优化
refined_result = deepseek_r1_api(input_for_refinement, mode="iterative-refinement")
if has_converged(combined_input):
break
return {"final_intent": refined_result.get("result")}
场景案例:套餐推荐优化
🔍 用户咨询:"我想给父母换个套餐,他们每月通话时长200分钟左右,偶尔刷视频,主要是和家人视频通话,预算150元以内。"
传统向量检索模式:
- 提取关键词:"通话时长200分钟"、"视频通话"、"150元"
- 向量检索匹配相似套餐
- 缺乏场景理解,无法理解"父母"这类用户特征
Deepseek R1 思维链模式:
- 用户画像解析:老年群体(父母)、以通话为主、预算敏感
- 需求分层:核心需求(通话约200分钟)、次要需求(视频通话流量)、价格上限(150元)
- 套餐匹配逻辑:优先考虑老年专属套餐、通话时长满足需求
- 个性化建议:推荐开通亲情网、建议设置流量提醒
融合优势与效果展望
- 准确性提升:深层语义解析有助于显著提高意图和实体识别的准确率
- 决策支持:融合后的解析结果可为任务规划和后续处理提供更可靠的语义信息
- 模块灵活性:无论是作为现有 Agent 的增强,还是独立智能体存在,Deepseek R1 模型均可以根据业务需求灵活调度
未来,我们将持续监控 Deepseek R1 模型在实际场景下的表现,并根据用户反馈不断优化融合策略。
Previous Article← 江苏移动数智助手 Text2SQL 大模型微调实践
Next ArticleCUDA 性能优化技巧 →