コンテンツにスキップ
17.5k

アドバイザー

アドバイザーはワーカーのタスクをレビューし助言を返す独立したエキスパートモデルです。相談は OpenCodex がエンドツーエンドで所有します。プロキシはワーカーのターンに合成 advisor ツールを注入し、通常のルーティング権威を通じて相談を自ら実行し、助言を再注入して元のワーカーを継続させます。ワーカーは委譲も spawn もせず、プロバイダー資格情報も持ちません。

これはサブエージェントサーフェス(エージェント設定を参照)とは異なります。サブエージェントは Codex のコラボレーションツールによるワーカー主導の委譲です。アドバイザーはクライアントから見えないプロキシ側のサイドカーです — 何も spawn しないワーカーでも助言を受けられます。

ダッシュボードの Advisor ページでカタログからモデルを選択します。ネイティブ、プロバイダー、アカウント指定、カスタム、コンボの識別子をそのまま保存します。無効なモデルと初期選択待ちのモデルは新規選択に表示されません。選択可能な一覧にない保存済み識別子は警告付きで保持され、別のモデルを選ぶか解除するまで変更されません。読み込みに失敗しても選択は保持され、再試行できます。テキストの助言を返せるモデルを選んでください。カタログは相談の互換性を保証しません。CLI と API は引き続きルーター対応のモデル文字列を受け付けます。

{
"advisor": {
"enabled": true,
"model": "gpt-6-astra",
"effort": "max",
"policy": "preflight",
"contextSharingConsent": "v1"
}
}
フィールド 型 既定値 意味
enabled? boolean false マスタースイッチ。無効ならリクエストパスにアドバイザーの動作は一切ありません。
model? string — エキスパートモデル。ルーターが受け付ける任意のモデル文字列:ネイティブモデル(gpt-6-astra)、明示的な provider/model(anthropic/claude-sonnet-4-6、xai/grok-...)、アカウント修飾ネイティブモデル。クロスプロバイダーを完全にサポートします。
effort? string "max" アドバイザー呼び出しの推論強度(low〜ultra)。
policy? "manual" | "preflight" | "adaptive" "manual" 相談のタイミング。
maxConsultationsPerTask? integer 3 適応型タスクの相談上限(1〜3回、手動呼び出しを含む)。
timeoutMs? number 120000 ループバック相談のタイムアウト。
contextSharingConsent? "v1" なし 設定されたアドバイザーのプロバイダーへタスク文脈を送ることへの操作者の同意。現在有効な値は "v1" だけです。欠落、古い値、その他の値ではタスク内容は送られません。enabled: true だけでは同意になりません。

ダッシュボードの Advisor ページまたは ocx advisor status|on|off|set --model <model> --effort <effort> --policy <manual|preflight|adaptive> で管理します。

現在の同意がないとき、ocx advisor on はプロバイダー間送信を有効にしません。開示を表示して停止します。ocx advisor on --ack-context-sharing と ocx advisor consent が v1 を記録します。ocx advisor consent --revoke は同意を消し、送信を直ちに止めます。ocx advisor set は同意を与えません。ダッシュボードの同意チェックは初期状態でオフです。

  • manual — ワーカーが合成 advisor ツールを明示的に呼び出したときのみ相談します。呼び出しはプロキシが傍受し、クライアントには表示されず、ローカルツールとしても実行されません。
  • preflight — OpenCodex はさらにタスクごとに 1 回の相談を自動的に試みます。相談が失敗した場合、それは助言として扱われず、失敗の台帳エントリが期限切れになった後に再試行されます。ワーカーが最初のオリエンテーション証拠(最新のユーザーメッセージ以降のアシスタントのツール呼び出しまたはツール結果)を生成した後、ワーカーがツールを呼ばなくても、プロキシはエキスパートに相談し、次のターンの前に助言を注入します。トリガーは決定論的で文書化された近似であり、意味的な「詰んだ」検出ではありません。

操作者が文脈共有の同意 v1 を記録するまで、タスク文脈は送られません。開示範囲が広がったときに古い同意を再利用せず v2 を要求できるよう、同意はバージョン付きです。ランタイムが強制します。欠落または期限切れのときはアドバイザーは実行不能(advisor_context_sharing_consent_required)ですが、コーディング要求自体は失敗しません。ワーカー、アドバイザーモデル、タスク文中の文字列は同意を与えられません。

相談が送ることがあるもの:

  • 最新のユーザー依頼
  • 解析済み会話に見えるユーザー、アシスタント、開発者のテキスト
  • ツール呼び出しと引数
  • ツール結果
  • ワーカーのツール一覧と説明
  • ワーカーの識別子と設定されたアドバイザーモデル
  • ワーカーが advisor() を呼んだときの任意の焦点質問

設定されたアドバイザーのプロバイダーは、ワーカーのプロバイダーと異なる場合があります。

