沙箱
沙箱为智能体生成的命令提供受限的执行环境,确保智能体在安全隔离的环境中运行命令,防止未经授权的文件访问。
支持的操作系统
-
macOS
-
Windows(包括 Windows 原生系统以及 Remote WSL 2)
-
Linux:Debian 10 及以上、Ubuntu 20.04 及以上(通过 Remote SSH 和 Bubblewrap 实现)
安全策略:文件访问控制
提示
- 当前安全策略不涉及网络访问。
- 读写权限继承当前用户权限;当读写与只读权限冲突时,以只读权限为准。
启用沙箱后,TRAE 的文件目录访问权限如下:
| 权限类型 | 目录类型 | 目录列表 |
|---|---|---|
| 只读 | 项目目录中的受保护目录 | .vscode |
| 只读 | 根目录 | /(默认策略:所有未显式声明为可写的目录均为只读) |
| 读写 | 项目目录 | 除 .trae、.vscode 和 .git 之外的项目文件与目录 |
| 读写 | 临时目录 | macOS:/tmp、/var/folders、TMPDIR 环境变量路径Windows: ~/AppData/Local/Temp、~/AppData/LocalLow/TempLinux: /tmp、TMPDIR 环境变量路径 |
| 读写 | 缓存目录 | macOS:~/Library/Caches、~/.cache、XDG_CACHE_HOME 环境变量路径Linux: ~/.cache、XDG_CACHE_HOME 环境变量路径 |
| 读写 | 通用工具依赖目录 | macOS & Linux:~/.local/lib、~/.local/bin、~/.local/share(通常用于 pip、uv/uvx、npm/pnpm、cmake 等工具的依赖目录)Windows: LOCALAPPDATA 环境变量路径内的常见工具依赖的路径(pip、uv/uvx、npm/pnpm 等) |
| 读写 | 常用语言的工具链及其依赖目录 | Go、Java、Python、Node.js、Rust 和 C++ 等常用语言的工具链及其依赖目录。 |
使用流程
第一步:在操作系统中配置环境
使用沙箱前,需要根据你所使用的操作系统,完成相应的环境配置。
平台选项:macOS · Windows · WSL 2 & Linux
基于 macOS 的 sandbox-exec 工具,TRAE 会自动为你创建一个受限的命令执行环境。你无需进行任何额外配置。
第二步:在 TRAE 中启用沙箱
在 TRAE 中启用沙箱后,智能体将自动在沙箱中运行命令。启用沙箱的步骤如下:
-
在 IDE 模式界面中,点击界面右上角的 设置 图标,进入设置中心。
-
或
-
在 SOLO 模式界面中,点击对话面板右上角的 设置 图标,进入设置中心。
-
在左侧导航栏中,选择 对话流,进入 对话流 面板。
-
在 自动运行 部分的 自动运行命令 处,为 IDE 和/或 SOLO 模式选择 沙箱运行(支持白名单) 模式。
-
在 白名单作用于IDE / SOLO 处,按需将命令前缀加入白名单。
-
白名单中的命令将跳过沙箱,直接在沙箱外执行。
高风险命令的运行策略
在智能体运行过程中,若检测到高风险命令,系统会在对话流中提示。你可以按需选择:
-
跳过:跳过该命令,不运行。
-
添加 { runningCommandList} 到白名单:将该命令的前缀添加到白名单,之后可在沙箱外运行相关命令。
-
运行:本次在沙箱内运行该命令。