Sophclaw 中文文档 下载 App

文件沙箱隔离 — 限制 AI 能触碰的目录范围

什么是文件沙箱

文件沙箱隔离的核心思想很简单:每个 Agent 有自己的"地盘"(workspace),默认只能读写自己地盘里的文件。其他目录一律不允许访问。

这和操作系统的沙箱、Docker 容器隔离是同一个设计思路——通过物理边界限制 AI 的操作半径,即使 AI 出错也只影响自己的地盘。

默认行为

每个 Agent 创建后都会被分配一个独立的 workspace 目录:

~/.openclaw/workspace/           ← 主 Agent 的地盘
~/.openclaw/workspace-feishu/    ← 飞书 Agent 的地盘
~/.openclaw/workspace-support/   ← 客服 Agent 的地盘

默认情况下:

怎么授权额外目录

如果你确实需要让 Agent 读写 workspace 之外的目录(比如让主 Agent 处理 C:\Users\me\work\ 下的文件),需要显式授权:

配置文件方式:在 Agent 配置中添加允许访问的目录列表:

{
  "agents": {
    "list": [
      {
        "id": "main",
        "workspace": "~/.openclaw/workspace",
        "allowedDirs": [
          "C:\\Users\\me\\work",
          "C:\\Users\\me\\desktop-data"
        ]
      }
    ]
  }
}

对话方式:

"允许我访问 C:\Users\me\work 目录,这个目录里有我要处理的数据"

沙箱 + 结果校验 = 双重保护

文件沙箱负责"物理边界"——Agent 不能碰地盘外的文件。但如果 Agent 在自己的地盘里做了危险操作(比如 rm -rf *),沙箱拦不住。

这时需要结果校验规则(见上一篇)来补:

两层叠加,即使 AI 出问题也有兜底。

一个配置实例

假设你有以下目录结构:

C:\Users\me\
├── work\           ← 正式工作目录,允许读写
├── personal\       ← 个人文档,允许读不允许写
├── backup\         ← 备份目录,只读
├── .openclaw\      ← Sophclaw 自己的目录
└── ...其他系统目录  ← 一律不允许访问

对应的 Agent 配置:

{
  "id": "main",
  "workspace": "~/.openclaw/workspace",
  "allowedDirs": [
    "C:\\Users\\me\\work",
    "C:\\Users\\me\\personal",
    "C:\\Users\\me\\backup"
  ],
  "dirPermissions": {
    "C:\\Users\\me\\personal": "read",
    "C:\\Users\\me\\backup": "read"
  }
}

沙箱会带来什么限制

沙箱不是零成本——它在保护你的同时也限制了灵活性:

遇到"Sophclaw 说找不到某个文件"时,先检查是不是那个文件在被禁止访问的目录里——90% 的"找不到文件"问题根因在这里。

安全 vs 便利的权衡

文件沙箱是典型的安全-便利 tradeoff:

推荐按 Agent 精确授权——先从收紧开始,遇到需要额外访问的情况再逐步放开。比反过来(先全放开再逐步收紧)安全得多。

个人用户的最小可用配置

如果你是个人用户、只有一个主 Agent:

  1. 给 Agent 一个独立的 workspace(Sophclaw 默认就会分配)
  2. 授权你的工作目录(比如 C:\Users\me\work)
  3. 其他目录一律不授权

就这么简单。其他什么都不用改——默认安全配置模板够个人用了。