Elevated モード(/elevated ディレクティブ)

機能

  • /elevated on は Gateway ホスト上で実行し、exec 承認を維持します(/elevated ask と同じ)。
  • /elevated full は Gateway ホスト上で実行し、exec 承認を自動スキップします。
  • /elevated ask は Gateway ホスト上で実行しますが、exec 承認を維持します(/elevated on と同じ)。
  • on/askexec.security=full を強制しません。設定されたセキュリティ/ask ポリシーがそのまま適用されます。
  • エージェントがサンドボックス化されている場合にのみ動作が変わります(それ以外では exec は既にホスト上で実行されます)。
  • ディレクティブ形式: /elevated on|off|ask|full/elev on|off|ask|full
  • on|off|ask|full のみ受け付けます。それ以外はヒントを返し、状態は変更されません。

制御対象(と制御対象外)

  • 利用可否ゲート: tools.elevated がグローバルベースラインです。agents.list[].tools.elevated でエージェントごとにさらに制限可能(両方が許可する必要あり)。
  • セッション単位の状態: /elevated on|off|ask|full で現在のセッションキーの elevated レベルを設定。
  • インラインディレクティブ: メッセージ内の /elevated on|ask|full はそのメッセージにのみ適用。
  • グループ: グループチャットでは、エージェントがメンション対象の場合にのみ elevated ディレクティブが有効。メンション要件をバイパスするコマンドのみのメッセージはメンション済みとして扱われます。
  • ホスト実行: elevated は exec を Gateway ホストに強制。full はさらに security=full を設定。
  • 承認: full は exec 承認をスキップ。on/ask はアローリスト/ask ルールが要求する場合に承認を適用。
  • 非サンドボックスエージェント: 実行場所については変更なし。ゲーティング、ログ、ステータスにのみ影響。
  • ツールポリシーは依然として適用: ツールポリシーで exec が拒否されている場合、elevated は使用不可。
  • /exec とは別: /exec は認可済み送信者のセッション単位のデフォルトを調整するもので、elevated は不要。

解決順序

  1. メッセージ上のインラインディレクティブ(そのメッセージにのみ適用)。
  2. セッションオーバーライド(ディレクティブのみのメッセージ送信で設定)。
  3. グローバルデフォルト(設定の agents.defaults.elevatedDefault)。

セッションデフォルトの設定

  • ディレクティブのみのメッセージ(前後の空白は許可)を送信。例: /elevated full
  • 確認メッセージが返信されます(Elevated mode set to full... / Elevated mode disabled.)。
  • elevated アクセスが無効、または送信者が承認済みアローリストにない場合、ディレクティブはアクション可能なエラーを返し、セッション状態を変更しません。
  • 引数なしの /elevated(または /elevated:)を送信すると、現在の elevated レベルを確認できます。

利用可否とアローリスト

  • 機能ゲート: tools.elevated.enabled(コードがサポートしていても、設定でデフォルトオフにできる)。
  • 送信者アローリスト: tools.elevated.allowFrom(プロバイダー別のアローリスト、例: discordwhatsapp)。
  • プレフィックスなしのアローリストエントリは送信者スコープの ID 値のみに一致(SenderIdSenderE164From)。受信者ルーティングフィールドは elevated 認可に使用されません。
  • 変更可能な送信者メタデータには明示的なプレフィックスが必要:
    • name:<value>SenderName に一致
    • username:<value>SenderUsername に一致
    • tag:<value>SenderTag に一致
    • id:<value>from:<value>e164:<value> は明示的な ID 指定用
  • エージェント単位のゲート: agents.list[].tools.elevated.enabled(任意、制限の追加のみ可能)。
  • エージェント単位のアローリスト: agents.list[].tools.elevated.allowFrom(任意、設定時はグローバル+エージェント単位の両方のアローリストに一致する必要あり)。
  • Discord フォールバック: tools.elevated.allowFrom.discord が省略されている場合、channels.discord.allowFrom リストがフォールバックとして使用(レガシー: channels.discord.dm.allowFrom)。tools.elevated.allowFrom.discord を設定([] でも可)するとオーバーライド。エージェント単位のアローリストはフォールバックを使用しません
  • すべてのゲートが通過する必要があり、通らない場合は elevated は利用不可として扱われます。

ログとステータス

  • Elevated の exec 呼び出しは info レベルでログに記録。
  • セッションステータスに elevated モードが含まれます(例: elevated=askelevated=full)。