用 LangChain 或 AutoGen 搭过智能体的人,换到 AgentScope 会有种奇怪的感觉:中间层怎么这么少。这是一个开源 Python 框架,用来构建能推理、能调用工具、能记住上下文、还能互相协作的大模型智能体。它的取向很明确——透明优先于魔法,每一条提示词、每一条消息、每一次工具调用,你都能看见,也能改。
项目来自阿里巴巴通义实验室。2025 年 8 月的一篇 arXiv 论文描述了它的 1.0 版本,围绕异步执行、以及智能体与环境之间基于工具的交互做了重构。目前它也有 Java 版本,但这里只谈 Python。
上手门槛不高:需要 Python 3.10 或更新版本,从 PyPI 安装即可,pip install agentscope,想要可选附加组件就用 pip install "agentscope [ full ] "。
第一个智能体怎么跑起来
一段脚本就能在 OpenAI 模型上搭出一个 ReAct 智能体,给它配一个工具,然后在终端里开一个对话循环,输入 exit 退出。核心组件各司其职:模型和格式化器负责与模型提供方对话,内存保存上下文,工具箱暴露函数,智能体负责跑循环。
问它五个数的平均值,就能看到整个循环怎么工作:智能体对请求做推理,决定调用 execute_python_code,读取结果,然后回复。每一步都打印到控制台,发给了模型什么、模型返回了什么,一目了然。
换一家模型提供方,只需要改模型和格式化器两处。官方快速上手用的是 DashScopeChatModel 配 DashScopeChatFormatter;本地模型走 Ollama,也有自己的一对组合。
工具就是带类型标注的普通函数
写一个工具不需要继承什么基类。一个带类型提示和文档字符串的普通 Python 函数就够了,工具箱会读取这两样东西,构建出模型看到的 JSON schema ——所以写得清楚的文档字符串,实际上就是你提示词的一部分。函数返回一个 ToolResponse,里面装着内容块。
工具可以是同步的,也可以是异步的,能流式返回部分结果,在模型一次请求多个工具时还能并行执行。工具箱支持分组,任务变化时,智能体可以整组开关工具。
代码库之外的工具,AgentScope 支持模型上下文协议(MCP)。创建一个 MCP 客户端,比如面向可流式 HTTP 服务的 HttpStatelessClient,注册到工具箱上,它的工具就会和本地函数一起出现在智能体面前。
多智能体靠两件事
一是管道,决定轮次顺序;二是消息中枢,决定谁听到什么。
sequential_pipeline:消息依次穿过多个智能体,每个的输出成为下一个的输入。起草、审阅、编辑按固定顺序走,就是这种用法。
fanout_pipeline:同一条消息发给多个智能体,收集各自的回复。
MsgHub:一个共享房间,每个参与者的回复自动写进其他人的记忆,群聊、辩论、投票不用手工接线。房间开着的时候,参与者可以随时增删。
因为智能体本质上就是一个你能调用的对象,剩下的编排交给普通 Python 控制流就行。一个循环、一个 if、或者 asyncio.gather,往往就够了。
继续往下建之前的几条提醒
每个会话一个智能体实例。智能体和工具箱都持有状态,不要跨并发用户共享同一个实例,每个会话新建一个。
把文档字符串当提示词写。工具描述含糊,是智能体选错工具或传错参数最常见的原因。
用钩子,别急着写子类。ReActAgent 在推理和行动步骤周围暴露了钩子,适合做日志、护栏和指标。
下游系统要字段而不是散文时,直接要结构化输出。传一个 Pydantic 模型,智能体返回的就是校验过的数据。
看着它跑。AgentScope Studio 提供消息和工具调用的可视化追踪,一旦涉及多个智能体,这比读控制台日志强得多。
AgentScope 的基础一个下午就能过完:消息承载内容,模型和格式化器对接提供方,内存保存上下文,工具箱暴露函数,智能体跑循环;管道和 MsgHub 把这套东西扩展到智能体团队。建议的路径是先跑上面那个单 ReAct 智能体,再从自己的工作里加一个真实工具,然后试一个双智能体审阅管道——生产级智能体应用需要的大部分东西,这条路径都覆盖到了。

