微信扫码
添加专属顾问
我要投稿
阿里商旅借助AgentScope框架实现多智能体协同,将差旅助手准确率提升至90%,打造智能差旅新标杆。核心内容: 1. 单智能体模式面临的三大技术瓶颈 2. AgentScope框架带来的架构革新 3. 混合编程模式的技术实现路径
阿里商旅是阿里巴巴旗下一站式数智化差旅服务平台。依托阿里巴巴生态强大的供应链及信息数字整合能力,帮助企业实现降本增效,增加合规透明度,全方位提升企业组织效率及员工差旅体验。其中AliGo阿里商旅的差旅助手,用户只需要输入确定的行程时间和地点,AliGo就会自动规划行程为用户推荐合适的交通方式,实现"出差事项收集 → 行程规划 → 一键下单"的完整业务闭环。
一、背景
阿里商旅早期通过workflow+单智能体的模式快速构建并成功上线了 AliGo 系统的第一个版本,然而,在实际使用过程中,我们发现这种模式存在技术瓶颈和架构局限性,亟需进行代码化升级。
(一) 痛点分析
1.单智能体模式的技术瓶颈
随着业务逻辑复杂度的持续攀升,Prompt Token 数量急剧增长,token 过多,就会导致大模型的注意力机制开始出现明显衰减,无法满足业务对高准确率的核心要求。具体表现为:
2.架构泛化能力不足
3.上下文工程的初级阶段
(二) 目标
为了解决上述核心痛点,我们启动了 AliGo 代码化架构升级,主要目标包括:
二、方案
(一) 技术选型
结论:最终采用“Python 写核心 AI 逻辑 + Java 写服务层” 的混合模式。用 Python 实现 Agent 核心智能逻辑,包括 规划、记忆、LLM 调用;Java 构建外围高并发服务,比如前置的鉴权、MTop 对接、MCP 服务等。
编者:AliGo选型时间为2025年中旬,目前,AgentScope已经提供AgentScope Java,供Java开发者选择
团队对两个框架进行了多个场景的实操和调研,直观感受:对于基础能力,如 MCP 服务调用、与 Qwen LLM 集成时 AgentScope 开箱即用,LangGraph 要额外做一些适配工作等原因,最终选型AgentScope,原因如下:
Python 主流的 Web 框架主要是 FastAPI(新)和 Flask(老)。
结论:使用 FastAPI,原因如下:
(二) Multi Agent架构
基于商旅业务特性,我们尝试了几种常见的 Multi Agent 架构模式。
结论:基于准确度与耗时的考量,我们采用了“Handoffs(交接模式)+ Routing(纯路由方式)”混合的模式,比如在行程规划、知识库查询的场景下采用 Routing 模式,在信息查询的场景下采用 Handoffs 模式,模式不固定可按需调整。
以主规划智能体为核心,协调多个专业化子智能体协同工作,形成完整的差旅规划解决方案。
(三) 意图识别
意图识别智能体的职责如下:
主智能体+意图识别智能体实现-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_agentreturn _get_complex_intent_prompt(...)
在项目初期样本量有限的情况下,为兼顾推理速度与准确率,可采用推理速度快的大模型(如 Qwen3-Next-80B-A3B-Instruct),通过显式输出其推理逻辑,有效提升意图识别的准确性。商旅应用场景:意图识别、日期时间转化。
(四) 实时思考链&流式输出
引入多智能体架构模式不可避免地增加了整体响应耗时,因此我们通过设计实时思考链动态展示各智能体的推理与协作过程,来缓解用户在等待最终结果时的焦虑感。
该智能体是一种基于“思考(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))
通过前置打印钩子函数(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:# 执行工具调用,返回AsyncGeneratortool_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 ornot 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 andchunk.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)TaskCollector 是一个自定义任务状态收集器,核心职责是统一管理思考链状态信息。其主要功能包括:管理任务的完整生命周期(PENDING、DOING、DONE、FAILED)、维护任务间的层级关系、通过发布-订阅模式实时推送状态更新,以及管理任务队列与订阅者列表。
关键方法涵盖:
add_use() 用于添加工具调用任务。add_result() 用于记录工具执行结果。subscribe()/unsubscribe() 实现灵活的订阅管理机制。该模块的核心职责包括:
TaskCollector 实例以统一管理任务状态。task_update 类型消息以实时渲染思考链,并监听 text 类型消息以展示最终回答。基于 ReAct 智能体在调用工具时暴露的 hook,可构建实时推理链(Chain-of-Thought),通过逐步展示智能体的思考与行动过程,有效缓解用户在等待最终结果时的焦虑感。
(五) 上下文工程
核心上下文技术架构:
通过出入栈的方式维护智能体调用链的层级关系以及共享 sessionId 来实现模块间的记忆共享。主要解决以下三个核心问题:
为确保智能体(Agent)的独立性与数据隔离,系统默认采用各智能体独立管理自身对话历史的设计;然而,在复杂的多智能体协作场景中,用户体验的连续性至关重要。为此,我们引入上下文共享机制,对高相关性的智能体动态开放必要的上下文信息,从而实现对话的无缝流转与状态同步,在保障隔离性的同时兼顾协作效率与体验一致性。
AgentScope 框架提供了标准化的上下文格式,在技术实现上以业务关系驱动智能体间的记忆复用,并基于最小权限原则动态供给各智能体所需的上下文信息,在有效降低上下文规模的同时,显著提升模型推理的准确度与效率。
(六) Prompt工程(工程与智能体结合)
我们此前将业务流程、规则及工具调用规范全部嵌入 Prompt 中,虽保证了整体性,但其结构本质上是一个线性的“工作流程说明书”,难以适配用户非线性、动态变化的对话需求。同时,要求模型在全量业务规则基础上实时推理用户当前状态,对其能力要求会非常高。
为此,我们转而采用动态 Prompt 组装机制,本质上为 AI 构建了一个状态机:通过工程手段结合自然语言理解与程序化状态控制,精准识别用户所处的对话阶段,并将模型注意力聚焦于当前主链路,从而打造出一个鲁棒性更强、更智能的对话 Agent。
在工程实践中,应协同模型共同确定当前及下一轮对话的注意力焦点,并据此明确业务边界;在此可控范围内,交由 AI 自主处理逻辑细节,从而在工程确定性与 AI 灵活性之间实现有效平衡。
三、周边生态
(一) 知识库
在 AliGo 多智能体架构中,为了给各个企业提供内部知识检索能力,也为了支持差旅场景的专业问答(差旅政策、申请单规则、企业制度等),我们构建了一套完整的企业级知识库系统,具备以下核心能力:
我们调研了市面上的两种成熟的方案:
最终选择 MaxKB 作为基础框架,主要原因:
(二) 观测
在 AliGo 多智能体系统迭代过程中,我们面临着三大核心观测挑战:
为了解决上述痛点,我们尝试构建完整的AI应用可观测性体系,核心目标包括:
在 LLM 应用开发和监控领域,主要的可观测性平台是 Langfuse(开源)和 LangSmith(商业)。
选型结论:经综合评估,Langfuse 在开源透明、数据安全、成本控制和可扩展性方面具有更具优势,完全满足商旅 Saas + 本地化部署的诉求,是构建可控、可靠的 LLM 应用监控平台的最佳选择。
(三) 评测
在阿里商旅行程规划系统中,AI测评系统作为质量保障的核心基础设施,为多智能体系统的输出结果提供自动化、智能化的评测能力。随着智能体能力的不断迭代升级,我们需要一套完整的测评体系来确保每次发布的质量稳定性, 因此构建了这套AI测评系统,具备以下核心能力:
四、效果
五、未来规划
传统的迭代依赖人工复盘和手动调优的方式效率低、响应慢,难以支撑系统持续进化。后续,我们会持续通过冷启动优化、主动发现异常、引入 Prompt 优化智能体等构建一套多智能体自进化(Self-Evolving Agent System)方案,驱动阿里商旅向更智能、更敏捷、更可靠的方向升级。
AgentScope 是通义实验室开源的企业级智能体开发框架,提供智能体编排、工具调用与评测等核心能力,并原生支持智能体微调,助力开发者快速搭建企业级 Agent 系统。目前在GitHub已经有16k的star,欢迎大家关注使用AgentScope探索并沉淀多智能体最佳实践。 https://github.com/agentscope-ai
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-14
让OpenClaw安全上岗,火山引擎发布业界首个AI助手安全方案
2026-02-12
OpenClaw一周实战:10个人的真实使用场景
2026-02-11
快手:万人组织AI研发范式跃迁之路
2026-02-10
我给OpenClaw装上了任务系统,像人一样领任务干活
2026-02-09
这个 AI 操纵手机的 GitHub 项目,支持 OpenClaw 干不了的活。
2026-02-06
OpenClaw 云端部署全攻略:七大平台深度对比与实战指南
2026-02-06
你的AI同事真的要来了!刚刚,OpenAI推出全新平台Frontier:主打企业Agent落地
2026-02-06
爆火Browser-Use实战:让AI替你操作浏览器,爬虫/自动化填表一行代码搞定
2026-01-01
2026-02-05
2026-02-06
2026-01-05
2025-12-23
2025-12-31
2025-12-18
2025-12-30
2026-01-13
2025-11-30
2026-02-06
2026-01-27
2026-01-08
2025-12-29
2025-12-28
2025-12-21
2025-12-16
2025-08-20