“权限审批” 功能用于配置智能体执行操作时采用的安全策略,主要包括三个方面:命令是否在沙箱中隔离执行、是否启用危险命令拦截和文件保护等安全检查,以及需要审批时是由用户、TraeCode 内置的 LLM Guardian、还是用户的自定义模型来决策。TraeCode 提供手动审批、自动审批和完全访问三种预设权限模式;如需更精细的控制,也可以通过配置自定义权限模式和全局生效的权限策略。

了解权限模式

TraeCode 提供的权限模式

TraeCode 提供手动审批、自动审批、完全访问三种预设权限模式:

模式描述
手动审批沙箱开启,命令在隔离环境中执行;危险命令拦截和文件保护已启用,需审批的操作由用户逐一确认。
自动审批

沙箱开启,命令在隔离环境中执行;危险命令拦截和文件保护已启用,需审批的操作由 TraeCode 内置的 LLM Guardian 自动判断是否放行。

提示:开启 “自动审批” 模式后,若你使用自定义模型,则会由该自定义模型进行审批。

完全访问沙箱关闭,命令直接在宿主机执行;文件系统完全读写,所有安全检查已禁用,不会触发审批。

除预设权限模式外,你还可以使用自定义权限模式。自定义配置通过 global.json 文件管理,可用于调整沙箱策略、审批决策方、风险场景规则、以及文件系统和网络访问策略。

系统内置的默认资源访问权限

在 “手动审批” 和 “自动审批” 模式下,TraeCode 会为智能体应用默认的文件系统访问范围和网络访问策略。

  • 文件系统访问权限 TraeCode 默认允许智能体访问以下目录,并按目录类型授予只读或读写权限。
    权限类型目录类型目录列表
    只读项目目录中的受保护目录.vscode
    ^^根目录/(默认策略:所有未显式声明为可写的目录均为只读)
    读写项目目录除 .trae、.vscode 和 .git 之外的项目文件与目录
    ^^临时目录
    • macOS:/tmp、/var/folders、TMPDIR 环境变量路径
    • Windows:~/AppData/Local/Temp、~/AppData/LocalLow/Temp
    • Linux:/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++ 等常用语言的工具链及其依赖目录。
  • 网络访问权限:默认允许访问全部网络。

智能体如何申请权限

当智能体执行的操作超出当前权限范围,或命中需要审批的安全规则时,TraeCode 会根据当前权限模式决定审批方式。

  • 手动审批 在 “手动审批” 模式下,如果智能体访问超出默认权限范围的文件路径,或执行的危险命令命中了规则,智能体会在对话流中展示审批卡片,由用户确认是否允许继续执行。
Image=759x353
Image=778x317
Image=756x318
  • 自动审批 在 “自动审批” 模式下,除危险命令外,原本需要用户审批的操作会交由 LLM Guardian 自动判断是否放行。 Image=450x80
  • 自定义 在自定义权限模式下,你可以细粒度配置哪些操作需要申请权限。例如,你可以关闭 MCP 工具的自动执行,并要求用户手动审批 MCP 工具调用。

使用流程

第一步:启用新权限系统

启用新权限系统后,TraeCode 会对工具调用进行细粒度的审批控制;关闭后将使用旧版自动运行设置。

启用新权限系统的步骤如下:

  1. 前往 设置 > Beta。
  2. 在 新权限体系 部分,打开 启用权限系统 开关。 Image=600x125

第二步:选择权限模式

  • 方式一:在对话书输入框中设置
    1. 在对话输入框左下方,点击权限模式选择图标。
    2. 从列表中选择所需的权限模式。 Image=699x242
  • 方式二:在设置中心设置
    1. 前往 设置 > 权限审批。
    2. 在 常规任务 > 权限模式 区域,选择所需的全权限模式。 Image=600x352

自定义权限模式和全局配置

资源授权、规则和自定义权限模式配置通过 ~/.trae-cn/permission/global.json 文件管理。

提示

如果使用 Remote SSH 或 WSL 连接到远端设备,需要单独为该设备配置自定义配置,无法复用本机的自定义配置。

该配置文件的结构如下:

{
  "customProfiles": {
    "defaultCustomProfile": {
      "displayName": "",
      "shellSandbox": {
        "enable": true,
        "onRestrict": "request_permission_retry_sandbox"
      },
      "approval": {
        "reviewer": "user",
        "sceneRules": {
          "commandAstDangerChecker": true,
          "shellFileProtection": false,
          "deleteToolApproval": false,
          "mcpToolApproval": false
        },
        "commandRules": {},
        "mcpRules": {}
      },
      "filesystem": {
        "default": "read_only"
      },
      "network": {
        "default": "allow"
      }
    }
  },
  "resourceAuthorization": {
    "filesystem": {
      "readWrite": [],
      "readOnly": []
    },
    "network": {
      "allow": [],
      "deny": []
    }
  }
}

如需自定义权限模式和全局配置,按以下步骤操作:

  1. 前往 设置 > 权限审批。
  2. 在 常规任务 > 权限模式 区域,点击 自定义配置 选项右侧的 打开配置 按钮。 Image=600x351 TraeCode 在编辑器内打开 global.json 文件。
  3. 在 global.json 文件中,写入自定义权限配置和全局配置。详情参考自定义权限模式配置参考和自定义全局权限配置参考。