(万字长文拆解云沙箱)让 Agent 从执行代码升级到拥有一个临时Runtime

最近在做 AI Agent 相关的东西时,我越来越频繁地遇到一个问题:

如果 Agent 可以执行 Shell、安装依赖、修改文件、运行测试,甚至启动一个 Web 服务,那么这些操作到底应该在哪里执行?

最简单的答案可能是:

给它一台服务器。

但真正做起来以后,你会发现,这可能是一个比较危险的操作。

因为今天的 Agent,已经和几年前的 Chatbot 完全不是一回事了。

以前的 AI,大部分时候是在:

现在一个真正能够完成任务的 Agent,工作流可能已经变成:

它不再只是"告诉你应该怎么做"。

它开始动手操作了。

于是一个以前没那么重要的问题,突然变得非常重要:

我们到底应该把 Agent 的行动边界放在哪里?

我现在越来越觉得:

Agent 真正需要的,可能不只是一堆 Tool,而是一个真正属于它自己的 Runtime。

这也是我最近重新理解和分析"云沙箱"的原因。


一. 了解云沙箱

1.Agent 最危险的地方,恰恰是它真的能干活

假设你给一个 Coding Agent 这样的任务:

帮我把这个 Python 项目的依赖升级一下,运行测试,如果失败就继续修。

它可能会自主完成:

bash 复制代码
git clone ...
pip install -r requirements.txt
pip install -U xxx
pytest

发现测试失败以后:

bash 复制代码
修改 xxx.py
pytest

继续失败:

bash 复制代码
pip install xxx
pytest

最后甚至可能:

bash 复制代码
python app.py
curl localhost:8000

从 Agent 的角度看,这是一套非常正常的工作流。

但如果所有命令都直接发生在你的开发机、CI 主机甚至业务服务器上,问题就来了。

它可能修改宿主机文件、安装大量依赖、改变系统配置、启动长期进程、占满 CPU 和内存,甚至读取本来不应该接触的环境变量和网络资源。

更麻烦的是:

Agent 并不知道哪些操作对你的基础设施来说"太危险"。

它看到的只是一个目标。

为了完成目标,它会不断尝试下一步。

所以真正的问题其实不是:

Agent 到底够不够聪明?

而是:

当 Agent 越来越有行动能力以后,我们应该把它放在哪里?


2.第一反应通常是:Docker 不就行了吗?

很多开发者第一次接触 Agent Sandbox 时,都会冒出同一个想法:

不就是隔离环境吗?Docker 不就解决了吗?

这个判断不能说错。

Docker 确实已经提供了很多非常重要的基础能力:

text 复制代码
Namespace
Cgroup
Filesystem
Image
Network
Process Isolation

我们完全可以:

bash 复制代码
docker run ...

然后把 Agent 丢进去执行命令。

问题是:

"启动一个容器"和"提供一个 Agent Runtime",其实是两件事。

当你真的开始做这套系统,很快会发现容器启动只是第一步。

你还需要处理:

如果是多 Agent:

text 复制代码
Agent A → Sandbox A
Agent B → Sandbox B
Agent C → Sandbox C
Agent D → Sandbox D
...

事情会继续变复杂。

怎么调度?

怎么限制资源?

怎么避免 Agent 之间互相影响?

沙箱异常以后怎么办?

工作结果怎么保存?

任务中断以后是否需要恢复?

生命周期怎么控制?

忘记销毁的环境怎么自动清理?

这些问题,本质上都是 Agent Runtime 需要回答的。把它们画出来,大概是这样的:

所以我现在更倾向于这么理解:

Docker 是构建 Sandbox 的一种底层技术,而 Sandbox 本身是一个 Runtime 问题。

容器解决的是"怎么隔离一个进程"。

Agent Runtime 需要解决的是:

怎么让一个 Agent 安全、持续、可观察地完成一整个任务。


3.云沙箱真正解决的,其实不是"执行代码"

如果你的需求只是:

text 复制代码
代码
 ↓
执行
 ↓
返回结果

那它本质上更接近一个 Code Execution API。

比如:

http 复制代码
POST /execute

输入一段 Python:

python 复制代码
print(sum([1, 2, 3]))

返回:

text 复制代码
6

这个模型很简单。

但真正的 Agent 通常不是这么工作的。

它更像:

这时候你真正需要的已经不是:

一个执行代码的 API。

而是:

一个可以临时交给 Agent 使用的计算环境。

也就是:

Agent Runtime。

这个方向现在已经非常明显。

阿里云在 2026 年 6 月正式发布 FC Agent Sandbox,官方将它定义为面向 AI Agent、代码执行、命令执行、文件处理和临时服务等场景的云端隔离执行环境。开发者可以创建 Sandbox,在其中运行命令、处理文件、执行代码和启动服务,再按生命周期释放。

腾讯云的 Agent 沙箱服务 AGSX 也明确面向 AI 智能体,并已经把沙箱从纯 Code Execution 扩展到了 Code、Browser、Computer、Mobile 等执行环境。

所以我觉得一个越来越明显的趋势是:

Sandbox 正在从"执行代码的地方",变成"Agent 工作的地方"。


二. 认识云沙箱

1.一次性任务和会话型任务,其实是两种完全不同的东西

理解 Agent Runtime,我觉得有一个很重要的区分:

一次性任务会话型任务

比如:

帮我计算这份 CSV 的平均值。

可能只需要:

text 复制代码
创建 Sandbox
    ↓
上传 CSV
    ↓
执行 Python
    ↓
输出结果
    ↓
销毁 Sandbox

整个环境用一次就结束。

它很像一个函数:

text 复制代码
input
  ↓
function
  ↓
output

所以我更愿意把它理解成:

一次性 Sandbox = Function。

非常适合:

  • 代码执行
  • 数据分析
  • 文件转换
  • CI 任务
  • 自动化脚本
  • AI 生成代码验证
  • 一次性的 Agent Tool

任务来了,创建环境。

任务结束,环境消失。

这和传统 Serverless 的思路其实非常接近。


2.Coding Agent 完全是另一回事

再看另一个任务:

帮我修复这个 GitHub 项目里的一个 Bug。

Agent 可能需要:

这里最大的问题是什么?

状态。

如果每执行一条命令都重新创建一个环境:

text 复制代码
Command 1 → Sandbox 1
Command 2 → Sandbox 2
Command 3 → Sandbox 3
Command 4 → Sandbox 4

那么:

text 复制代码
刚刚 clone 的项目没了
刚刚安装的依赖没了
刚刚修改的文件没了
刚刚启动的进程也没了

这显然不符合 Agent 的工作方式。

真正合理的模型应该是:

也就是说:

Agent 需要的不只是一次执行,而是一段有状态的计算会话。

所以我很喜欢一个简单的类比:

一次性任务像函数,会话型 Sandbox 更像进程。

这是 Agent Runtime 和传统 Code Execution 之间一个非常关键的区别。


3.Workspace 可能比 Command 更重要

进一步想,会发现 Agent 真正工作的对象其实也不是"某一条命令"。

而是:Workspace

例如一个 Coding Agent 真正面对的是:

text 复制代码
/workspace
├── package.json
├── src/
├── tests/
├── README.md
└── node_modules/

它真正做的事情是:

也就是说:

Command 只是 Agent 操作 Workspace 的手段。

真正需要持续存在的,是 Workspace 本身。

这也是为什么我觉得,一个真正适合 Agent 的 Sandbox,接口模型不应该只围绕:

text 复制代码
POST /execute

而应该围绕,这样架构图来设计:

这才更接近 Agent 实际完成任务的方式。


4.Agent Runtime 的核心,其实是"状态"

传统 Code Execution 最关心的问题是:

这段代码执行成功了吗?

但 Agent Runtime 还要回答很多别的问题:

  • 当前环境还活着吗?
  • 刚才安装的依赖还在吗?
  • Agent 修改了哪些文件?
  • 有没有进程正在运行?
  • 当前命令执行到哪里了?
  • 这个 Web 服务监听在哪个端口?
  • 还有多少生命周期?
  • 什么时候应该销毁?
  • 任务结束后哪些结果需要保存?

这背后本质上都是同一个关键词: State

所以如果让我把一个 Agent Sandbox 拆开来看,应该是这样:

隔离只是其中一部分。

真正难的是:

如何在隔离的前提下,让 Agent 拥有一个短暂但完整的计算世界。


