轻松构建可信的智能代理:AgentScope框架介绍

什么是 AgentScope?

AgentScope 是一个生产就绪的、易于使用的代理框架,它提供了与不断增强的模型能力相兼容的基本抽象,并且内置支持微调功能。我们为越来越具代理性的语言模型(LLMs)设计这种框架,方法是利用模型的推理和工具使用能力,而不是通过严格的提示和有偏见的协调来限制它们。

为什么选择 AgentScope?

  • 简单易用:只需 5 分钟即可开始构建您的代理,提供内置的 ReAct 代理、工具、技能、人类干预、内存、规划、实时语音、评估以及模型微调等功能。
  • 可扩展性:大量的生态系统集成功能,支持工具、内存和可观察性;内置的 MCP 和 A2A 支持;灵活的多代理协调和工作流信息传递。
  • 生产就绪:可以在本地、云中无服务器部署或者在您的 K8s 集群上运行代理,支持的 OTel 功能。

AgentScope 生态系统

快速入门

安装

AgentScope 需要Python 3.10或更高版本。

从 PyPI 安装
pipinstallagentscope

或者使用uv安装:

uv pipinstallagentscope
从源代码安装
# 从 GitHub 克隆源代码gitclone-bmain https://github.com/agentscope-ai/agentscope.git# 以可编辑模式安装包cdagentscope pipinstall-e.

示例

Hello AgentScope!

开始与一个名为 “Friday” 的 ReAct 代理的对话 🤖!

fromagentscope.agentimportReActAgent,UserAgentfromagentscope.modelimportDashScopeChatModelfromagentscope.formatterimportDashScopeChatFormatterfromagentscope.memoryimportInMemoryMemoryfromagentscope.toolimportToolkit,execute_python_code,execute_shell_commandimportos,asyncioasyncdefmain():toolkit=Toolkit()toolkit.register_tool_function(execute_python_code)toolkit.register_tool_function(execute_shell_command)agent=ReActAgent(name="Friday",sys_prompt="You're a helpful assistant named Friday.",model=DashScopeChatModel(model_name="qwen-max",api_key=os.environ["DASHSCOPE_API_KEY"],stream=True,),memory=InMemoryMemory(),formatter=DashScopeChatFormatter(),toolkit=toolkit,)user=UserAgent(name="user")msg=NonewhileTrue:msg=awaitagent(msg)msg=awaituser(msg)ifmsg.get_text_content()=="exit":breakasyncio.run(main())

语音代理

创建一个支持语音的 ReAct 代理,可以理解并以语音回应,甚至可以通过语音互动进行多代理的狼人游戏。

实时语音代理

构建一个具有 Web 界面的实时语音代理,可以通过语音输入和输出与用户互动。

实时聊天机器人示例 | 实时多代理示例

人工干预

支持 ReActAgent 中的实时干预:可以通过取消在实时中中断对话,并通过健壮的记忆保留无缝恢复。

灵活的 MCP 使用

使用单个 MCP 工具作为本地可调用函数来组合工具包或包装成更复杂的工具。

fromagentscope.mcpimportHttpStatelessClientfromagentscope.toolimportToolkitimportosasyncdeffine_grained_mcp_control():# 初始化 MCP 客户端client=HttpStatelessClient(name="gaode_mcp",transport="streamable_http",url=f"https://mcp.amap.com/mcp?key={os.environ['GAODE_API_KEY']}",)# 将 MCP 工具作为**本地可调用函数**,并随处使用func=awaitclient.get_callable_function(func_name="maps_geo")# 选项 1:直接调用awaitfunc(address="天安门广场",city="北京")# 选项 2:作为工具传递给代理toolkit=Toolkit()toolkit.register_tool_function(func)# ...# 选项 3:包装成更复杂的工具# ...

代理化强化学习

通过与强化学习的集成无缝训练代理应用程序。我们还准备了多个示例项目,涵盖各种场景:

示例描述模型训练结果
数学代理调整数学求解代理的多步骤推理能力。Qwen3-0.6B准确率:75% → 85%
冰冻湖训练一个代理在冰冻湖环境中导航。Qwen2.5-3B-Instruct成功率:15% → 86%
学习提问使用 LLM 作为裁判的调整代理,获得自动反馈。Qwen2.5-7B-Instruct准确率:47% → 92%
电子邮件搜索提高工具使用能力,免标签的数据真值。Qwen3-4B-Instruct-2507准确率:60%
狼人游戏训练代理进行战略多代理游戏互动。Qwen2.5-7B-Instruct狼人的胜率:50% → 80%
数据增强生成合成训练数据,以提升调整结果。Qwen3-0.6BAIME-24 准确率:20% → 60%

多代理工作流

AgentScope 提供MsgHub和管道,简化多代理之间的对话,提供高效的消息路由和无缝的信息共享。

fromagentscope.pipelineimportMsgHub,sequential_pipelinefromagentscope.messageimportMsgimportasyncioasyncdefmulti_agent_conversation():# 创建代理agent1=...agent2=...agent3=...agent4=...# 创建消息中心以管理多代理对话asyncwithMsgHub(participants=[agent1,agent2,agent3],announcement=Msg("主持人","请自我介绍。","assistant"))ashub:# 顺序发言awaitsequential_pipeline([agent1,agent2,agent3])# 动态管理参与者hub.add(agent4)hub.delete(agent3)awaithub.broadcast(Msg("主持人","再见!","assistant"))asyncio.run(multi_agent_conversation())

更多示例与功能

在以下方面提供多个示例与功能:

  • 功能性:如 MCP 和 长时记忆。
  • 代理:如 ReAct 代理 和 语音代理。
  • 游戏:如 九人狼人游戏。
  • 工作流:如 多代理辩论。

同类项目介绍

在构建智能代理和多代理系统的领域,AgentScope 并不是唯一的选择。我们还可以关注其他一些优秀的开源项目:

  1. Haystack:专注于构建搜索和问答系统,支持多种后端和增强功能。
  2. LangChain:提供强大的工具,用于创建应用程序,通过大语言模型与外部数据和API进行交互。
  3. Rasa:一个开源的机器学习框架,专注于构建语音助手和聊天机器人,具有强大的对话管理功能。

这些项目各有特点,针对不同的使用场景和需求,开发者可以根据自己的需求选择合适的框架。通过结合这些工具,开发者可以创建出更加强大和灵活的代理系统。