
最近折腾了阿里达摩院开源的 AgentScope 2.0,踩了几个坑,这篇把问题说清楚。
现在的 Agent 框架市场是真的卷。LangChain 搞链式编排,AutoGen 搞多 Agent 对话,CrewAI 搞角色协作。AgentScope 的差异化在哪?它的设计理念是:当大语言模型(LLM)的推理能力足够强时,框架应该往后退,而不是用僵化的流程图去限制模型的决策空间。
AgentScope 2.0 给这个理念配套了生产级基础设施:事件系统、权限控制、多租户隔离、沙箱执行、中间件钩子。目标不是跑个 Demo 给你看,是能直接上线的那种。
AgentScope 2.0 是一个生产级 Agent 框架——"一个包含必要抽象的 Agent 开发平台,设计目标是适配日益增强的模型能力,内置生产环境支持。"
它解决的核心问题:传统 Agent 框架用僵化的流程图和固执的提示词模板约束 LLM。随着 LLM 推理能力快速提升,这种约束反而成了瓶颈。AgentScope 转向"让模型原生的推理和工具调用能力驱动 Agent 行为"——框架提供生产基础设施,而不是执行路径约束。
AgentScope 2.0 的最小工作单元是 Agent,通过组合各种系统来扩展:
import asyncio
from agentscope import Agent, Toolkit, DashScopeChatModel, DashScopeCredential
from agentscope.tools import Bash, Grep, Glob, Read, Write
from agentscope.message import UserMsg # 定义一个工具包
toolkit = Toolkit(tools=[Bash(), Grep(), Glob(), Read(), Write()]) # 创建一个 Agent
agent = Agent( name="code-assistant", system_prompt="你是一个代码助手,帮助用户分析和修改代码库。", model=DashScopeChatModel( credential=DashScopeCredential(api_key="your_key"), model="qwen3.6-plus" ), toolkit=toolkit
) # 流式推理循环
async def run(): async for evt in agent.reply_stream(UserMsg("user", "分析一下这个代码库的结构")): match evt.type: case EventType.TEXT_BLOCK_DELTA: print(evt.delta, end="", flush=True) case EventType.TOOL_CALL_START: print(f"\n[工具调用] {evt.tool_name}") asyncio.run(run()) 1. 事件系统
统一事件总线,连接 Agent 推理过程的所有阶段:
EventType.REPLY_START # Agent 开始响应
EventType.MODEL_CALL_START # 模型调用开始
EventType.TEXT_BLOCK_START # 文本块开始
EventType.TEXT_BLOCK_DELTA # 流式文本增量
EventType.TEXT_BLOCK_END # 文本块完成
EventType.TOOL_CALL_START # 工具调用开始
EventType.TOOL_CALL_END # 工具调用完成
人在回路(Human-in-the-loop)工作流通过事件系统挂载:在特定事件上暂停 Agent,等待人工确认后恢复执行。
2. 权限系统
细粒度控制哪些工具调用需要审批、哪些自动执行:
from agentscope.permission import PermissionConfig, ApprovalMode config = PermissionConfig( # 文件写入需要确认
Write: ApprovalMode.ALWAYS, # Shell 执行需要确认
Bash: ApprovalMode.ALWAYS, # 读取操作自动放行
Read: ApprovalMode.NEVER, # 费用超过 0.10 元需要确认
default_cost_threshold=0.10
) 权限绕过模式:用于测试或可信场景,禁用所有审批,让 Agent 完全自主运行。
3. 多租户 / 会话隔离
FastAPI 服务层提供生产级的租户和会话隔离:
4. 工作空间 / 沙箱执行
三种后端选项用于隔离的工具执行:
| 后端 | 适用场景 |
|---|---|
| Local | 开发和测试,最快 |
| Docker | 生产环境,依赖隔离 |
| E2B | 云沙箱,最高安全性 |
5. 中间件系统
在不修改核心 Agent 代码的情况下,向 Agent 的推理-执行循环中插入可组合的钩子:
from agentscope.middleware import LoggingMiddleware, GuardrailMiddleware agent = Agent( ... middlewares=[ LoggingMiddleware(log_tool_calls=True), GuardrailMiddleware(blocked_patterns=["rm -rf", "DROP TABLE"]), ]
) Leader-Worker 模式:Leader Agent 分解任务并通过内置的团队工具创建 Worker Agent,然后汇总结果。
from agentscope.tools import TeamTools # Leader 拥有 team_tools — 可以创建和协调 workers
leader = Agent( name="research-leader", system_prompt="你领导一个研究团队。分解任务并综合结果。", model=model, toolkit=Toolkit(tools=[*TeamTools()])
) # 运行时,leader 自动分解任务:
# "分析这 5 篇论文的核心论点"
# → 创建 5 个 workers,每篇论文一个
# → 汇总结果
Worker Agent 的能力由 Leader 在运行时动态决定——不需要预先定义所有可能的 Worker 类型。
Agent 将复杂任务分解为可跟踪的计划步骤,在执行过程中实时更新状态:
任务:"为这个 Python 项目编写完整的测试套件"
Agent 生成计划: 步骤 1: [进行中] 扫描项目结构,识别所有模块 步骤 2: [等待中] 分析每个模块的公开 API 步骤 3: [等待中] 生成单元测试 步骤 4: [等待中] 生成集成测试 步骤 5: [等待中] 运行测试套件,修复失败 步骤 1 完成 → 步骤 2 自动开始,计划状态更新
长时间运行的工具调用(文件处理、网络请求、代码编译)切换到后台执行,不会阻塞 Agent 对话流:
用户:"编译这个大型 C++ 项目并运行测试"
Agent:[启动后台任务,立即继续对话]
Agent:"编译已在后台开始,预计需要 5 分钟。 我可以先帮你处理其他事情。"
...(5分钟后)
系统通知:后台任务完成
Agent:"编译完成。测试结果:..."
这是 AgentScope 2.0 与许多同类框架最根本的区别:
传统做法(LangChain 风格):
开发者定义固定链:
步骤 1 → 步骤 2 → 步骤 3(开发者在每一步决定做什么)
模型在每一步的空白处填入内容
AgentScope 做法:
开发者提供:工具包 + 权限 + 约束
模型决定: 做什么、按什么顺序、用哪些工具
框架处理: 生产安全、可观测性、人在回路
当模型推理能力弱时,固定流程是对的——模型需要引导。当模型推理能力足够强时,固定流程反而成了约束——模型有更好的计划但无法执行。AgentScope 2.0 的时机判断:2025 年以后的主流模型已经足够强大,值得更多自主权。
标准的 async for evt in agent.reply_stream() 模式可以实现:
独立的 AgentScope Runtime(runtime.agentscope.io)提供了完整的生产服务层:
AgentScope 不只是一个框架——背后有完整的工具链:
| 组件 | 功能 |
|---|---|
| AgentScope Studio | Agent 运行的可视化调试工具 |
| ReMe | 跨会话持久记忆(文件存储 + 向量存储) |
| OpenJudge | 50+ 评估器(代码、数学、工具调用、多模态输出) |
| Trinity-RFT | Agent 微调框架(解耦的探索器/训练器/缓冲区) |
| Mem0 集成 | 长期记忆(2025年6月新增) |
| 维度 | LangChain | AutoGen | AgentScope 2.0 |
|---|---|---|---|
| 核心模式 | 链式 | 多 Agent 对话 | 模型推理驱动 |
| 生产基础设施 | 第三方 | 第三方 | 内置 |
| 沙箱执行 | 无 | 有限 | Local / Docker / E2B |
| 人在回路 | 插件 | 原生支持 | 事件系统原生 |
| 评估系统 | 无 | 无 | OpenJudge(50+ 评估器) |
| 微调支持 | 无 | 无 | Trinity-RFT |
| 学术支撑 | 有 | 有 | 有(2 篇 arXiv 论文) |
最大的差距在这里:AgentScope 覆盖了完整的 Agent 生命周期——框架 → 记忆 → 评估 → 微调 → 应用。LangChain 和 AutoGen 只做到框架和记忆层就停了。
安装:
pip install agentscope
或者从源码安装:
git clone https://github.com/agentscope-ai/agentscope.git
pip install -e .
运行 Web UI:
cd agentscope
pnpm install && pnpm run dev # 前端
python -m agentscope.service # 后端
AgentScope 2.0 的时机把握得很准:在 LLM 推理能力快速提升的当下,它选择了"减少框架约束,让模型主导"这个方向。
五大核心系统(事件 / 权限 / 工作空间 / 多租户 / 中间件)解决的是传统框架的生产痛点:观测性差、缺少细粒度工具权限控制、难以服务多用户、安全逻辑和业务逻辑混在一起。
生态覆盖度才是它拉开差距的地方。框架 → 记忆 → 评估 → 微调是一条完整的链条,LangChain 和 AutoGen 都没做到。光是 OpenJudge——50+ 评估器覆盖代码、数学、工具调用和多模态输出——就填补了大多数团队还在自己写评估脚本的空白。
27.1k Stars、40 个版本、2 篇 arXiv 论文,背后是阿里巴巴工程团队的背书。在生产级 Agent 框架里,AgentScope 2.0 是目前最完善的选择之一。