
答疑机器人实践:AgentScope多智能体带你玩转多源召回
AgentScope是一款通义实验室开源的multi-agent编程框架。它为多智能体应用开发提供了很多方便,包括内置智能体、工具、容错处理、可视化工作流编排的workstation和全流程监测的st
01.前言
AgentScope是一款通义实验室开源的multi-agent编程框架。它为多智能体应用开发提供了很多方便,包括内置智能体、工具、容错处理、可视化工作流编排的workstation和全流程监测的studio。AgentScope在过去的一年受到了不少关注;作为脚手架,它也赋能了不少已经落地的应用,从检索增强生成类的问答,到自动化编程(https://doc.agentscope.io/tutorial/swe.html)。
如果我们聚焦到检索增强生成类的应用,当前一个难点还是当有多召回回路(或者说多信息源)的时候如何动态且高效地选择信息源帮助回答。近期,我们在AgentScope仓库里开源了一个针对多源检索增强的multi-agent子应用、为社区提供了我们自己的方案:多智能体系统KIMAs。
KIMAs在过去一年的时间里,因为它的可迁移性、可靠性,已经成功助力多个项目,包括AgenScope的答疑机器人、魔搭平台答疑应用以及去年奥运期间微博上的观赛搭子。今天我们就一起来看看如何利用KIMAs可以搭建起一个多源召回的问答服务吧!
02.上手
KIMAs的代码开源在AgentScope的GitHub仓库中(https://github.com/modelscope/agentscope/tree/main/applications/multisource_rag_app)。KIMAs主要是由python代码和配置文件(主要在src/config
文件夹下)组成。python代码提供了整个系统的骨架,主要包括了如何各个智能体内部的功能、路由算法和信息流处理等关键;而配置文件则为后续将该系统迁移到不同问答场景提供可很高的灵活性,包括了各个智能体的prompt和它们需要处理的的知识源,以及工作流的一些微调。
开源的代码配合其中的配置可以搭建一套针对AgentScope自身的问答系统。基于KIMAs搭建答疑机器人服务会有几个要点:准备好运行环境、准备好知识材料、启动服务以及服务透出。下面,我们会从开源代码的内置场景,AgentScope仓库答疑出发,先介绍如何跑通从运行环境搭建到服务透出的基础操作;然后我们也会简单介绍后续可以如何调整配置文件使系统适应到不同的答疑场景中。
准备
作为前期准备,我们需要运行在agentscope/applications/multisource_rag_app
目录下安装KIMAs额外需要的一个依赖pip install -r requirements.txt
。另外,为了最大化应用的运行效率,这个应用用到DashScope提供的异步模型调用API,所以也需要大家提前准备好API key,并且添加到环境变量中export DASHSCOPE_API_KEY='your_dash_key'
。最后,我们会假设有一份直接从Github 上clone的AgentScope仓库作为资料源,路径位于~/agentscope_clean
。
启动服务
之后,我们切换到 src/
目录下,运行启动服务的脚本as_scripts/setup_server.sh
,这样这个问答服务就能启动起来了。作为第一次的启动,可能会需要一定的等待时间让系统处理文件以及生成便于检索的向量。
服务透出
开源代码中附带了一个基于gradio改进的前端界面。要启动这个前端界面并且连接到后端服务器,我们需要用你的ip地址(本地是127.0.0.1)和端口(默认是6009)设定好as_scripts/setup_gradio.sh
中的两个环境变量MODEL_SERVICE_URL
和FEEDBACK_SERVICE_URL
。之后,运行as_scripts/setup_gradio.sh
就可以在本地打开一个gradio前端界面了。这个前端界面提供了一个让用户输入评价的系统,方便应用开发者在测试阶段收集反馈。
迁移到其他知识源
如果大家想基于KIMAs用上自己的知识库/信息源,可以参考src/configs/as_config/as_knowledge_configs/knowledge_config.json
。这个配置文件中,每个knowledge_id
对应一个知识源;input_dir
参数是各个信息源文件夹的原始路径; required_exts
则是目标文件的后缀。如果想要更加定制化的信息预处理,大家可以设定自己需要的chunk_size
chunk_overlap
,以及基于llamaindex预处理机制的transformations
等参数。
之后,我们需要更新智能体们的设定(src/configs/as_config/as_agent_configs/agent_config_dict.json
)。其中负责检索知识的智能体类型是LlamaIndexAgent
,我们需要用我们新的knowledge_id
来更新它们的knowledge_id_list
以及sys_prompt
。
当这些都调整完之后,我们就可以重复我们启动服务的步骤,部署一个属于你自己的答疑服务了!
03.更多精彩
上文我们简单介绍了一下如何使用和迁移KIMAs,但如果大家对其中多源召回的技术细节感兴趣,可以参考我们的技术报告(https://arxiv.org/pdf/2502.09596v1)。
除此之外,AgentScope近期也会在框架层面有一些重要更新,包括对MCP(特别是开源MCP server)的支持和拖拉拽零代码工作流的改版。还敬请大家关注!
点击链接,即可跳转GitHub代码库~
https://github.com/modelscope/agentscope/tree/main/applications/multisource_rag_app
更多推荐
所有评论(0)