🔒 Tool Sandbox(工具沙箱)

给 Agent 一堆工具就像给小孩一把瑞士军刀——不装个安全套,迟早出事。Tool Sandbox 就是那个安全套。

📖 什么是 Tool Sandbox?

Tool Sandbox 是 OpenClaw 中用于隔离和限制工具执行环境的安全机制。它确保 Agent 调用的每个工具都在受控环境中运行,防止越权访问、恶意操作和资源滥用。

🛡️ 核心安全层

层级机制作用
权限白名单toolsAllow / toolsDeny控制 Agent 可调用哪些工具
执行隔离沙箱进程工具在独立进程中运行
资源限制CPU/内存/时间限制防止资源耗尽攻击
审批机制exec ask/elevated高危操作需要人工确认

🔧 OpenClaw 中的 Sandbox 配置

// 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││       │
│  │  └─────┘ └─────┘ └───┘│        │
│  └────────────────────────┘        │
└─────────────────────────────────────┘

💡 实战应用场景

场景1:限制 exec 命令

// 只允许执行安全命令
{
  "exec": {
    "allow": ["curl", "ls", "cat"],
    "deny": ["rm -rf", "sudo", "chmod 777"]
  }
}

场景2:Cron 任务的工具限制

// 定时任务只允许使用特定工具
{
  "payload": {
    "kind": "agentTurn",
    "toolsAllow": ["web_search", "read", "write"]
  }
}

⚡ Sandbox vs 直接执行

特性Sandbox 模式直接执行
安全性✅ 高❌ 低
性能略有开销原生性能
权限控制细粒度
适用场景生产环境开发调试

🔗 相关推荐

📖 术语百科
Agent Sandbox(Agent沙箱)详解
📖 术语百科
MCP Security(MCP安全机制)详解
📖 术语百科
Function Calling(函数调用)详解