免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

准确率提升至 90%,阿里商旅基于 AgentScope 构建多智能体差旅助手最佳实践

发布日期:2026-02-14 08:49:18 浏览次数: 1545
作者:阿里云开发者

微信搜一搜,关注“阿里云开发者”

推荐语

阿里商旅借助AgentScope框架实现多智能体协同,将差旅助手准确率提升至90%,打造智能差旅新标杆。

核心内容:
1. 单智能体模式面临的三大技术瓶颈
2. AgentScope框架带来的架构革新
3. 混合编程模式的技术实现路径

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

阿里商旅是阿里巴巴旗下一站式数智化差旅服务平台。依托阿里巴巴生态强大的供应链及信息数字整合能力,帮助企业实现降本增效,增加合规透明度,全方位提升企业组织效率及员工差旅体验。其中AliGo阿里商旅的差旅助手,用户只需要输入确定的行程时间和地点,AliGo就会自动规划行程为用户推荐合适的交通方式,实现"出差事项收集 → 行程规划 → 一键下单"的完整业务闭环。

一、背景

阿里商旅早期通过workflow+单智能体的模式快速构建并成功上线了 AliGo 系统的第一个版本,然而,在实际使用过程中,我们发现这种模式存在技术瓶颈和架构局限性,亟需进行代码化升级。

(一) 痛点分析

1.单智能体模式的技术瓶颈

随着业务逻辑复杂度的持续攀升,Prompt Token 数量急剧增长,token 过多,就会导致大模型的注意力机制开始出现明显衰减,无法满足业务对高准确率的核心要求。具体表现为:

  • 准确性不足以点选需求为例,尽管经过百余次的 Prompt 调优,准确率仍仅维持在 50%左右。
  • 稳定性问题线上频繁出现"事项识别异常请重试"、"事项收集结论不输出"等核心问题,严重影响用户体验。

2.架构泛化能力不足

  • 协作机制缺失Agent 之间缺乏有效的通信机制,导致能力无法复用和协同,扩展性不足。
  • 规划能力薄弱系统缺乏统一的规划和协调中枢,只能处理单一意图识别,无法应对复杂的多意图融合场景。

3.上下文工程的初级阶段

  • 数据结构混杂未有效分离用户视角的对话记录与智能体所需的上下文信息,造成大模型理解负担。
  • 共享机制缺失缺乏合理的上下文分层机制,不同子智能体间无法实现上下文的有效共享和传递。

(二) 目标

为了解决上述核心痛点,我们启动了 AliGo 代码化架构升级,主要目标包括:

1. 选型一款适合商旅业务的AI框架解决多智能体间的高效通信、协同、能力复用。
2. 可有效提升大模型业务落地准确率期望通过优化上下文工程、 Prompt 工程等,显著提升事项收集准确率及用户体验
3. 可有效缓解线上顽疾问题期望通过重构核心业务逻辑流程,解决如:"事项收集异常请重试"、"事项总结卡片不出"等长期存在的稳定性问题。
4. 能支持灵活部署通过容器化、代码化能支持多系统、多模型的灵活部署,满足不同客户的部署需求。

二、方案

(一) 技术选型

1. 技术栈:Python or Java

结论:最终采用Python 写核心 AI 逻辑 + Java 写服务层 的混合模式。用 Python 实现 Agent 核心智能逻辑,包括 规划、记忆、LLM 调用;Java 构建外围高并发服务,比如前置的鉴权、MTop 对接、MCP 服务等。

编者:AliGo选型时间为2025年中旬,目前,AgentScope已经提供AgentScope Java,供Java开发者选择

2. 智能体框架选型:AgentScope vs LangGraph

团队对两个框架进行了多个场景的实操和调研,直观感受:对于基础能力,如 MCP 服务调用、与 Qwen LLM 集成时 AgentScope 开箱即用,LangGraph 要额外做一些适配工作等原因,最终选型AgentScope,原因如下:

  • 提供实时控制、中断处理、沙箱执行等企业级能力;
  • 内置AgentStudio 可视化工具,可以帮助我们获得透明开发体验,掌握智能体开发的全部生命周期;
  • 对 Qwen 系列模型原生支持;

