面向 AI 助手:本页的 Markdown 版本位于 https://ark.volcengine.com/region:cn-beijing/docs/tool-permission-policy.md,全部文档索引见 https://ark.volcengine.com/llms.txt。

工具权限策略

工具权限策略用于控制 Agent 发起工具调用时,是自动执行,还是暂停等待确认。

当前权限策略只作用于服务端执行的工具:

  • 内置工具集 agent_toolset_20260916
  • 多模态工具集 agent_toolset_multimodal_20260825
  • MCP 工具集 mcp_toolset

权限策略类型#

策略 说明
always_allow 工具调用自动执行,不需要人工确认。
always_ask 工具调用前暂停,等待确认后再继续。

权限策略的默认值取决于是否提供整个 default_config:

配置 内置工具集 MCP 工具集
省略整个 default_config 服务端保存 enabled=true 和 always_allow。 服务端保存 enabled=true 和 always_allow。
提供 default_config,但省略 permission_policy 运行时使用 always_allow。 运行时使用 always_ask。
显式配置 permission_policy 使用配置的策略。 使用配置的策略。

为了让 Agent 回显和运行时行为可直接核对,建议始终显式配置 default_config.enabled 和 default_config.permission_policy。

为整个工具集设置权限策略#

你可以在 default_config.permission_policy 中为整个工具集配置统一策略。

下面的示例把内置工具集的默认策略改成 always_ask:

Bash
curl https://ark.cn-beijing.volces.com/api/v3/agents \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "谨慎执行 Agent",
    "model": {
      "id": "doubao-seed-2-1-pro-260628"
    },
    "tools": [
      {
        "type": "agent_toolset_20260916",
        "default_config": {
          "enabled": true,
          "permission_policy": {
            "type": "always_ask"
          }
        }
      }
    ]
  }'

不要只传 default_config.enabled 而省略 permission_policy。内置工具和 MCP 工具对空策略采用不同的运行时默认值。

为单个工具覆盖权限策略#

除了为整个工具集设置默认策略外,你还可以在 configs 中对单个工具做更细粒度的覆盖。

下面的示例保留内置工具集默认自动执行,但要求 bash 每次执行前都先确认:

Bash
curl https://ark.cn-beijing.volces.com/api/v3/agents \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "命令审慎 Agent",
    "model": {
      "id": "doubao-seed-2-1-pro-260628"
    },
    "tools": [
      {
        "type": "agent_toolset_20260916",
        "default_config": {
          "enabled": true,
          "permission_policy": {
            "type": "always_allow"
          }
        },
        "configs": [
          {
            "name": "bash",
            "enabled": true,
            "permission_policy": {
              "type": "always_ask"
            }
          }
        ]
      }
    ]
  }'

这种覆盖关系适合把大部分低风险工具保持自动执行,只对高风险工具额外加一道确认。

为 MCP 工具集设置权限策略#

下面的示例将可信 MCP Server 的工具集显式设置为 always_allow,便于直接核对自动执行范围:

Bash
curl https://ark.cn-beijing.volces.com/api/v3/agents \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "GitHub 协作 Agent",
    "model": {
      "id": "doubao-seed-2-1-pro-260628"
    },
    "mcp_servers": [
      {
        "type": "url",
        "name": "github",
        "url": "https://mcp.example.com/github"
      }
    ],
    "tools": [
      {
        "type": "agent_toolset_20260916",
        "default_config": {
          "enabled": true,
          "permission_policy": {
            "type": "always_allow"
          }
        }
      },
      {
        "type": "mcp_toolset",
        "mcp_server_name": "github",
        "default_config": {
          "enabled": true,
          "permission_policy": {
            "type": "always_allow"
          }
        }
      }
    ]
  }'

使用建议#

  • 对只读工具,可以优先考虑 always_allow。
  • 对会修改文件、执行命令或访问外部系统的工具,建议优先考虑 always_ask。
  • 对 MCP 工具,建议先按最小权限原则收敛 configs,再决定是否自动放行。

工具集配置以及 user.tool_confirmation 对应的运行时事件流,详见 Tools。如果你要管理 MCP Server 及其工具,详情请参见 MCP。

相关文档#