Overview
Anthropic's Advisor Strategy is now live in Claude Code (/advisor toggle). It pairs a fast executor model (Sonnet/Haiku) with a high-intelligence advisor (Opus) mid-generation — all inside a single /v1/messages request. LiteLLM currently breaks this when used as a proxy (anthropics/claude-code#46105).
How it works (API level):
- Request:
{"type": "advisor_20260301", "name": "advisor", "model": "claude-opus-4-6"} in tools array + beta header anthropic-beta: advisor-tool-2026-03-01
- Response: assistant content contains
server_tool_use (name: "advisor") + advisor_tool_result blocks
- Multi-turn: must round-trip these blocks verbatim — omitting them causes a 400
Provider support:
- Anthropic direct ✅ — runs inside Anthropic infra natively
- Vertex AI ⚠️ — likely supported, needs verification
- Bedrock ❌ natively, but LiteLLM will implement the orchestration loop so it works transparently
P0 — Anthropic direct — ✅ done in #25525
P0 — Vertex AI — next PR
P0 — Bedrock Invoke + Converse (LiteLLM implements the loop) — next PR
Bedrock can't run the advisor server-side, but LiteLLM will implement the orchestration so the user-facing API is identical.
P1 — usage.iterations[] — next PR
P1 — Internal advisor for all other non-native providers
P1 — Advisor system prompt injection (optional proxy helper)
Automatically inject Anthropic's recommended timing/weight prompts when advisor tool is present.
Related
Overview
Anthropic's Advisor Strategy is now live in Claude Code (
/advisortoggle). It pairs a fast executor model (Sonnet/Haiku) with a high-intelligence advisor (Opus) mid-generation — all inside a single/v1/messagesrequest. LiteLLM currently breaks this when used as a proxy (anthropics/claude-code#46105).How it works (API level):
{"type": "advisor_20260301", "name": "advisor", "model": "claude-opus-4-6"}in tools array + beta headeranthropic-beta: advisor-tool-2026-03-01server_tool_use(name: "advisor") +advisor_tool_resultblocksProvider support:
P0 — Anthropic direct — ✅ done in #25525
anthropic-beta: advisor-tool-2026-03-01header from client to upstreamadvisor_20260301tool type through unchanged — don't strip/reject itserver_tool_use(name: "advisor") in response — don't convert to OpenAI tool_call formatadvisor_tool_resultin responseadvisor_tool_resultfrom history when advisor tool is absent fromtoolson a follow-up turn (prevents 400)ANTHROPIC_ADVISOR_TOOL_TYPEconstant — no more hardcoded stringscompletion/anthropic_advisor_tool.mdwith examples for both/chat/completionsand/messages, streaming, multi-turn, AI gateway, recommended system promptsusage.iterations[]from response and expose it; additerationsfield toUsagetypeP0 — Vertex AI — next PR
anthropic-beta: advisor-tool-2026-03-01headerclaude-sonnet-4-6on Vertex endpointP0 — Bedrock Invoke + Converse (LiteLLM implements the loop) — next PR
Bedrock can't run the advisor server-side, but LiteLLM will implement the orchestration so the user-facing API is identical.
advisor_20260301tool in request routed to Bedrockadvisortool_call → intercept; run separate LiteLLM completion to the advisor model with full conversation transcriptadvisor_tool_resultblock → resume executor loopserver_tool_use+advisor_tool_resultblocks → resumeusage.iterations[]server_tool_use/advisor_tool_resultin input history during Bedrock message transformationP1 — usage.iterations[] — next PR
usage.iterations[]from Anthropic responseiterationsfield toUsagetype so callers can see per-iteration token counts and identify advisor sub-inferencesP1 — Internal advisor for all other non-native providers
advisor_max_usesconfig to cap calls per requestP1 — Advisor system prompt injection (optional proxy helper)
Automatically inject Anthropic's recommended timing/weight prompts when advisor tool is present.
advisor_conversation_max_usesconfig: auto-remove advisor tool + strip history blocks when cap reachedRelated