3. Web 框架:FastAPI or Flask

Python 主流的 Web 框架主要是 FastAPI(新)和 Flask(老)。

结论:使用 FastAPI,原因如下:

  • 现代 Web 开发趋势,异步和类型安全是未来,异步处理需求较多;
  • 性能更好,FastAPI 的类型安全更有助于大型项目维护。

(二) Multi Agent架构

基于商旅业务特性,我们尝试了几种常见的 Multi Agent 架构模式。

结论:基于准确度与耗时的考量,我们采用了“Handoffs(交接模式)+ Routing(纯路由方式)”混合的模式,比如在行程规划、知识库查询的场景下采用 Routing 模式,在信息查询的场景下采用 Handoffs 模式,模式不固定可按需调整。

1. 架构图

以主规划智能体为核心,协调多个专业化子智能体协同工作,形成完整的差旅规划解决方案。

(三) 意图识别

意图识别智能体的职责如下:

1. 多意图识别和分类,融合上下文对模糊意图进行消歧。
2. 智能体调度决策,基于预定义的触发条件和业务规则,根据识别结果决定调用哪些子智能体,并输出结构化的调用决策。
3. query 改写,标准化用户口语化的 query 输入,补全上下文信息,提取和重组关键信息。
4. 显示推理,输出的两段式结构(推理过程 + JSON 决策),提升意图识别准确度。

主智能体+意图识别智能体实现-Level3 组件图

在系统运行过程中我们发现了一个性能问题:当用户有明确意图并通过界面操作触发功能时(如点击“为我规划行程”、“为我提申请”、“开始规划”),系统仍需经过大模型的完整分析流程,导致不必要的延迟。
我们重新审视了架构设计,提出了分层处理策略:将明确的用户意图通过快速通道直接路由,复杂语义理解仍交由 AI 智能分析。整体就是个"快慢车道"的设计:

  • 快车道:规则引擎处理那些固定套路的话,比如“为我规划行程”、“为我提申请”、“开始规划”这种,可以直接跳过意图分析直接路由到对应智能体
  • 慢车道:大模型分析处理那些复杂的、长句子、多意图的请求

第二阶段的主智能体+意图识别架构

核心的设计在于主智能体的动态 Prompt 生成机制。主智能体(main_plan_agent)并不是简单地调用规则引擎或 LLM 意图识别,而是根据规则引擎的 classify() 结果动态选择不同的处理路径:

def get_prompt_main_plan(user_input: str) -> str:    # 运行时决策:根据规则引擎结果动态选择Prompt模板    rule_match_result = classifier.classify(user_input)    if rule_match_result:        # 规则匹配成功:生成简单意图Prompt,直接路由到对应智能体        return _get_simple_intent_prompt(...)    else:        # 规则匹配失败:生成复杂意图Prompt,先调用intent_recognition_agent        return _get_complex_intent_prompt(...)

在项目初期样本量有限的情况下,为兼顾推理速度与准确率,可采用推理速度快的大模型(如 Qwen3-Next-80B-A3B-Instruct),通过显式输出其推理逻辑,有效提升意图识别的准确性。商旅应用场景:意图识别、日期时间转化。

(四) 实时思考链&流式输出

引入多智能体架构模式不可避免地增加了整体响应耗时,因此我们通过设计实时思考链动态展示各智能体的推理与协作过程,来缓解用户在等待最终结果时的焦虑感。

流式输出+实时思考链实现-Level3 组件图

1. ReActAgent

该智能体是一种基于“思考(Reason)-行动(Act)-观察(Observation)”循环架构的系统,深度融合大语言模型的推理能力与外部工具调用能力,通过交替生成推理轨迹与执行动作高效完成复杂任务。