OpenCodex はプロバイダー API キー、Authorization ヘッダー、OAuth トークン、バックエンド専用の設定秘密、プロセス環境、隠された思考連鎖をそのプロンプトへ入れません。暗号化されたプロバイダー私有の推論を復号して転送することもしません。タスク内容は一般には秘密除去されません。 タスクへ貼られた鍵、ツールが読んだファイル内の秘密、ツールやログが出力したトークンは送られることがあります。OpenCodex は汎用の DLP を実行しません。

手動の助言は、ワーカー自身が行った advisor 呼び出しに対するツール結果です。結果は JSON オブジェクトです。advice はアドバイザーモデルのテキストです。status はランタイムが書きます。

自動助言の引用済み JSON は、別の user ロールの助言メッセージで渡します。developer メッセージには固定のランタイム指示だけを残し、アドバイザーの生成文は developer/system に入りません。OpenAI Chat と Anthropic の両方で、偽のツール呼び出しなしに送れます。引用は構造の破壊やフィールドの偽造を防ぎますが、自然言語によるプロンプトインジェクションを完全には防ぎません。専用プロトコルなら通常のユーザー入力と区別しやすくなります。1 リクエストにつき相談は最大 3 回、ワーカー継続は最大 4 回です。上限で advisor ツールを除去し、再呼び出しには上限結果付きの最終継続を 1 回だけ許可します。さらに呼ばれた場合は 502 advisor_continuation_limit で終了し、追加送信しません。空の完了の再試行も同じ上限を共有します。

抑制はアドバイザーの文字列を読みません。自動の重複排除はサーバー所有の台帳だけです。転送文を写した developer メッセージも preflight を抑制しません。

各相談は実際の追加モデル呼び出しです。ワーカーのトークン数に合算されず、アドバイザーモデルの使用量として記録され、各相談はトリガー・時間・状態・使用量を含む [advisor] ログ行を書き出します。したがってアドバイザー呼び出しは常にログから証明できます。

アドバイザーは fail-open です。ディスパッチされた相談が失敗した場合(モデル利用不可・設定誤り・タイムアウト)、ワーカーは短く誤解を招かない「アドバイザー利用不可」の通知(preflight では <opencodex_advisor_unavailable> メッセージ、manual ではエラーのツール結果)を受け取り、タスクを続行します。何も注入されないのは相談がキャンセルされた場合だけです。相談が始まらない構成(無効、モデル未設定、または現在の文脈共有同意がない)では preflight 通知も送られません。現在の同意がない手動の advisor() 呼び出しは consent-required のツール結果を返し、外部へは送りません。相談の失敗がコーディングリクエストを失敗させることはなく、セッションのメインモデルも切り替えません。

  • ネイティブ OpenAI パススルーのターン(ChatGPT プールのワーカー)には合成ツールが注入されません。アドバイザーはルーティング(翻訳)プロバイダーを対象とします。preflight 相談は run-turn アダプターに適用されますが、ツールは適用されません。
  • 意味的な停滞検出、完了前レビュー、段階的エスカレーション、複数専門家、投票は行いません。
  • preflight の重複排除台帳はプロセス内です。プロキシ再起動後、進行中のタスクはもう一度 preflight 相談を受けることがあります。

証拠に基づく適応型相談と活動記録

Section titled “証拠に基づく適応型相談と活動記録”

adaptive は初回相談に加え、同じ作業ディレクトリの同じ検証が失敗し、その後のファイル編集が成功し、新たな検証実行も失敗した場合に相談します。成功した検証は失敗状態を解除します。編集前に開始した検証は修正後の再試行に数えません。初回と修正失敗は別々に重複を防ぎ、自動相談には安定した会話 ID が必要です。対応するツール呼び出しと結果、および明示的な終了コードが必要です。複雑なスクリプト、バッチ、shell による編集、曖昧な出力では発火しません。

ocx advisor set --policy adaptive --max-consultations 2 で設定します。手動と自動の試行はタスクごとに1〜3回の予算を共有し、送信前に OPENCODEX_HOME/advisor-budget.sqlite へ予約します。プロキシ再起動や Worker 変更でリセットされません。タスクのダイジェスト、回数、有効期限のみ保存し、最初の試行から24時間で期限切れになります(最大512タスク)。予算が使えない場合も Worker は継続します。送信済みの失敗・キャンセルには費用が発生する可能性があるため返却しません。会話 ID がなければリクエスト単位の手動相談のみです。

Advisor ページと ocx advisor activity --json(GET /api/advisor/activity)は、このプロセスの24時間以内の最新100件のメタデータを表示します。画面が表示されている間は5秒ごとに更新します。理由、状態、モデル、所要時間、報告された入出力トークン、要求値とアダプターの推論変換値を表示します。本文、コマンド、助言、会話 ID は保存せず、再起動時に消えます。変換値は送信パラメーターの証拠であり、モデル内部の推論を保証しません。未報告は不明のままとし、採用状況や正確な費用は推測しません。