给 Agent 一堆工具就像给小孩一把瑞士军刀——不装个安全套,迟早出事。Tool Sandbox 就是那个安全套。
Tool Sandbox 是 OpenClaw 中用于隔离和限制工具执行环境的安全机制。它确保 Agent 调用的每个工具都在受控环境中运行,防止越权访问、恶意操作和资源滥用。
| 层级 | 机制 | 作用 |
|---|---|---|
| 权限白名单 | toolsAllow / toolsDeny | 控制 Agent 可调用哪些工具 |
| 执行隔离 | 沙箱进程 | 工具在独立进程中运行 |
| 资源限制 | CPU/内存/时间限制 | 防止资源耗尽攻击 |
| 审批机制 | exec ask/elevated | 高危操作需要人工确认 |
// openclaw.json 中的工具权限配置
{
"tools": {
"allow": ["web_search", "read", "write"],
"deny": ["exec", "gateway"]
},
"exec": {
"security": "sandbox",
"ask": "on-miss"
}
}
┌─────────────────────────────────────┐
│ OpenClaw Gateway │
├─────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ │
│ │ Agent A │ │ Agent B │ │
│ └────┬─────┘ └────┬─────┘ │
│ │ │ │
│ ┌────▼──────────────▼────┐ │
│ │ Tool Sandbox Layer │ │
│ │ ┌─────┐ ┌─────┐ ┌───┐│ │
│ │ │exec │ │ net │ │fs ││ │
│ │ │sandbox│ │filter│ │acl││ │
│ │ └─────┘ └─────┘ └───┘│ │
│ └────────────────────────┘ │
└─────────────────────────────────────┘
// 只允许执行安全命令
{
"exec": {
"allow": ["curl", "ls", "cat"],
"deny": ["rm -rf", "sudo", "chmod 777"]
}
}
// 定时任务只允许使用特定工具
{
"payload": {
"kind": "agentTurn",
"toolsAllow": ["web_search", "read", "write"]
}
}
| 特性 | Sandbox 模式 | 直接执行 |
|---|---|---|
| 安全性 | ✅ 高 | ❌ 低 |
| 性能 | 略有开销 | 原生性能 |
| 权限控制 | 细粒度 | 无 |
| 适用场景 | 生产环境 | 开发调试 |