在 AgentScope 中,其核心由两个抽象方法_reasoning_acting构成,并通过钩子机制(Hooks)在推理、执行等关键节点注入自定义逻辑,从而支持实时引导、并行工具调用、结构化输出等高级功能。

  • 推理过程(_reasoning):调用大语言模型生成下一步行动方案;支持流式输出以实时呈现思考链;并能自动将纯文本响应解析为结构化的工具调用格式。
  • 执行过程(_acting):支持工具的并行或串行调用;统一处理执行结果并持久化至内存上下文;同时提供中断响应与错误恢复机制。
observation = initial_user_inputhistory = []
while True:  # 调用大语言模型,基于当前观察和历史生成思考与行动  thought, action, action_input = llm_agent.reason_and_act(observation, history)
  if action == "Finish":    # 任务完成,输出最终答案    return thought  # 即最终回答  else:    # 执行工具调用    result = execute_tool(action, action_input)    # 将工具结果作为新的观察    observation = result    # 记录本轮推理与执行到历史    history.append((thought, action, result))

2. ReActAgent Hook

通过前置打印钩子函数(print hook),可 Agent 执行过程中实时拦截每一条生成的消息当捕获到tool_use类型消息时,自动调用add_tool_use,而检测到tool_result类型消息时,则触发add_tool_result,从而实现对工具调用及其结果的细粒度追踪与状态同步。

# 在_react_agent.py中的_acting方法实现了工具调用的实时返回async def _acting(self, tool_call: ToolUseBlock) -> Msg | None:  # 创建工具结果消息容器  tool_res_msg = Msg(...)
  try:    # 执行工具调用,返回AsyncGenerator    tool_res = await self.toolkit.call_tool_function(tool_call)
    response_msg = None    # 异步迭代处理工具响应块    async for chunk in tool_res:      # 实时更新工具结果      tool_res_msg.content[0]["output"] = chunk.content
      # 实时打印输出(除非是完成函数且成功执行)      if (tool_call["name"] != self.finish_function_name or          not chunk.metadata.get("success")):        await self.print(tool_res_msg, chunk.is_last)
        # 处理中断        if chunk.is_interrupted:          raise asyncio.CancelledError()
          # 返回最终响应消息          if (tool_call["name"] == self.finish_function_name and              chunk.metadata and chunk.metadata.get("success")):            response_msg = chunk.metadata.get("response_msg")
      return response_msg
[  {    "type""tool",    "id""{id}",    "name""query_tool",    "input": {      "question""什么是差标管控"    }  }]
[  {    "type""result",    "id""{id}",    "name""query_tool",    "output": [      {        "type""text",        "text""问题: 什么是差标管控\n\n搜索结果:\n\n1. 相似度: N/A\n\n\n在阿里商旅出差审批单中,预算与差标的区别如下:\n- 预算是指本次差旅出行的整体预算费用。\n- 差标是指本次差旅形成中,出行人乘坐飞机以及入住酒店等差旅类目的费用标准。\n\n"      }    ]  }]
ReActAgent.register_class_hook('print''task_print_hook', task_print_hook)

3. TaskCollector

TaskCollector 是一个自定义任务状态收集器,核心职责是统一管理思考链状态信息。其主要功能包括:管理任务的完整生命周期(PENDING、DOING、DONE、FAILED)、维护任务间的层级关系、通过发布-订阅模式实时推送状态更新,以及管理任务队列与订阅者列表。

关键方法涵盖:

  • add_use() 用于添加工具调用任务。
  • add_result() 用于记录工具执行结果。
  • subscribe()/unsubscribe() 实现灵活的订阅管理机制。

4. 流式输出层

该模块的核心职责包括:

1. 创建 TaskCollector 实例以统一管理任务状态。
2. 订阅任务状态更新,具体为监听 task_update 类型消息以实时渲染思考链,并监听 text 类型消息以展示最终回答
3. 处理智能体执行结果,包括收集最终回答内容维护卡片数据与任务的映射关系
4. 最后,构建结构化的最终响应生成符合 SSE 格式的输出流

