昇格モード(/elevated ディレクティブ)
何を行うか
/elevated onは Gateway ホスト上で実行され、exec の承認を維持します(/elevated askと同等)。/elevated fullは Gateway ホスト上で実行され、かつ exec を自動承認します(exec 承認をスキップします)。/elevated askは Gateway ホスト上で実行されますが、exec 承認は維持します(/elevated onと同等)。on/askはexec.security=fullを 強制しません。設定されたセキュリティ/確認ポリシーが引き続き適用されます。- エージェントが サンドボックス化 されている場合にのみ挙動が変わります(それ以外では exec は既にホスト上で実行されます)。
- ディレクティブ形式:
/elevated on|off|ask|full、/elev on|off|ask|full。 - 受け付けられるのは
on|off|ask|fullのみです。それ以外はヒントを返し、状態は変更されません。
制御するもの(およびしないもの)
- アベイラビリティゲート:
tools.elevatedはグローバルベースラインです。 利用可否ゲート:tools.elevatedがグローバルな基準です。agents.list[].tools.elevatedはエージェントごとに昇格をさらに制限できます(両方が許可する必要があります)。 利用可否ゲート:tools.elevatedがグローバルな基準です。agents.list[].tools.elevatedはエージェントごとに昇格をさらに制限できます(両方が許可する必要があります)。 - セッション単位の状態:
/elevated on|off|ask|fullは現在のセッションキーに対して昇格レベルを設定します。 - インラインディレクティブ: メッセージ内の
/elevated on|ask|fullは、そのメッセージのみに適用されます。 - グループ: グループチャットでは、エージェントがメンションされた場合にのみ昇格ディレクティブが尊重されます。メンション要件を回避するコマンド専用メッセージは、メンションされたものとして扱われます。 メンション要件をバイパスするコマンドのみのメッセージは、メンションとして扱われます。 メンション要件をバイパスするコマンドのみのメッセージは、メンションとして扱われます。
- ホスト実行: 昇格は
execを Gateway ホストへ強制します。fullはsecurity=fullも設定します。 - 承認:
fullは exec 承認をスキップします。on/askは、許可リスト/確認ルールが要求する場合に承認を尊重します。 - 非サンドボックス化エージェント: 実行場所に関しては no-op です。ゲーティング、ログ、ステータスのみに影響します。
- ツールポリシーは引き続き適用:
execがツールポリシーで拒否されている場合、昇格は使用できません。 /execとは別:/execは許可された送信者向けのセッション既定値を調整するもので、昇格は不要です。
解決順序
- メッセージ内のインラインディレクティブ(そのメッセージのみに適用)。
- セッション上書き(ディレクティブのみのメッセージ送信で設定)。
- グローバル既定(設定内の
agents.defaults.elevatedDefault)。
セッション既定値の設定
- ディレクティブのみ のメッセージを送信します(空白可)。例:
/elevated full。 - 確認の返信が送信されます(
Elevated mode set to full.../Elevated mode disabled.)。 - 昇格アクセスが無効、または送信者が承認済み許可リストに含まれていない場合、ディレクティブは実行可能なエラーを返し、セッション状態は変更されません。
- 引数なしで
/elevated(または/elevated:)を送信すると、現在の昇格レベルを確認できます。
利用可否 + 許可リスト
- 機能ゲート:
tools.elevated.enabled(コードが対応していても、設定で既定をオフにできます)。 - 送信者許可リスト:
tools.elevated.allowFrom。プロバイダーごとの許可リスト(例:discord、whatsapp)。 - エージェント単位のゲート:
agents.list[].tools.elevated.enabled(任意。さらに制限することのみ可能)。 - エージェント単位の許可リスト:
agents.list[].tools.elevated.allowFrom(任意。設定時は、送信者が グローバル + エージェント単位 の両方の許可リストに一致する必要があります)。 - Discord のフォールバック:
tools.elevated.allowFrom.discordが省略された場合、channels.discord.dm.allowFromのリストがフォールバックとして使用されます。tools.elevated.allowFrom.discord([]であっても)を設定して上書きできます。エージェント単位の許可リストではフォールバックは使用されません。tools.elevated.allowFrom.discord([])をオーバーライドするように設定します。 エージェントごとの許可リストはフォールバックを使用しない **。tools.elevated.allowFrom.discord([])をオーバーライドするように設定します。 エージェントごとの許可リストはフォールバックを使用しない **。 - すべてのゲートを通過する必要があります。そうでない場合、昇格は利用不可として扱われます。
ログ + ステータス
- 昇格 exec の呼び出しは info レベルでログに記録されます。
- セッションステータスには昇格モードが含まれます(例:
elevated=ask、elevated=full)。