很多复杂任务无法提前备好所有工具。让 Agent 分析陌生日志,它可能临时写段 Python;处理 CSV,它可能生成聚合脚本。
模型生成的命令和代码,应被视为不可信输入。直接放进应用运行时执行,一次错误路径判断就可能把 Agent 问题变成生产事故。
Eve 给每个 Agent 提供隔离沙箱。本地开发可用 Docker、microsandbox 等适配器;部署到 Vercel 后可切到 Vercel Sandbox,不改业务逻辑。
注意一个关键区别:你在 tools/ 里写的工具跑在应用进程(带 process.env);而文件读写、Shell 执行、代码运行,默认进沙箱。
配置沙箱很简单:
// agent/sandbox/sandbox.ts
import { defineSandbox, vercelSandboxBackend } from "eve/sandbox";
export default defineSandbox({
backend: vercelSandboxBackend({ runtime: "node24" }), // 选运行时
});
我很喜欢这个设计背后的态度:不是禁止 Agent 写代码,而是默认它写出的代码不值得信任。
文件产物别污染源码。Agent 在 /workspace 下写的研究笔记、草稿、临时文件,是沙箱工作区,不是你的项目源码。把运行产物和 Agent 定义代码分清楚。
| 维度 | 直接跑应用进程 | 进沙箱 | 标叔的结论 |
|---|---|---|---|
| 文件删除风险 | 高 | 隔离 | 沙箱赢 |
| 依赖污染 | 可能 | 干净 | 沙箱赢 |
| 执行延迟 | 低 | 略高 | 进程略赢 |
| 配置成本 | 无 | 一个文件 | 平手 |