5.实时输出也不是"小功能"

还有一个特别容易被低估的能力:

Streaming。

比如 Agent 执行:

bash 复制代码
npm install

或者:

bash 复制代码
npm run build

如果整个命令执行十分钟,你显然不会希望十分钟以后才拿到一坨 stdout。

因为对于 Agent 来说,输出本身就是下一次决策的输入。

例如:

这意味着 Agent 其实在不断完成:

text 复制代码
Action
  ↓
Observation
  ↓
Reasoning
  ↓
Action

所以流式日志并不只是为了"让开发者看起来舒服"。

它本身就是 Agent Runtime 的感知通道。

Agent 不只是需要执行命令,还需要观察命令是怎么执行的。


6.再往前一步:Sandbox 本身也可以变成一个 Tool

这也是 MCP 出现以后,我觉得很有意思的一个变化。

传统方式可能是:

text 复制代码
Agent
  ↓
自己维护 Shell
  ↓
自己维护 Docker
  ↓
自己维护容器池
  ↓
自己处理生命周期
  ↓
自己收集日志

而另外一种思路是:

text 复制代码
Agent
  ↓
Sandbox Tool
  ↓
Agent Runtime

对于 Agent 来说,它并不需要理解:

  • Docker API
  • Kubernetes Pod
  • 容器调度
  • 宿主机资源

它只需要理解几个高层动作:

  1. 创建一个执行环境
  2. 运行命令
  3. 读取文件
  4. 写入文件
  5. 观察输出
  6. 销毁环境

如果通过 MCP 暴露出来,它甚至可以进一步抽象成 Agent 可以直接选择和调用的 Tool。

于是基础设施复杂度继续往下沉。

我觉得这可能是 MCP 在 Agent 基础设施层一个很有价值的使用方式:

让 Agent 使用的是"能力",而不是底层基础设施。


三. 云沙箱产品调研

最近实际研究这类方案时,我也看了不少云沙箱产品。

相比一上来搭建完整的 Agent 平台,我反而比较关注一种更轻的方式:

先把 Agent 真正需要的 Runtime 抽出来。

百智云目前把 Cloud Sandbox 定义为 Isolated Agent Runtime,核心思路是给 Agent 提供独立的云端执行环境,并提供 API 与 MCP 两种接入方式。官方场景也主要集中在云端 Agent、多 Agent 平台和开放式 Agent 任务。

这和我前面讲的思路比较一致:

text 复制代码
你的 Agent
    │
    ▼
创建 Sandbox
    │
    ▼
操作 Workspace
    │
    ▼
执行 Command
    │
    ▼
观察结果
    │
    ▼
继续工作
    │
    ▼
最终销毁

它不要求开发者首先接受一整套新的 Agent Framework。

你可以继续使用自己的:

  • Claude
  • Codex
  • OpenCode
  • 自研 Agent
  • Agent Framework

然后只把"执行环境"这一层交出去。

这也是我觉得这种产品形态比较有意思的地方。

它解决的问题非常具体:

Agent 到底在哪里干活?

想看具体产品形态的话,可以直接查看百智云 Cloud Sandbox 的产品页。百智云云沙箱|Agent 云端运行环境


同时百智云云沙箱,也提供了很自然的接口模型:One-shot + Session

如果把前面的两种任务类型落到 API 上,其实模型非常自然。

对于一次性任务:

text 复制代码
Agent
  ↓
Create Execution
  ↓
Execute
  ↓
stdout / stderr / workspace
  ↓
自动释放

例如:

http 复制代码
POST /openapi/v1/executions/run

任务提交以后直接等待执行结果。

这类接口最适合:

  • 运行一段 Python
  • 处理一个 CSV
  • 执行一个构建脚本
  • 转换一个文件
  • 验证模型生成的代码

另外一个容易被忽略、但非常工程化的设计是:

Idempotency Key。

假设 Agent 发起任务以后:

text 复制代码
客户端发送请求
      ↓
服务端成功执行
      ↓
网络中断
      ↓
客户端没收到响应

这时候客户端根本不知道:

"任务失败了",还是"任务成功了但响应丢了"。

如果直接重试,就可能把任务执行两遍。

所以同一个逻辑任务最好有稳定的:

text 复制代码
idempotency_key