5. 一句话经验

基于 ReAct 智能体在调用工具时暴露的 hook,可构建实时推理链(Chain-of-Thought),通过逐步展示智能体的思考与行动过程,有效缓解用户在等待最终结果时的焦虑感。

(五) 上下文工程

核心上下文技术架构:

  • 全局上下文管理
  • 会话记忆管理
  • 动态 Prompt(状态机)
  • 工具注册管理
上下文工程-Level3 组件图

1. 记忆架构设计

通过出入栈的方式维护智能体调用链的层级关系以及共享 sessionId 来实现模块间的记忆共享。主要解决以下三个核心问题:

1. 模块独立性:保持各模块的独立性,便于维护和扩展。
2. 模块间记忆共享:不同智能体模块(如审批记忆和事项收集记忆)之间的数据共享。
3. 完整的执行链路追踪:提供完整的请求追踪和上下文管理。
会话记忆架构-Level3 组件图

2. 数据表关系

  • 消息存储表:用于存储详细的消息记录;
  • 会话管理表:用于管理会话的基本信息和会话描述;
  • 对话记录表:用于存储精简的对话记录,主要记录用户查询和智能体的最终回答;

3. 记忆共享

为确保智能体(Agent)的独立性与数据隔离,系统默认采用各智能体独立管理自身对话历史的设计;然而,在复杂的多智能体协作场景中,用户体验的连续性至关重要。为此,我们引入上下文共享机制,对高相关性的智能体动态开放必要的上下文信息,从而实现对话的无缝流转与状态同步,在保障隔离性的同时兼顾协作效率与体验一致性。

记忆分层与共享-Level3 组件图

4. 一句话经验

AgentScope 框架提供了标准化的上下文格式,在技术实现上以业务关系驱动智能体间的记忆复用,并基于最小权限原则动态供给各智能体所需的上下文信息,在有效降低上下文规模的同时,显著提升模型推理的准确度与效率

(六) Prompt工程(工程与智能体结合)

我们此前将业务流程、规则及工具调用规范全部嵌入 Prompt 中,虽保证了整体性,但其结构本质上是一个线性的“工作流程说明书”,难以适配用户非线性、动态变化的对话需求。同时,要求模型在全量业务规则基础上实时推理用户当前状态,对其能力要求会非常高。

为此,我们转而采用动态 Prompt 组装机制本质上为 AI 构建了一个状态机通过工程手段结合自然语言理解程序化状态控制,精准识别用户所处的对话阶段,并将模型注意力聚焦于当前主链路,从而打造出一个鲁棒性更强、更智能的对话 Agent

事项收集智能体(工程与智能体结合实践)-Level3 组件图

一句话经验

在工程实践中,应协同模型共同确定当前及下一轮对话的注意力焦点,并据此明确业务边界;在此可控范围内交由 AI 自主处理逻辑细节,从而在工程确定性与 AI 灵活性之间实现有效平衡

三、周边生态

(一) 知识库

在 AliGo 多智能体架构中,为了给各个企业提供内部知识检索能力,也为了支持差旅场景的专业问答(差旅政策、申请单规则、企业制度等),我们构建了一套完整的企业级知识库系统,具备以下核心能力:

1. 支持 Aligo 快速集成:通过标准化 API 接口,让 RAG 子智能体能够快速接入知识库检索能力。
2. 图文混排文档处理:支持差旅政策等复杂文档的图片识别、切分与渲染,保证检索结果的完整性。
3. 支持本地化部署:满足企业客户数据安全和私有化部署需求,提供完整的容器化部署方案。
4. 多企业隔离:支持千人千面场景,不同企业请求自动映射到对应的企业知识库。

1. 技术选型

一、方案对比

我们调研了市面上的两种成熟的方案:

二、选型结论

最终选择 MaxKB 作为基础框架,主要原因:

