主题
运行画像与执行环境
本文解释 AaaS 如何与 Sandbox、FaaS、Worker、Wasm 结合使用。规范中的统一抽象见 ExecutionProfile Schema 与 Sandbox Session。
先定义问题
Agent 平台不是只需要一个“能跑代码”的环境,而是需要一套“能根据任务形态选择正确环境”的执行画像。
同一个 Agent 平台里,至少会同时存在下面几类任务:
- 交互式、长会话、需要文件系统与进程的任务
- 短时、可并发、无状态的工具调用
- 后台异步、队列驱动、可重试的任务
- 低延迟、边缘侧、轻量隔离的任务
因此,平台不应该把执行环境固化成单一类型,而应把它们收敛成统一的 executionProfile 选择问题。
四类主要执行环境
| 执行环境 | 优势 | 弱点 | 最适合的 Agent 场景 |
|---|---|---|---|
| Sandbox | 会话型、可保留文件系统、可运行多进程、调试最友好 | 成本高于纯事件驱动执行 | coding agent、浏览器 agent、研究助手、需要 checkpoint 的任务 |
| FaaS | 冷启动和扩缩容模型成熟、按调用计费、短任务成本低 | 不适合长会话和复杂本地状态 | webhook、轻量工具、输入预处理、策略检查、同步补充步骤 |
| Worker | 非常适合异步、队列、重试、补偿和 fan-out | 交互体验一般,本地环境通常不如 Sandbox 丰富 | 后台推进、批量处理、补偿任务、多阶段异步 orchestration |
| Wasm | 快速启动、隔离强、便于边缘部署、资源密度高 | 对复杂依赖和系统能力支持有限 | 轻量工具、边缘校验、格式转换、策略执行、快速预处理 |
Sandbox 的定位
Sandbox 是最接近“Agent 原生工作环境”的执行形态。它通常具备:
- 持续存在的工作目录
- PTY、Shell、文件系统和进程树
- 适合依赖安装、测试运行、浏览器操作
- 便于持续心跳和细粒度进程监控
如果你的 Agent 需要像开发者一样操作环境,Sandbox 往往是默认首选。
FaaS 的定位
FaaS 不适合承载复杂交互式主会话,但非常适合承担 Agent 体系中的短动作层:
- 轻量工具函数
- 同步回调
- 预处理和后处理
- 高并发且短时的补充能力
在产品设计上,最稳妥的方式是让 FaaS 成为:
- 某种
runEnv - 或某类 Tool 的执行承载层
而不是要求所有 Agent 主循环都运行在 FaaS 中。
Worker 的定位
Worker 适合平台内部和 Agent 后台阶段:
- 队列驱动的长链路任务推进
- 批量 fan-out、重试、补偿和聚合
- 后台 Artifact 处理、索引、归档
- 低交互但高吞吐的子任务
它常常不是“用户正在直接交互的 Agent 环境”,却是 AaaS 平台可靠性的关键执行底座。
Wasm 的定位
Wasm 更像轻量执行单元:
- 启动快
- 安全边界清晰
- 适合边缘和多租户高密度部署
它很适合作为:
- Policy 引擎
- Prompt 预处理
- 输入格式检查
- 小型工具运行时
但不适合承担重依赖 coding environment 或浏览器自动化主任务。
推荐的组合方式
组合一:Sandbox 主会话 + FaaS 工具
- 主 Agent 跑在 Sandbox 中
- 短平快工具,例如结构化提取、OCR、Webhook callback,交给 FaaS
- 适合交互式 coding 和企业工具链场景
组合二:Worker 编排 + Sandbox 执行
- Worker 负责后台调度、重试和批量 fan-out
- 真正需要环境和会话的步骤在 Sandbox 中执行
- 适合复杂异步任务和多阶段计划执行
组合三:Wasm 前置 + Sandbox 或 FaaS 后置
- Wasm 负责输入过滤、策略执行和轻量转换
- 通过策略后再进入重型执行环境
- 适合高并发入口和边缘场景
如何为 Agent 选 execution profile
选择画像时,建议按下面几个问题判断:
- 是否需要文件系统、PTY、浏览器或多进程
- 是否需要保留会话并支持继续执行
- 是否需要长时间运行和中间状态恢复
- 是否更看重启动速度和单位成本
- 是否需要边缘部署或极强租户隔离
一个简单经验是:
- 需要“像人在电脑前工作”时,选 Sandbox
- 需要“像函数一样快速执行”时,选 FaaS
- 需要“像后台消费者一样推进任务”时,选 Worker
- 需要“像高密度插件一样轻量运行”时,选 Wasm
平台应该抽象什么,不抽象什么
平台应该抽象:
- prepare、start、keepAlive、release 等主生命周期
- 统一的 Run、Attempt、Session、Artifact、Trace 语义
- 统一的错误、重试、超时和取消语义
平台不需要抽象到看不出环境差异。不同环境的能力差异仍然应该通过 capability 暴露出来,例如:
- 是否支持长会话
- 是否支持文件系统快照
- 是否支持进程级健康检查
- 是否支持浏览器或 GUI 自动化
与规范的关系
规范的重点是统一语义,而不是抹平现实差异。相关文档: