ニュース

Advisor Strategy|Opus+Sonnet 2層API実装

Advisor Strategy|Opus+Sonnet 2層API実装

この記事の結論

Opus 4.6アドバイザー+Sonnetワーカーの2層API。SWE-bench+2.7pt・コスト12%削減の実装法。

Anthropicが2026年4月9日、「Advisor Strategy」と名付けたAPIベータ機能を一般公開した。

一言で言うと、Sonnet(エグゼキュータ)がタスクを実行し、判断に迷った瞬間だけOpus 4.6(アドバイザー)に戦略的助言を求める2層構成のAPIパターンだ。SWE-bench Multilingual で単体Sonnetより2.7ポイント高いスコアを記録しながら、コストは11.9%削減という初期ベンチマーク結果が出ている。

これは面白い発想だと思った。従来の「大きなオーケストレータが小さなワーカーを動かす」ヒエラルキーとは逆転していて、安いモデルが主体的に動き、必要な時だけ頭のいいモデルを呼ぶ。


何が発表されたのか

Anthropicが公式ブログで発表したAdvisor Strategyは、Messages APIへの単一リクエスト内で2つのモデルが連携する仕組みだ。

役割 使えるモデル 特徴
エグゼキュータ claude-haiku-4-5, claude-sonnet-4-6 タスクを端から端まで実行する主役。大半のトークン生成を担う
アドバイザー claude-opus-4-6のみ エグゼキュータが迷ったときだけ呼ばれる。計画・方向修正の助言に特化

重要なのは、アドバイザーはツールを持たず、出力を生成せず、助言テキストだけを返すという設計だ。エグゼキュータが「アドバイスを聞いたうえで自分でコードを書く」のであって、Opusが直接コードを書くわけではない。だからコストが抑えられる。

技術的に見ると

実装は tools 配列に advisor_20260301 タイプのツール定義を追加するだけだ。エグゼキュータがいつアドバイザーを呼ぶかは自律的に判断する。開発者はその呼び出しタイミングをコントロールする必要がない。

curl でのクイックスタート

# 動作環境: anthropic API v2023-06-01, beta: advisor-tool-2026-03-01
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
curl https://api.anthropic.com/v1/messages 
    --header "x-api-key: $ANTHROPIC_API_KEY" 
    --header "anthropic-version: 2023-06-01" 
    --header "anthropic-beta: advisor-tool-2026-03-01" 
    --header "content-type: application/json" 
    --data '{
        "model": "claude-sonnet-4-6",
        "max_tokens": 4096,
        "tools": [
            {
                "type": "advisor_20260301",
                "name": "advisor",
                "model": "claude-opus-4-6"
            }
        ],
        "messages": [{
            "role": "user",
            "content": "Goで並行ワーカープールをグレースフルシャットダウン付きで実装してください"
        }]
    }'

Python SDKでの実装

# 動作環境: Python 3.11+, anthropic>=1.70.0
# pip install anthropic
import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["advisor-tool-2026-03-01"],
    tools=[
        {
            "type": "advisor_20260301",
            "name": "advisor",
            "model": "claude-opus-4-6",
            # max_uses でアドバイザー呼び出し回数を制限できる(コスト管理)
            "max_uses": 3,
        }
    ],
    messages=[
        {
            "role": "user",
            "content": "Goで並行ワーカープールをグレースフルシャットダウン付きで実装してください",
        }
    ],
)

print(response.content)

マルチターン会話での注意点

アドバイザーを使う会話を続けるとき、advisor_tool_result ブロックを必ず次のリクエストに含める必要がある。これを省略すると400エラーになる。

# マルチターン実装パターン
# 動作環境: Python 3.11+, anthropic>=1.70.0
import anthropic

client = anthropic.Anthropic()

tools = [{"type": "advisor_20260301", "name": "advisor", "model": "claude-opus-4-6"}]
messages = [{"role": "user", "content": "Goでワーカープールを実装して"}]

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["advisor-tool-2026-03-01"],
    tools=tools,
    messages=messages,
)

# advisor_tool_result を含む assistant ターンを必ず保持する
messages.append({"role": "assistant", "content": response.content})

# 続けて指示を追加
messages.append({"role": "user", "content": "最大同時実行数10の制限を追加して"})

response2 = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["advisor-tool-2026-03-01"],
    tools=tools,  # ここでもtoolsを省略してはいけない
    messages=messages,
)

コスト構造はどうなっているのか

アドバイザー呼び出しは別の推論パスとして実行され、アドバイザーモデルのレートで課金される。レスポンスの usage.iterations 配列で各イテレーションのトークン消費を確認できる。

アドバイザーの出力は通常400〜700テキストトークン(thinking込みで1400〜1800トークン)。エグゼキュータがそれを読んで実際の出力を生成するため、Opusだけを使うより大幅に安くなる。

3回以上アドバイザーを呼ぶ会話なら、ツール定義に "caching": {"type": "ephemeral", "ttl": "5m"} を追加すると、アドバイザー側のプロンプトキャッシュが有効になりさらにコストが下がる。

実際に使ってみて分かった注意点

❌ アドバイザーを省いてツールだけ定義する

toolsに advisor を入れた状態でマルチターンを続け、途中でtoolsからadvisorを外すと、メッセージ履歴にadvisor_tool_resultが残ったまま400エラーになる。

⭕ コスト上限に達してadvisorを外したい場合は、メッセージ履歴からもadvisor_tool_resultブロックを全て削除する。

❌ max_tokens がアドバイザーのトークンを含むと思う

max_tokensはエグゼキュータの出力トークン上限だけを指定する。アドバイザーのトークンは別扱いで上限なし(max_usesでコントロールする)。

⭕ アドバイザー呼び出し回数は max_uses フラグか、クライアント側のカウンタで管理する。

❌ ストリーミング中にアドバイザー呼び出しで止まる

アドバイザー推論は非同期ではなく、エグゼキュータのストリームが一時停止する。長い計算が走るタスクでは数十秒の無音状態が発生することがある。

⭕ ストリーミングUIには「考え中…」のような表示を入れる。30秒ごとにpingが来るのでタイムアウト値は余裕を持って設定する。

どのタスクで効果が出るのか

Anthropicが示した初期ベンチマークによると(参照日: 2026-04-09)、効果が高いのは長時間の自律的タスクだ。

  • コーディングエージェント: SWE-bench Multilingual でSonnet単体72.1% → Sonnet+Opusアドバイザー74.8%(+2.7ポイント)
  • ブラウジングタスク: Haiku単体でのBrowseComp 19.7% → Haiku+Opusアドバイザー41.2%(+21.5ポイント)

一方、単発Q&Aや毎ターン確実にOpusの判断が必要なタスクには向かない。アドバイザーが最も価値を出すのは「大半の処理は機械的だが、たまに難しい判断が必要」というタスク構造だ。

この先どうなるか

現時点ではベータ機能で、使うにはAnthropicアカウントチームへのアクセス申請が必要だ。GA(一般提供)のタイムラインは未発表。

個人的に面白いと思うのは、この設計が「モデルサイズの大小」という単純な二択から外れようとしているという点だ。エグゼキュータが自律的に判断して必要な時だけ上位モデルを呼ぶ構造は、今後のマルチエージェントアーキテクチャの一つのリファレンスになりそうな気がしている。まだ判断がつかない部分も多いけれど。

参考・出典


APIコストを最適化しながら品質を維持する戦略については、AIエージェントのコスト最適化|トークン削減5つの戦略もあわせて読んでほしい。

あわせて読みたい:

Advisor Strategyを使ったエージェント設計のご相談はUravationのお問い合わせフォームからどうぞ。

この記事はAIgent Lab編集部がお届けしました。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年4月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事