AgentScope 2.0 实战指南:半天构建一套可信的多智能体系统
【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope
先说选型结论:做生产级多智能体系统,别再硬套工作流编排框架。AgentScope 2.0 不拿固化流程框住模型,它只提供积木——自主推理、多智能体权限控制、事件流、沙箱隔离,按需取用。
它到底是什么:AgentScope 不是工作流引擎
一句话定位:面向生产环境的多智能体框架,口号是"构建你能看见、能理解、能信任的智能体"。
它和传统编排框架的根本区别在一句话里:编排框架帮你画流程图,AgentScope 信任模型自己想办法,框架负责管住它。
| 传统编排框架 | AgentScope 2.0 | |
|---|---|---|
| 核心假设 | 流程要写死,节点要固定 | 现代模型会推理、会调工具 |
| 框架职责 | 驱动每一步流转 | 提供工具、权限、事件流、沙箱 |
| 失败模式 | 流程外的情况直接跑偏 | 权限引擎拦截 + 事件流可回放 |
能力全景:这套多智能体框架能干什么
先给全景,按"你能拿它做什么"组织,不关心它内部分几层:
| 能力 | 你拿到什么 | 入口 |
|---|---|---|
| 自主推理 | ReAct 循环、批量工具执行、结构化输出、可中断可恢复 | src/agentscope/agent/ |
| 工具箱 | Toolkit:Python 函数 + MCP 服务器 + 技能,内置 Bash/Read/Write/Grep/Glob | src/agentscope/tool/ |
| 多智能体权限控制 | PermissionEngine:5 种模式 + 规则集,每次工具调用前判定 | src/agentscope/permission/ |
| 智能体可观测 | reply_stream细粒度事件流、OpenTelemetry 兼容 tracing、可组合中间件钩子 | src/agentscope/middleware/ |
| 沙箱隔离 | 本地 / Docker / E2B / K8s / Daytona 工作区,同一套接口换后端 | src/agentscope/workspace_manager/ |
| 服务化 | FastAPI Agent Service + Web UI:多租户、智能体团队、IM 渠道、RAG、MCP/技能市场 | src/agentscope/app/ |
| 长期记忆 | ReMe、Mem0、文件系统记忆中间件,后端可换 | src/agentscope/middleware/_longterm_memory/ |
判断句:前四行是"单个智能体可信"的地基,后三行是"把智能体变成产品"的地基。下面按难度递进走三场实战。
递进实战:从单智能体到双智能体再到多租户服务
场景一:让一个智能体自己干活
现象:你只拿到模型一句最终答案,中间它干了什么、哪个工具失败了你一概不知。
做法:Agent+Toolkit就是最小可运行单元。给它一套工具,剩下让它自己的 ReAct 循环决定——先查再写还是一次写对,是模型的事,不是你的事。终端交互用launch_console一行搞定,流式输出、工具调用确认、Ctrl+C 中断都替你处理了。
关键代码:
from agentscope.agent import Agent from agentscope.model import DashScopeChatModel from agentscope.credential import DashScopeCredential from agentscope.tool import Toolkit, Bash, Grep, Read, Write from agentscope.console import launch_console agent = Agent( name="Friday", system_prompt="You're a helpful assistant.", model=DashScopeChatModel( credential=DashScopeCredential(api_key="sk-..."), model="qwen3.8-max", ), toolkit=Toolkit(tools=[Bash(), Grep(), Read(), Write()]), ) await launch_console(agent)效果:终端里看到的是完整事件流——模型调用开始、文本增量、工具调用块、工具结果,全程可回放。三个值得注意的自主性细节:模型一轮发多个工具调用时会分组批量执行,而不是排队傻等;reply_stream接受structured_schema,可以直接要 Pydantic 结构而不是自由文本;用户确认、外部中断都能作为事件喂回去,智能体从断点继续而非从头重跑。
场景二:执行者 + 审查者,两个智能体互相较劲
现象:单智能体自查不可信——它"声称"写了文件,你没验证过;让它自我验收,等于自己给自己打分。
做法:套一个GoalPipeline:执行者干完活产出结构化"完成报告",审查者拿真实目标 + 报告做验收(pass / fail / impossible),不过就打回,驳回意见原样回传,最多循环max_iters轮。有个关键细节:两个智能体共享同一个LocalWorkspace,审查者判断的是磁盘上真实写下的东西,不是执行者的口供。目标也不是构造时写死的——pipeline 第一次被要求做什么,那就是目标,审查标准自动跟着换。官方示例在 examples/pipeline/goal/。
关键代码:
async with LocalWorkspace(workdir="workspace") as workspace: executor = Agent( name="Executor", system_prompt="You're a programmer named 'Executor'.", model=DashScopeChatModel(...), toolkit=Toolkit(tools=await workspace.list_tools()), offloader=workspace, # 长结果卸载进工作区 ) verifier = Agent(...) # 同一个 Agent 类,没有特殊角色 pipe = GoalPipeline(executor=executor, verifier=verifier, max_iters=10) await launch_console(agent=pipe)注意审查者就是普通Agent,不是什么特殊类——它的验收结论走结构化输出,查文件、跑命令用的是和执行者一样的工具。
效果:两个智能体的事件流在终端里交替滚动,谁推理、谁调了哪个工具、审查为什么驳回,全透明:
场景三:把脚本升级成多租户服务
现象:个人脚本到此为止,一上多用户就崩:会话混了、资源隔离没了、没有入口。
做法:直接用自带的 Agent Service:FastAPI 后端 + 现成 Web UI,开箱就有多租户多会话隔离、智能体团队(leader 派活给 worker)、飞书/Discord/钉钉渠道接入、RAG 知识库、MCP 与技能市场。完整示例在 examples/agent_service/,定制点全部集中在main.py——加你自己的 MCP、中间件、工作区管理器即可。
关键代码:
app = create_app( storage=RedisStorage(host="localhost", port=6379), message_bus=InMemoryMessageBus(), workspace_manager=LocalWorkspaceManager(basedir="workspaces"), channels=[DingTalkChannel, DiscordChannel, FeishuChannel], )后端python main.py起在 8000 端口,前端在 examples/web_ui/ 里pnpm install && pnpm dev,指向http://localhost:8000就能用。
效果:你写的不再是脚本,是一个带 Web 界面、能接 IM 渠道、多租户隔离的线上应用。
生产三件套:权限、可观测、沙箱一起上
这三件事不是三个独立功能,而是一套"上线前必须过"的组合拳。缺任何一件,前面三场实战都不能上生产。
权限:给智能体系根安全绳
权限引擎PermissionEngine基于一个PermissionContext(模式 + 规则集),每次工具执行请求都过一道检查,规则行为分三档:ALLOW放行、DENY拦截、ASK暂停等人确认。
from agentscope.permission import ( PermissionEngine, PermissionContext, PermissionMode, PermissionRule, PermissionBehavior, ) context = PermissionContext(mode=PermissionMode.ACCEPT_EDITS) engine = PermissionEngine(context) engine.add_rule(PermissionRule( tool_name="Bash", rule_content="git:*", behavior=PermissionBehavior.ALLOW, source="userSettings", ))五种模式,语义各不同(来自源码src/agentscope/permission/_types.py的官方定义):
| 模式 | 行为 | 适合 |
|---|---|---|
DEFAULT | 每个操作都要授权,只读命令自动放行 | 默认,最安全 |
ACCEPT_EDITS | 工作目录内的文件读写自动放行 | 人在场快速迭代 |
EXPLORE | 只读模式,任何修改直接 DENY | 探索代码库、规划 |
DONT_ASK | 所有 ASK 转成 DENY,永不等人 | 无人值守但仍要安全 |
BYPASS | 跳过全部安全检查(含rm -rf /这类),只剩 deny/ask 规则 | 仅限沙箱环境 |
可观测:把过程变成监控面板
两层:
- 事件流落盘:
reply_stream持续产出模型调用、文本增量、思考块、工具调用、工具结果增量、多模态内容等细粒度事件。生产上把这条流写日志/落库,事后任何一步都能回放。 - Tracing 中间件:src/agentscope/middleware/_tracing/ 内置 OpenTelemetry 兼容的追踪模块,挂上后每个智能体操作进你的链路追踪系统(Jaeger/Zipkin 等)。
再加上中间件钩子——回复、推理、行动、模型调用、权限检查、上下文压缩这些环节都有可组合接口,想在哪一步埋点就在哪一步挂,不动核心逻辑。
沙箱:长任务卸载 + 隔离执行
- 耗时工具调用通过
offloader丢进后台(如工作区),结果回来再唤醒智能体继续,事件流全程不断:
- 工作区后端可换:本地、Docker、E2B、K8s、Daytona 在 src/agentscope/workspace_manager/ 里同一套接口。BYPASS 只在沙箱里用(见下节);要无人值守执行又舍不得扔安全,用
DONT_ASK而不是BYPASS。
三件套的关系:权限管"能不能做",事件流和 tracing 管"做了什么看得到",沙箱管"做坏了伤不到外面"。
避坑清单:这些坑文档没明说
- BYPASS 是给沙箱用的,不是给本地用的。看源码
_check_bypass:它连rm -rf /、写~/.bashrc这类安全拦截都一并跳过,只剩你手配的 deny/ask 规则当护栏。在本地环境开 BYPASS,等于把 shell 钥匙交给模型。无人值守场景请改用DONT_ASK——它把 ASK 转成 DENY,安全默认。 - 规则写错 = 静默失效,不会报错。匹配语义按工具类型走:Bash 是命令子串/前缀通配(所以写
git:*),Read/Write/Edit 是路径 glob(写src/**)。模式语法写错,规则不匹配也不报错,你以为上了锁,其实门没锁。上线前用一条确定会触发的规则做冒烟测试。 - 别用 if-else 复刻编排逻辑。框架哲学是信任模型推理,你手写死每一步,等于把模型能力阉割成状态机。固定骨架(执行-验收循环)用
GoalPipeline表达,开放部分交给模型。 - 长任务不卸载,事件流就断在原地。耗时调用走
offloader,否则一轮工具调用能卡死整个会话的响应节奏。 - 恢复执行时别自己记"轮到谁了"。需要人工确认时
reply_stream会停,恢复事件自带reply_id标识被挂起的是哪个智能体,照用即可;自己维护轮次状态,多智能体场景必出竞态。 - Python 低于 3.11 直接别试。
pyproject.toml里写死requires-python = ">=3.11",老环境要么装不上要么行为异常,先升级再排查。
上手路线图:新手和进阶各一条
新手半天路线(目标只有一个:看到完整事件流,建立"过程可观测"的直觉):
- 跑通 examples/pipeline/goal/ 双智能体示例(需先
export DASHSCOPE_API_KEY=...); - 改 examples/console/ 玩终端控制台:换模型、换工具、开
--verbosity debug; - 换一家模型厂商(OpenAI / Anthropic / Gemini / DeepSeek…),确认统一接口没坑你。
进阶路线:
- 给智能体挂权限规则 + src/agentscope/middleware/_tracing/ 追踪中间件;
- 工作区从 Local 切到 Docker / E2B / K8s 沙箱(src/agentscope/workspace_manager/ 全量实现);
- 上 examples/agent_service/ 做多租户应用;
- 需要记忆和知识库时再看 examples/long_term_memory/ 和 examples/rag/。
三个固定入口:文档与新闻在 docs/;全部示例在 examples/;源码里最值得通读的是agent、permission、pipeline、middleware、workspace_manager五块。
仓库地址(clone 用):https://gitcode.com/GitHub_Trending/ag/agentscope
回到开头的选型判断:编排框架让你画流程图,画完发现模型的能力全被流程吃掉了;AgentScope 2.0 反过来——自主交给模型,权限、事件流、沙箱留给你。半天跑通递进实战里的三场,剩下的能力,按这张全景表按需取用就行。
【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考