exec コマンドはサンドボックス環境内に制限されます。昇格モードを使用すると、代わりにエージェントがサンドボックスを抜け出して外部でコマンドを実行でき、承認ゲートも設定できます。
昇格モードによって動作が変わるのは、エージェントがサンドボックス化されている場合のみです。サンドボックス化されていないエージェントでは、exec はすでにホスト上で実行されます。
ディレクティブ
スラッシュコマンドを使用して、セッションごとに昇格モードを制御します。/elev on|off|ask|full としても使用できます。
現在のレベルを確認するには、引数なしで /elevated を送信します。
仕組み
1
利用可否を確認する
設定で昇格を有効にし、送信者を許可リストに含める必要があります。
2
レベルを設定する
ディレクティブのみのメッセージを送信して、セッションのデフォルトを設定します。または、インラインで使用します(そのメッセージにのみ適用されます)。
3
コマンドをサンドボックスの外部で実行する
昇格が有効な場合、
exec 呼び出しはサンドボックスの外部に移ります。有効なホストはデフォルトで
gateway となり、設定またはセッションの exec ターゲットが
node の場合は node となります。full モードでは、解決された exec の
モード/ホスト承認ポリシーがすでに完全に許容的な場合(security full、
ask off)、exec の承認は省略されます。それ以外の場合は、通常の承認ポリシーが引き続き適用されます。
on/ask モードでは、設定された承認ルールが常に適用されます。解決順序
- メッセージ内のインラインディレクティブ(そのメッセージにのみ適用)
- セッションオーバーライド(ディレクティブのみのメッセージを送信して設定)
- グローバルデフォルト(設定内の
agents.defaults.elevatedDefault)
利用可否と許可リスト
- グローバルゲート:
tools.elevated.enabled(trueである必要があります) - 送信者の許可リスト:チャンネルごとのリストを持つ
tools.elevated.allowFrom - エージェントごとのゲート:
agents.entries.*.tools.elevated.enabled(制限をさらに厳しくすることのみ可能。グローバルゲートとエージェントごとのゲートの両方がtrueである必要があります) - エージェントごとの許可リスト:
agents.entries.*.tools.elevated.allowFrom(送信者はグローバルとエージェントごとの両方に一致する必要があります) - チャンネル提供のフォールバック許可リスト:チャンネル Plugin は、SDK アダプターフックを通じてフォールバック許可リストを任意で提供できます。これは
tools.elevated.allowFrom.<provider>が設定されていない場合に使用されます。現在、このフックを実装している同梱チャンネルはないため、現時点では実際上、すべてのプロバイダーに明示的なtools.elevated.allowFrom.<provider>エントリが必要です。 - すべてのゲートを通過する必要があります。通過しない場合、昇格は利用不可として扱われます
昇格によって制御されないもの
- ツールポリシー:
execがツールポリシーによって拒否されている場合、昇格でオーバーライドすることはできません。 - ホスト選択ポリシー:昇格によって
autoが自由なホスト間オーバーライドになることはありません。設定またはセッションの exec ターゲットルールを使用し、ターゲットがすでにnodeである場合にのみnodeを選択します。 /execとは別個:/execディレクティブは、承認された送信者についてセッションごとの exec デフォルト(ホスト、セキュリティ、確認、Node)を調整するものであり、昇格モードを必要としません。
bash チャットコマンド(
! プレフィックス、/bash エイリアス)は別個のゲートであり、独自の tools.bash.enabled フラグに加えて tools.elevated を有効にする必要があります。昇格を無効にすると、! シェルコマンドも実行できなくなります。関連項目
Exec ツール
エージェントからシェルコマンドを実行します。
Exec の承認
exec の承認および許可リストシステムです。サンドボックス化
Gateway レベルのサンドボックス設定です。
サンドボックス、ツールポリシー、昇格の比較
ツール呼び出し時に3つのゲートがどのように組み合わされるかを説明します。