1. 技术栈匹配:Python + PostgreSQL,与 Aligo 技术栈一致
2. 功能完善且符合诉求:支持文档解析、向量检索、多模型对接
3. 快速落地:开源成熟,二次开发成本低
4. 社区活跃:GitHub 19k+ stars,持续维护

2. 架构设计

知识库架构图

(二) 观测

在 AliGo 多智能体系统迭代过程中,我们面临着三大核心观测挑战:

1. 问题定位困难:多智能体调用链路复杂,涉及主规划、意图识别、行程规划、信息查询、RAG知识库等10+个智能体的协作。当用户反馈问题时,难以快速定位是哪个智能体、哪次LLM调用或工具调用出现了问题。
2. 性能优化缺乏数据支撑:无法直观看到每个智能体的响应时间、Token消耗、工具调用频次等关键指标,难以进行针对性技术优化。
3. 效果评估缺少量化指标:迭代过程中缺乏完整的对话日志和结构化数据,无法进行A/B测试和效果对比,难以量化评估优化效果。

为了解决上述痛点,我们尝试构建完整的AI应用可观测性体系,核心目标包括:

1. 全链路追踪:从用户输入到最终输出,追踪完整的智能体调用链路,包括LLM调用、工具使用、记忆管理等所有环节。
2. 多维度观测:支持 Trace(单次对话)、Session(会话)、User(用户) 三个维度的日志查询和分析。
3. 打通观测-评测流程:通过结构化的追踪数据,为测评平台提供标准化输入,实现观测与评测的闭环。
4. 支持问题快速定位:通过可视化的调用链路和详细的输入输出日志,快速定位线上问题根因。

1. 技术选型

在 LLM 应用开发和监控领域,主要的可观测性平台是 Langfuse(开源)和 LangSmith(商业)。

选型结论经综合评估,Langfuse 在开源透明数据安全成本控制可扩展性方面具有更具优势,完全满足商旅 Saas + 本地化部署的诉求,是构建可控、可靠的 LLM 应用监控平台的最佳选择。

2. 架构设计

观测平台架构图

(三) 评测

在阿里商旅行程规划系统中,AI测评系统作为质量保障的核心基础设施,为多智能体系统的输出结果提供自动化、智能化的评测能力。随着智能体能力的不断迭代升级,我们需要一套完整的测评体系来确保每次发布的质量稳定性, 因此构建了这套AI测评系统,具备以下核心能力:

1. 智能化评测:基于通义千问大模型的自动评分能力,主要从准确性和相关性两个大的维度对AI智能体输出进行评估。
2. 完整的测试生命周期管理:支持测试任务、测试用例、测试数据的全流程管理,实现测试资产的沉淀和复用。
3. 可视化报告分析:自动生成详细的测试报告,包含多维度评分统计、成功率分析、问题归因等,支持版本对比。

1. 架构设计

测评平台架构图

四、效果

事项收集准确率从原来的50%提升到90%+
  • 升级前不可解决的 bug 列表,通过版本升级100%解决。
  • 试用日志从 12 月代码化版本上线后,体感和指标都逐步变好。
  • 有幸获得了 InfoQ 2025 年度 AI Agent 最具生产力产品/应用/平台。
  • 阿里商旅 AI 解决方案有幸荣获量子位颁发的 2025 人工智能年度杰出解决方案奖认可。

五、未来规划

传统的迭代依赖人工复盘和手动调优的方式效率低、响应慢,难以支撑系统持续进化。后续,我们会持续通过冷启动优化、主动发现异常、引入 Prompt 优化智能体等构建一套多智能体自进化(Self-Evolving Agent System)方案,驱动阿里商旅向更智能、更敏捷、更可靠的方向升级。

AgentScope 是通义实验室开源的企业级智能体开发框架,提供智能体编排、工具调用与评测等核心能力,并原生支持智能体微调,助力开发者快速搭建企业级 Agent 系统。目前在GitHub已经有16k的star,欢迎大家关注使用AgentScope探索并沉淀多智能体最佳实践。 https://github.com/agentscope-ai

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询