Skip to content

原文(日本語に翻訳)

パーミッションルールに Tool(param:value) 構文を追加し、ツールの入力パラメータ(* ワイルドカード対応)でマッチングできるようになりました。例: Agent(model:opus) でOpusサブエージェントをブロック

原文(英語)

Added Tool(param:value) syntax for permission rules to match a tool's input parameters (with * wildcard), e.g. Agent(model:opus) to block Opus subagents

概要

これまでパーミッションルールはツール名単位でしか制御できませんでしたが、Tool(param:value) 構文によりツールの入力パラメータを条件としたルールを設定できるようになりました。* ワイルドカードも使用可能で、特定のモデルやパスなど、パラメータ値に基づいた細粒度の制御が実現します。

基本的な使い方

settings.jsonpermissions セクションで以下の構文を使用します:

json
{
  "permissions": {
    "deny": [
      "Agent(model:opus)"
    ]
  }
}

パラメータ名と値は param:value の形式で指定します。* ワイルドカードで部分一致も可能です。

json
{
  "permissions": {
    "deny": [
      "Bash(command:rm*)"
    ]
  }
}

実践例

OpusモデルのサブエージェントをブロックしてコストをAコントロール

json
{
  "permissions": {
    "deny": [
      "Agent(model:claude-opus*)"
    ]
  }
}

コストが高いOpusモデルをサブエージェントで使用することを防ぎ、プロジェクトの予算を管理できます。

特定ディレクトリへのBashコマンドを制限

json
{
  "permissions": {
    "deny": [
      "Bash(command:*secret*)"
    ]
  }
}

コマンド文字列に secret を含む操作をブロックします。

特定のMCPツール呼び出しを制御

json
{
  "permissions": {
    "allow": [
      "mcp__database(query:SELECT*)"
    ],
    "deny": [
      "mcp__database(query:DROP*)",
      "mcp__database(query:DELETE*)"
    ]
  }
}

読み取り専用クエリのみ許可し、破壊的な操作をブロックする例。

複数ルールを組み合わせる

json
{
  "permissions": {
    "deny": [
      "Agent(model:opus)",
      "Bash(command:sudo*)",
      "Write(file_path:/etc/*)"
    ]
  }
}

注意点

  • param:value のパラメータ名はツールの実際の入力フィールド名と一致している必要があります
  • * ワイルドカードは文字列の前方・後方いずれにも使用可能です
  • allowdeny の両方でこの構文が使用できます
  • ルールが競合する場合は deny が優先されます
  • ワイルドカードのみ(Agent(model:*))は全パラメータ値にマッチします

関連情報