AgentScope 沙箱是 AgentScope Runtime 里专门给 AI 智能体提供隔离执行环境的核心模块,源码核心目标就是解决 Agent 自动执行代码、Shell 命令、浏览器操作、MCP 工具调用带来的安全风险,同时支持会话状态快照、跨节点恢复、多租户隔离,开发阶段可以切换本地调试模式,生产环境换成 Docker、E2B、OpenSandbox 等后端,不用大量改动上层 Agent 业务代码。很多开发者做 Agent 全栈开发时容易忽略执行隔离,直接让大模型生成的脚本跑在宿主机,很容易出现删文件、内网探测、恶意命令执行等问题,AgentScope 沙箱源码就是把隔离、资源限制、状态持久化、工作区挂载封装成统一抽象层,上层 Agent 只需要调用统一接口,底层隔离实现可以自由替换,下面从源码分层、核心模块、执行流程、安全机制、后端适配逐一拆解。
一、AgentScope 沙箱源码核心模块清单
| 模块名称 | 源码路径 | 核心作用 |
|---|---|---|
| SandboxManager | sandbox/manager.py | 沙箱生命周期总调度,创建、销毁、重连、快照管理 |
| BaseSandbox | sandbox/base.py | 所有沙箱后端的抽象基类,定义统一接口规范 |
| Workspace | workspace/ | 工作区抽象,文件挂载、目录结构、技能文件同步 |
| SandboxStateStore | sandbox/state.py | 沙箱状态持久化,快照序列化、存储、恢复 |
| MCP Gateway | sandbox/mcp_gateway.py | 沙箱内部 MCP 服务网关,隔离 MCP 调用网络边界 |
| ResourceQuota | sandbox/quota.py | CPU、内存、磁盘、执行时长限额,防止资源耗尽 |
二、源码分层结构
- 抽象接口层(上层业务调用)
- 调度管理层
- 后端实现层
- 安全与观测层
对外暴露统一方法:create、connect、exec、stop、snapshot、restore。不管底层是 Bubblewrap、Docker、E2B 云沙箱,上层 Agent 调用代码完全一致,这也是源码里面向接口设计的关键点,方便切换不同隔离后端。
SandboxManager 会根据 sessionId、userId、agentId 分配沙箱隔离域,支持 USER、SESSION、AGENT、GLOBAL 四种共享范围,同一个用户多轮对话可以复用同一个沙箱环境,会话结束单独销毁,避免重复创建容器浪费资源。
不同沙箱后端单独实现 BaseSandbox,源码里已经内置 Bubblewrap 轻量沙箱、Docker 沙箱、E2BWorkspace 云沙箱,还预留 OpenSandbox、Daytona 扩展接口。
包含系统调用过滤、网络策略、文件只读白名单、日志审计、超时熔断,所有 exec 执行的命令、返回结果都会完整埋点日志,方便事后审计。
三、沙箱完整执行流程(源码运行顺序)
- Agent 发起工具调用,Runtime 先交给 SandboxManager,根据会话标识查询是否已有可用沙箱实例
- 无实例则调用对应后端的 create,拉起隔离环境,同步把 skills、知识库、会话上下文挂载进沙箱 /workspace 目录
- 执行 exec 命令,所有代码、shell、浏览器操作全部在隔离环境内部运行,宿主机不直接接收模型生成指令
- 执行完成后,按配置触发 snapshot,把当前文件状态打包存入 StateStore,支持 Redis、本地文件、OSS 存储
- 下一轮 Agent 请求进来,直接 restore 快照,保留之前安装的依赖、生成的文件,不需要重复 pip 安装
- 会话超时或者主动调用 stop,释放容器、MicroVM 资源,清理临时环境
四、源码里的安全隔离设计要点
- 权限最小化:沙箱内默认没有宿主机高权限,文件系统采用写时复制,修改只在沙箱内部生效,不会修改主机文件
- 系统调用拦截:底层依托 seccomp 过滤高危 syscall,禁止挂载、修改网络、访问宿主机内核
- 网络隔离:默认闭环网络,可配置白名单出站,MCP 网关只监听沙箱 loopback,不对外暴露端口,降低攻击面
- 资源硬限制:每个沙箱配置 CPU、内存、最大运行时长,防止死循环代码打满服务器资源
- 租户隔离:不同 userId 的沙箱快照、工作区命名空间隔离,数据不会互相串扰
五、不同沙箱后端选型对比
- Bubblewrap:轻量无容器,适合本地开发调试,启动快,隔离能力偏弱
- DockerSandbox:容器级隔离,适合私有部署,运维成熟,自带镜像缓存
- E2BWorkspace:云沙箱,适合公网线上 Agent 服务,自动弹性扩缩,不用自己维护容器集群
- OpenSandbox/MicroVM:更强内核级隔离,适合高安全等级企业生产场景
六、源码二次开发常见扩展点
- 新增自定义沙箱后端:继承 BaseSandbox,实现 create、exec、snapshot、restore 四个核心方法
- 扩展审计:在 SandboxManager 的 exec 钩子增加自定义上报,把命令日志推送到内部审计平台
- 自定义资源配额策略:重写 quota 模块,按 Agent 角色、用户等级分配不同算力上限
- 扩展工作区挂载规则:修改 Workspace 挂载逻辑,按需挂载企业内网知识库目录
【相关 FAQ】
问题 1:AgentScope 沙箱源码解析,AgentScope 沙箱在整个 Agent 框架里承担什么角色?
回答 1:AgentScope 沙箱源码解析,AgentScope 沙箱是 Runtime 里的隔离执行模块,用来安全运行大模型生成的代码、Shell、浏览器、MCP 工具,隔离风险,同时保存会话文件状态,是 Agent 安全执行的核心底座。
问题 2:AgentScope 沙箱源码解析,AgentScope 沙箱支持哪些底层隔离后端?
回答 2:AgentScope 沙箱源码解析,原生支持 Bubblewrap、Docker、E2B,同时预留接口接入 OpenSandbox、Daytona,开发和生产环境可以无缝切换。
问题 3:AgentScope 沙箱源码解析,AgentScope 沙箱快照机制在源码里怎么实现?
回答 3:AgentScope 沙箱源码解析,快照由 SandboxStateStore 模块实现,执行结束打包沙箱工作区文件,绑定 sessionId 或者 userId 保存,下一轮请求可以直接恢复环境,保留之前安装依赖和生成文件。
问题 4:AgentScope 沙箱源码解析,AgentScope 沙箱和普通 Docker 容器有什么不一样?
回答 4:AgentScope 沙箱源码解析,普通 Docker 侧重镜像部署,AgentScope 沙箱在容器之上封装了统一调度、快照恢复、MCP 网关、多租户命名空间,面向 Agent 多轮交互场景做了状态持久化适配。
【参考资料】
[2026-10-20](AgentScope Runtime 沙箱文档)runtime.agentscope.io
[2026-09-15](AgentScope 2.0 workspace 与沙箱源码说明)agentscope.io 官方文档
[2026-08-02](AgentScope 沙箱安全机制与多租户隔离解析)腾讯云开发者社区
[2026-07-10](AgentScope 对接 E2B 沙箱最佳实践)阿里云开发者社区
【免责声明】
本文为 AgentScope 沙箱源码架构资讯整理,接口、模块路径、功能细节以 AgentScope 官方 GitHub 源码和最新文档为准,不直接构成生产环境部署方案,Agent 上线前务必完成安全审计与渗透测试。
