Session 07
Sandbox / Execution / Security
Agent 一旦能读文件、运行命令、发消息、访问网络,就必须讨论执行边界。Sandbox 不是附加功能,而是架构核心。
1. 训练目标
本页要练会:能比较三类 agent 的执行环境和安全控制:Claude Code 的权限与 hooks,OpenClaw 的自托管 workspace/Gateway,Hermes 的 terminal backend 和工具权限。
主要依据:Claude permissions/hooks via SDK / Hermes configuration / OpenClaw workspace。
2. 三项目对照
| 维度 | Claude Code | OpenClaw | Hermes Agent |
|---|---|---|---|
| 执行环境 | 本地终端/IDE/web/SDK;可读写 repo、运行命令。 | Gateway 所在环境 + agent workspace + channel 连接。 | local shell、Docker、SSH remote、Modal、Daytona、Singularity 等 terminal backend。 |
| 控制手段 | permission mode、allowed tools、PreToolUse/PostToolUse hooks、checkpoint。 | workspace 隔离、auth profiles、agentDir、Gateway config。 | terminal backend 选择、toolsets、provider keys、plugin config。 |
| 主要风险 | 误改代码、危险命令、泄露 repo 内容、自动 commit/PR。 | 自托管服务暴露、channel 注入、workspace 读写边界。 | shell 后端过强、远程执行、长期任务、memory/tool 泄露。 |
3. 组件机制
| 机制 | 解释 |
|---|---|
| Permission mode | 决定哪些工具可自动执行,哪些需要用户确认。 |
| PreToolUse hook | 工具执行前拦截、校验、记录或阻断。 |
| Terminal backend | 命令实际运行的地方,决定隔离级别和 blast radius。 |
| Audit trail | 记录谁触发、模型建议、工具参数、结果和恢复动作。 |
4. 失败模式
| 失败模式 | 为什么危险 |
|---|---|
| 把 prompt 当安全边界 | 模型遵守说明不是权限控制,危险动作要在工具层拦截。 |
| 本地环境直连高风险工具 | agent 拥有 shell、ssh、token、浏览器但没有审计和最小权限。 |
| sandbox 假安全 | 容器挂载了敏感目录或共享 token,实际仍可越界。 |
5. 架构练习
- 为 Claude Code 自动修复任务设置 allowed tools 和 hook 策略。
- 比较 Hermes 的 Docker backend 和 local backend 的风险差异。
- 给 OpenClaw Gateway 设计最小权限部署。
6. 知识展开
上面的卡片是索引,点击后跳到对应的详细解释。阅读时不要只记名词,要同时记住组件边界、为什么需要它、三个项目怎么体现,以及你能用什么问题自检。
Sandbox
限制 agent 可读写文件、可执行命令、可访问网络和可使用凭据的执行边界。
Approval gate
高风险动作前要求用户、策略或系统确认。
Secret handling
密钥、token、凭据的读取、注入、遮蔽和禁止外泄策略。
Network boundary
控制 agent 能访问哪些外部服务、能否下载执行、能否上传数据。
Policy enforcement
把安全规则放在代码、权限系统、hook 或网关里强制执行。
Detailed Concepts
| 概念 | 是什么 | 为什么重要 | 项目对照 | 自检问题 |
|---|---|---|---|---|
| Sandbox | 限制 agent 可读写文件、可执行命令、可访问网络和可使用凭据的执行边界。 | agent 具备工具后就具备真实副作用,必须把风险放到系统层控制。 | Claude Code 有 permissions/hooks;OpenClaw 可通过自托管 workspace/Gateway 隔离;Hermes 可配置 terminal backend。 | 最坏情况下工具被滥用,损失范围是多少? |
| Approval gate | 高风险动作前要求用户、策略或系统确认。 | 审批不是打断体验,而是防止不可逆动作和权限升级。 | Claude Code 的 permission flow 是参考;OpenClaw 可在 Gateway/harness 层审批;Hermes 可在工具层或 backend 层限制。 | 哪些动作必须审批,哪些可自动执行? |
| Secret handling | 密钥、token、凭据的读取、注入、遮蔽和禁止外泄策略。 | agent 能读文件和跑命令时,secret 泄露风险显著上升。 | 三类系统都不能只靠 prompt 保密;需要文件权限、环境变量策略、输出 redaction 和网络限制。 | 工具输出中出现 secret 时如何拦截和审计? |
| Network boundary | 控制 agent 能访问哪些外部服务、能否下载执行、能否上传数据。 | 网络是数据外泄和供应链攻击的主要通道。 | Claude Code 需要命令和 MCP 边界;OpenClaw 可在 Gateway/部署层控制;Hermes 本地 automation 更需明确网络权限。 | 是否有 allowlist、denylist、代理审计和离线模式? |
| Policy enforcement | 把安全规则放在代码、权限系统、hook 或网关里强制执行。 | 提示词只能表达意图,不能成为最终安全边界。 | Claude hooks 可以强制阻止;OpenClaw harness/Gateway 可统一执行;Hermes 需要 backend/tool 层控制。 | 能否指出哪些规则不能交给模型判断? |