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 CodeOpenClawHermes 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. 架构练习

  1. 为 Claude Code 自动修复任务设置 allowed tools 和 hook 策略。
  2. 比较 Hermes 的 Docker backend 和 local backend 的风险差异。
  3. 给 OpenClaw Gateway 设计最小权限部署。

6. 知识展开

上面的卡片是索引,点击后跳到对应的详细解释。阅读时不要只记名词,要同时记住组件边界、为什么需要它、三个项目怎么体现,以及你能用什么问题自检。

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 层控制。能否指出哪些规则不能交给模型判断?