网络异常时复用它。

这种能力听起来一点也不像"AI Feature"。

但真正把 Agent 放进生产环境以后,你会发现:

可靠性往往就是由这些看起来很无聊的基础设施细节组成的。


对于长任务,则完全是另一种模型:

http 复制代码
POST /openapi/v1/sandboxes

先创建一个 Sandbox。

然后持续在同一个环境里执行:

http 复制代码
POST /openapi/v1/sandboxes/:id/commands

整个过程可能是:

重点不是 API 长什么样。

而是:这些操作发生在同一个运行环境里

因此:

text 复制代码
文件还在
依赖还在
中间结果还在
进程还在
Workspace 还在

直到整个 Agent Task 真正结束。

这正是 Coding Agent、Research Agent 这类长任务最需要的东西。


四. 云沙箱展望

1.正在形成新的 Agent 基础设施分层

以前我们讨论 Agent,通常画出来是:

text 复制代码
             Agent
               │
      ┌────────┼────────┐
      ↓        ↓        ↓
    Search   Browser   Tools

但如果 Agent 开始拥有越来越强的执行能力,我觉得未来可能更接近:

text 复制代码
                    Agent
                      │
         ┌────────────┼────────────┐
         ↓            ↓            ↓
      Search       Browser      Runtime
                                     │
                                     ▼
                                  Sandbox
                                     │
                      ┌──────────────┼─────────────┐
                      ↓              ↓             ↓
                  Workspace       Commands       Network

Search 解决:

Agent 能不能看到外部世界。

Browser 解决:

Agent 能不能操作网页。

Sandbox 解决:

Agent 能不能安全地真正动手。

而且行业里的产品也已经不再只把 Sandbox 当作代码执行器。

腾讯云 AGSX 已经把执行环境扩展到 Code、Browser、Computer、Mobile 等不同形态;阿里云 FC Agent Sandbox 也把 Commands、Filesystem、Code Interpreter、Network 等能力拆成了明确的 Runtime 对象。

这背后其实是一件很值得关注的事情:

Agent 的"行动能力"正在逐渐基础设施化。


2.哪些 Agent 最需要 Sandbox?

我目前觉得最典型的是四类。

  • 第一类当然是 Coding Agent
text 复制代码
Git Clone
 ↓
Install
 ↓
Code
 ↓
Test
 ↓
Build
 ↓
Run

几乎天然需要一个持续存在的 Workspace。

  • 第二类是 Code Interpreter / Data Agent
text 复制代码
上传 CSV
   ↓
创建 Sandbox
   ↓
Python / Pandas
   ↓
数据分析
   ↓
生成图表
   ↓
导出文件
   ↓
销毁
  • 第三类是 Research Agent

它在研究过程中可能需要下载文件、编写 Python、清洗数据、跑统计程序、转换格式、生成报告。这些行为完全没必要发生在主业务服务器上。

  • 第四类是 多 Agent 平台

如果系统同时运行:

text 复制代码
Agent A
Agent B
Agent C
Agent D

最自然的架构之一就是:

text 复制代码
Agent A → Sandbox A
Agent B → Sandbox B
Agent C → Sandbox C
Agent D → Sandbox D

不同任务拥有自己的 Runtime 和 Workspace。

百智云目前也明确把多 Agent 平台列为 Cloud Sandbox 的适用场景之一,即按 Agent 或任务创建独立环境,并集中获取状态、日志和结果。


3.Agent 时代,我们可能要从"它会什么"转向"它能在哪里做什么"

我觉得这是 Sandbox 背后更值得讨论的一件事。

以前评价一个 AI,我们总喜欢问: 它会什么?

会不会写代码?

会不会搜索?

会不会做数据分析?

会不会操作浏览器?

但随着 Agent 能力增强,接下来可能还有一个同样重要的问题:

它能在哪里做这些事?

这两句话其实完全不同。

如果一个 Agent 只有:

text 复制代码
LLM
+
Prompt
+
Tools

它更像一个会调用外部能力的智能系统。

但如果它逐渐拥有:

text 复制代码
LLM
+
Tools
+
Memory
+
Workspace
+
Runtime

它就开始拥有一个真正可以持续工作的环境。

这个变化非常关键。

因为 Agent 不再只是:

"生成下一条答案。"

