Anthropic が Advisor ツールを発表:安いモデルが行き詰まったら、もっと賢いモデルにワンタップで電話相談
- Anthropic が Claude API に beta 版の Advisor ツールを公開:より速く安い「実行モデル」が生成の途中で、より賢い「アドバイザーモデル」を一時的に呼び出して戦略的助言をもらい、そのままタスクを続けて完成させられる。
- この一連の流れは同一の API リクエスト内で完結する:アドバイザーモデルはツールを一切使わず、コンテキスト管理も行わず、思考過程はそのまま破棄され、最終的な助言テキストだけが実行モデルへ返される。
- アドバイザーモデルの能力は実行モデルと同等以上でなければならない。例えば Claude Sonnet 5 が実行モデルの場合、アドバイザーには Claude Opus 4.7 や Claude Opus 4.8 などより強いモデルしか組み合わせられず、具体的な組み合わせは公式の互換表で厳密に定められている。
- アドバイザーは一回の呼び出しで通常 400 から 700 個のテキストトークンしか出力しない(思考込みで 1400 から 1800 トークン)。これはアドバイザーモデルにタスクを最初からやり直させるよりずっと安く、コスト削減の要となっている。
- あまり自発的にアドバイザーに相談しない実行モデル(特に Claude Haiku 4.5)向けに、公式は「リマインド」というテクニックを検証済み:2ターン目に「まだアドバイザーに相談していない」という一言を差し込むことで、タスク通過率を約7ポイント引き上げられる。ただし挿入するタイミングの早い遅いが効果の良し悪しを直接左右する。
作業する側と助言する側、モデルを分けて探す
Anthropic は最近 Claude API に beta 版の新ツール Advisor ツールを公開した。より速く安い「実行モデル」がタスク生成の過程で、より賢い「アドバイザーモデル」を一時的に呼び出して戦略的助言を得て、助言を受け取ったらそのままタスクを書き続けられる。
手は速いが経験がやや浅いモデルが実際の回答を書く役を担い、重要な判断に差し掛かったら隣にいるより強いモデルのドアをノックして数言問いかけ、席に戻って書き続ける——タスク全体を丸ごと強いモデルに渡してゼロから作り直させるのではなく。
これまでは二択しかなかった:安いか賢いか
多段階を要する agent タスク(コーディング、PC操作、複数ステップの調査)では、大部分のターンは実は機械的な操作で、本当に最高レベルの知性が必要なのはごく一部の重要な局面だけだ。しかし従来モデルを呼ぶ方法は2通りしかなく、どちらも帯に短し襷に長しだった。
協業モードは品質とコストの中間地点を突いている:ほとんどのトークンは安い実行モデルが低料率で生成し、本当に頭を使う必要のある数回の重要な局面だけ、数百トークンをかけて最高峰モデルに知恵を借りる。
作業を途中まで進めたら、アドバイザーに電話をかける
アドバイザーツールは普通のツールと同じく tools 配列に掛かっており、いつ呼び出すかは実行モデル自身が判断する。一連の完全な呼び出しは次の4ステップで進む。
この一連のやり取りはすべて同一の /v1/messages リクエスト内で発生し、あなた側で追加のネットワーク往復は一切発生しない。唯一の例外は、アドバイザーがまだ答え終わっていないうちに途中で止まったケースで、この場合はその会話をそのまま送り返して続きを進める必要がある。
1ステップ目では、実行モデルが吐き出すのは server_tool_use ブロックで、名前は advisor、中の input は常に空だ。実行モデルが担うのは「今問うべきタイミングだと決める」ことだけで、アドバイザーに渡す具体的なコンテキストはサーバー側が自動で補完する。2ステップ目では、サーバーが自分側でアドバイザーモデルを単独で1回走らせる。アドバイザーは Anthropic が用意したシステムプロンプトを使い、実行モデルの会話記録全体——あなたのシステムプロンプト、ツール定義、これまでの全ターンとツール結果、そして実行モデルが今回のターンでこれまでに書いたテキストを含む——を見る。
アドバイザーは「助言だけ出して手は出さない」役割:自分自身ではツールを一切使わず、コンテキスト管理も行わない。その思考過程は返される前に破棄され、最終的にはあの助言テキストだけが実行モデルの手に戻る。
実行モデルが発起するこの呼び出しが「空」なのは、ベテランの同僚のドアをノックする時にプロジェクトの背景を最初から全部説明し直す必要がないのと同じだ。会社の共有ドキュメントシステムがあなたの手元の進捗を自動で相手の目の前に並べてくれているので、あなたはただ口を開いて問うだけでいい。
もしアドバイザーがまだ答え終わっていなかったら:中断からの再開(pause_turn)
時にはこのリクエストが、アドバイザーの呼び出しがまだ吊るされたままの状態で前もって終わることがある。レスポンスには stop_reason: "pause_turn" が付き、呼び出しを発起した server_tool_use ブロックだけがあって、対応する結果がまだない状態だ。このときは、その assistant メッセージをそのまま messages に追加し(server_tool_use ブロックを保持したまま)、同じアドバイザーツールと beta header を付けてもう一度リクエストを送ればいい。新しいユーザーメッセージを追加する必要も、tool_result ブロックを補う必要もない。
電話が話し中で「しばらくしてからおかけ直しください」というアナウンスに遭遇した時のようなもので、電話を切らずに同じ番号にそのままかけ直せば、さっき話し終わっていなかった続きにつながる。続けたこのターンがまた止まったら、同じ動作をもう一度繰り返せばいい。
クリックして詳細を見る:返される結果の中の2種類のブロックと、アドバイザーの「暗号化された助言」
成功した呼び出しでは、assistant のコンテンツの中にまず server_tool_use ブロック(呼び出しの発起)が現れ、その直後に advisor_tool_result ブロック(アドバイザーの返答)が続く。後者の content はユニオン型だ。Claude Opus 4.8 のようなアドバイザーは平文の advisor_result(text フィールドが読める)を返すが、Claude Fable 5 と Claude Mythos 5 という2つのアドバイザーは暗号化された advisor_redacted_result を返し、あなたが受け取るのは読めない encrypted_content の断片で、次のターンでサーバー側が復号して実行モデルのプロンプトにレンダリングする。どちらのケースでも、その内容は後続のターンでそのまま送り返す必要がある。呼び出しが失敗すると、結果ブロックには error_code(overloaded、prompt_too_long、max_uses_exceeded など)が付き、実行モデルはエラーを見た上で助言なしにそのまま書き続ける。リクエスト自体が失敗することはない。
誰が誰のアドバイザーになれるかには、決まりがある
トップレベルの model フィールドが実行モデル、ツール定義の中の model フィールドがアドバイザーモデルで、両者は正当な組み合わせを構成しなければならない。ルールはたった一つの明確な線だけだ:アドバイザーは Claude Sonnet 4.6 以上でなければならず、かつ能力は少なくとも実行モデルと同等でなければならない。組み合わせを間違えると、API は即座に400エラーを返し、この組み合わせがサポート対象外であると名指しする。
| 実行モデル | 選べるアドバイザーモデル |
|---|---|
| Claude Haiku 4.5 | Fable 5Mythos 5Opus 4.8Opus 4.7Opus 4.6Sonnet 4.6 |
| Claude Sonnet 4.6 | Fable 5Mythos 5Opus 4.8Opus 4.7Opus 4.6Sonnet 4.6 |
| Claude Sonnet 5 | Fable 5Mythos 5Opus 4.8Opus 4.7 |
| Claude Opus 4.6 | Fable 5Mythos 5Opus 4.8Opus 4.7Opus 4.6 |
| Claude Opus 4.7 | Fable 5Mythos 5Opus 4.8Opus 4.7 |
| Claude Opus 4.8 | Fable 5Mythos 5Opus 4.8Opus 4.7 |
| Claude Fable 5 | Fable 5 |
| Claude Mythos 5 | Mythos 5 |
破線枠 = 能力が同等で、互いにアドバイザーになれる(Opus 4.7 と Opus 4.8 など)。ハイライト行の Sonnet 5 は分かりやすい例だ:Opus 4.7 か Opus 4.8 としか組めず、Opus 4.6 すら対象外になっている。
この「アドバイザーの能力は実行モデル以上でなければならない」という厳格なルールの背後にある理屈はとてもシンプルだ。もしアドバイザーが実行モデルより弱ければ、本当に価値のある助言を出せず、その呼び出し自体が無駄になってしまう。そこで公式は組み合わせの関係を一枚の互換表で固定し、弱いアドバイザーと強い実行モデルの組み合わせはそもそも提出できないようにしている。
自発的にアドバイザーに相談したがらないモデルもいる、公式は専用の「リマインド」を用意した
一部の実行モデルは1ターン目では自発的にアドバイザーに相談しない。特に Claude Haiku 4.5 のようなより軽量なモデルに顕著だ。公式のやり方はこうだ:1ターン目でアドバイザーを呼ばなかった場合、2ターン目の前にもう一つユーザーメッセージを立てて短いリマインド(nudge)を差し込む。ただし、このリマインドを早く挿すか遅く挿すかで結果は大きく変わる。
リマインド自体はとても効果的で、問題はすべてタイミングにある。早く挿しすぎると、実行モデルがまだタスクを把握しきれていない段階で、この情報量の少ない呼び出しがかえって本来もっと後の、もっと価値の高い呼び出しの機会を奪ってしまう。遅く挿しすぎると、今度はより良い呼び出しのタイミングを逃してしまう。Anthropic は実際の実験データでこのタイミングへの敏感さを示している。
公式が示す使い方は具体的だ。まずリマインドがない状態で、あなたの実行モデルが通常何ターン目で初めてアドバイザーを呼ぶかを測定し(これを N ターン目とする)、NUDGE_TURN を N より大きく設定する。ワークロードに簡単なタスクと複雑なタスクの両方が混在している場合は、NUDGE_TURN を3に上げて、2ターンで完了できる簡単なタスクを先に終わらせ、不要な相談にリマインドで無理やり押し込まれないようにするとよい。
クリックして詳細を見る:リマインドの挿し方と「強制呼び出し」との違い
リマインドはツール結果の後に続く、それ自体独立した1つのユーザーメッセージとして送るべきで、同じメッセージに兄弟ブロックとして詰め込んではいけない。連続する2つのユーザーメッセージは正当な構成で、公式が Haiku と Sonnet で検証したところ両方の書き方の効果は同等だった。独立した1つのメッセージにするのは、単にリマインドとツール出力をより明確に区別するためだ。また、もしあなたのシステムプロンプトにすでに「本当に確信が持てない時だけアドバイザーに相談する」といった抑制的な文言が入っているなら、リマインドは追加しない方がいい。2つの指示がぶつかってしまう。特定の1回のリクエストで相談を強制したい場合は、tool_choice を advisor を指すように設定できるが、強制呼び出しは拡張思考と同時には使えず、そうすると API は400エラーを返す。
この一手間で増えたお金は、どう計算されるのか
アドバイザーの呼び出しは独立したサブ推論として扱われ、アドバイザーモデル自身の料率で決済される。実行モデルの usage 総数に組み込まれることはない。各パートにいくらかかったかを内訳したい場合は、usage.iterations という配列を見る必要がある。
アドバイザーは1回あたり典型的に 400 から 700 個のテキストトークンを出力し、破棄される前に消費した思考分を含めると合計で約 1400 から 1800 トークンになる。コスト削減の鍵はここにある。アドバイザーは最終的な出力の大部分を生成する役割を担わず、その部分は実行モデルがより低い料率で完成させる。
さらに、実行モデルにのみ作用し、アドバイザーには自動的に及ばない細部がいくつかある。トップレベルの max_tokens は実行の出力のみを制約し、アドバイザーのサブ推論には及ばない(単独で制限したい場合はツール定義の中で別途 max_tokens を設定する必要がある)。アドバイザーのトークンは実行モデル側の task budget も消費しない。Priority Tier(優先度契約)もそれぞれ独立して計算され、あなたの組織がアドバイザーモデルにも契約を結んでいない限り、アドバイザーの呼び出しは優先処理を通らない。
もう一手節約できる:アドバイザー側でもキャッシュを開ける
キャッシュには2つの層があり、それぞれ独立している。実行側の advisor_tool_result ブロックは普通のコンテンツブロックと同様にキャッシュ可能で、この層は特に気にする必要はない。本当に工夫が要るのはアドバイザー側自身のキャッシュだ。
アドバイザーモデルが毎回見る会話記録は、前回の内容の上に新しい部分を追加しただけのもので、プレフィックスは安定している。ツール定義で caching({"type":"ephemeral","ttl":"5m"} のような形)を有効にすると、呼び出しのたびに1つのキャッシュが書き込まれ、次回はその地点まで読み込んで、新しく追加された部分にだけ料金を払えばよくなる。2回目以降の advisor_message イテレーションで cache_read_input_tokens がゼロでない値になっているのが見えるはずだ。
毎回アドバイザーに相談するたびに、以前の会議議事録を最初からもう一度読み上げなければならないようなもので、キャッシュを有効にするのは議事録を保存しておくのと同じで、以降は新しく追加された部分だけ読み足せばよくなる。ただしこの記録を作ること自体にもコストがかかるので、会う回数が少なすぎると、記録を作るコストの方が節約できる分より高くついてしまい、割に合わない。
公式はさらに2つの一貫性に関する落とし穴を特に注意喚起している。1つ目は、caching のスイッチは一度設定したら全過程で維持すべきで、途中で切り替えを繰り返すとキャッシュが直接無効になってしまうこと。2つ目は、clear_thinking の設定が不適切(keep 値が "all" でない)だと、アドバイザーが毎ターン見る引用記録にずれが生じ、同様にアドバイザー側のキャッシュを中断させてしまうこと——ただしこれはコストが悪化するだけで、助言の品質には影響しない。
クリックして詳細を見る:clear_thinking のデフォルト値がなぜ落とし穴になるのか
拡張思考を有効にしながら clear_thinking を明示的に設定しなかった場合、API はデフォルトで keep: {type: "thinking_turns", value: 1} を採用し、これがちょうど上述のキャッシュのずれを引き起こす(これは初期の Opus / Sonnet モデルおよびすべての Haiku モデルのデフォルト挙動で、Opus 4.5+ と Sonnet 4.6+ はデフォルトですべてのターンを保持する)。アドバイザー側のキャッシュを安定させたいなら、keep を明示的に "all" に設定すること。
どんな作業に向いていて、どんな作業では手を出さない方がいいか
公式は「When to use it」の中で境界線をはっきり引いている。この協業方式が割に合うのは「大部分のターンは節約できるが、少数のターンはどうしても強さが必要」という混合ワークロードだけだ。
長いチェーンの agent タスク:コーディング agent、PC操作、複数ステップの調査といったパイプラインでは、大部分のターンは機械的な実行で、本当に最高峰の知性が必要なのはごく一部の重要な局面だけだ。すでに Sonnet で複雑なタスクを処理しているチームは、Opus のアドバイザーを1つ加えることで、品質向上を得つつ総コストが Sonnet を直接使う場合と近い、あるいはそれより低くなる可能性がある。すでに Haiku 4.5 を使っているチームにとっては、アドバイザーを加えるのは、より大きな実行モデルに直接乗り換えるよりも節約できる知性アップグレードの経路になる。
計画する余地のない単発の質疑応答。ユーザーがすでにコストと品質のトレードオフを自分で判断済みの、純粋な「モデルセレクター」の透過的なシナリオ。そして、あらゆるステップで本当にアドバイザーモデルのフル能力が必要になるワークロード。これらの場合、協業モードは利益をもたらさない。
公式も先に釘を刺している。結果はタスクによって異なるので、自分のワークロードで評価してほしいとのことだ。現時点でこのツールは Claude API と AWS 上の Claude Platform で beta 版として提供されており、Amazon Bedrock、Google Cloud、Microsoft Foundry にはまだ対応しておらず、ゼロデータ保持(ZDR)の条件に適合している。
You get close to advisor-solo quality while the bulk of token generation happens at executor-model rates.(アドバイザーモデルが単独で完成させる品質に近づきつつ、大部分のトークン生成は実行モデルの料率で行われる。) Claude 開発者ドキュメント · Advisor tool