功能
沙盒
沙盒限制了代理进程及其子进程可以读取、写入和访问网络的内容(Linux 上的 Landlock,macOS 上的 Seatbelt)。默认关闭。权限门控决定工具调用是否运行;沙盒限制了已批准调用的操作范围 — 参见权限。
配置文件
| 配置文件 | 文件系统读取 | 文件系统写入 | 子进程网络 | 使用场景 |
|---|---|---|---|---|
off | 无限制 | 无限制 | 允许 | 无沙盒(默认) |
workspace | 所有位置 | 当前工作目录、~/.grok/、临时目录 | 允许 | 正常开发 |
devbox | 所有位置 | 除 /data 外的顶级目录 | 允许 | 云端开发环境 |
read-only | 所有位置 | 仅 ~/.grok/ 和临时目录 | 阻止 | 代码审查、审计 |
strict | 当前工作目录和系统路径 | 当前工作目录、~/.grok/、临时目录 | 阻止 | 不可信的代码库 |
| 限制 | 详情 |
|---|---|
| 子进程网络 | 仅在 Linux 上强制执行;在 macOS 上对 read-only/strict 无效 |
| 凭据 | 内置功能无法永久保护 ~/.ssh 等路径;使用自定义 deny 列表 |
~/.grok/ | 在沙盒配置文件下保持可写,以便会话可以持久化 |
| 进程内网络 | 模型 API 和网络工具不受子进程网络设置的限制 |
启用配置文件
| 机制 | 示例 |
|---|---|
| CLI | grok --sandbox workspace |
| 配置文件 | 在 ~/.grok/config.toml 中设置 [sandbox] profile = "workspace" |
| 环境变量 | GROK_SANDBOX=workspace |
| 管理的版本固定 | requirements.toml(可以覆盖 CLI 设置)— 企业版 |
自定义配置文件
在 ~/.grok/sandbox.toml 或项目 .grok/sandbox.toml 中定义命名配置文件:
text
[profiles.my-profile]
extends = "workspace"
restrict_network = true
deny = ["/secrets", "**/.env", "**/*.pem"]使用 --sandbox my-profile 或 [sandbox] profile 进行选择。内置名称无法重新定义以供选择。字段详情:设置参考。
对于不可信的代码库,将严格配置文件与窄范围的权限允许(或无头模式的 dontAsk)结合使用。