而是在:

维护一个任务状态,并不断作用于外部世界。


4.Server、Function 之后,正在出现第三种计算形态

以前我们习惯使用服务器:

text 复制代码
Server
  ↓
长期存在

后来 Serverless 把很多工作变成:

text 复制代码
Request
  ↓
Function
  ↓
Execute
  ↓
Destroy

而 Agent 带来的任务形态有点不一样:

text 复制代码
任务开始
   ↓
创建环境
   ↓
Agent 持续工作
   ↓
环境保持状态
   ↓
反复执行和观察
   ↓
任务完成
   ↓
保存结果
   ↓
环境销毁

它既不像一台需要维护几个月甚至几年的服务器。

也不像执行几秒钟就消失的函数。

它更像:

一个跟着任务生命周期存在的临时计算环境。

所以我越来越喜欢一个词:

Session Sandbox。

它介于 Server 和 Function 之间。

对一个 Agent 来说,可能就是:

我的任务还没结束,所以我的电脑还不能关。


5.Sandbox 的安全思路,也和传统"限制能力"不太一样

以前做安全,我们经常想的是:

怎么限制一个程序能做什么?

于是不断禁止:

  • 不能执行 Shell
  • 不能安装依赖
  • 不能访问网络
  • 不能启动进程 = 不能写文件

但这和 Agent 的目标其实天然冲突。

因为如果一个 Coding Agent:

  • 不能执行 Shell
  • 不能安装依赖
  • 不能改文件
  • 不能运行测试

那它也就很难真正完成工作。

所以 Agent 时代可能需要换一个思路。

不是:

Agent 什么都不能做。

而是:

Agent 可以做很多事情,但这些事情只能发生在一个被限制住的环境里。

比如允许它:

  • 执行 Shell
  • 安装依赖
  • 修改文件
  • 运行代码
  • 启动服务
  • 访问指定网络

但前提是:

text 复制代码
┌──────────────────────┐
│       Sandbox        │
│                      │
│  Agent 可以自由工作    │
│                      │
└──────────────────────┘
           ↑
        安全边界

换句话说:

我们不一定需要把 Agent 的能力限制得非常小,而可以给它一个足够大的自由空间,然后把"自由空间本身"限制住

我觉得这可能才是 Agent Sandbox 最核心的价值。


五. 总结

所以,现在怎么理解"云沙箱"?

以前我会说:

Sandbox 就是一个安全一点的 Docker。

现在我觉得这个定义太窄了。

对 Agent 来说,更准确的模型应该是这样 它不是单纯:

给 Agent 一个地方执行代码。

而是:

给 Agent 一个临时存在、可以持续操作、并且有明确边界的计算世界。

它很像一台服务器。

但有一个非常重要的区别:

它不是你的服务器。

它是:

Agent 的服务器。


参考阅读

百智云云沙箱|Agent 云端运行环境 定位为独立的 Isolated Agent Runtime,支持 API 与 MCP 接入。 查看百智云 Cloud Sandbox

阿里云 FC Agent Sandbox 面向 AI Agent 和代码执行场景的云端隔离运行环境。 查看阿里云 FC Agent Sandbox 文档

腾讯云 Agent 沙箱服务 AGSX 面向 AI 智能体的沙箱执行环境,覆盖 Code、Browser、Computer、Mobile 等形态。 查看腾讯云 AGSX

相关推荐
torin1 小时前
Javaer转Agent:学习资料篇
后端·agent
前端双越老师1 小时前
张三的 10 亿元 AI 梦:从“造神”到“活下去”
llm·agent·芯片
cidy_982 小时前
07 — Service 层:业务逻辑
后端
苍何2 小时前
用 GPT6 + Hyper3D MCP 搓 3D 个人网站,太夯了!(附教程)
后端
cidy_982 小时前
05 — 分层架构设计思想
后端
虎虎(_ _)。゜zzZ2 小时前
SQLAlchemy入门教程
数据库·后端·python·sql·ai·sqlalchemy
右耳朵猫AI3 小时前
Go周刊2026W37 | Ebitengine 纯 Go 化、simd 重写 TurboPFor、json/v2 落地
后端·微服务·go
devpotato3 小时前
RPO与RTO:容灾的两个关键指标
java·后端