Updated 2026-10-11
Route Claude Code Subagents to DeepSeek V4 Flash
DeepSeek's current Claude Code recipe sets the main model to deepseek-flash[1m] and subagents to deepseek-flash. It also sets max effort and CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432. Verify those settings before diagnosing unexpected model usage or cost.
1. What DeepSeek officially sets for the main lane and the subagent lane
The current documented main model is deepseek-flash[1m], with the same value for the Opus and Sonnet default slots.
The official subagent default is CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash. Haiku also uses deepseek-flash without the [1m] suffix.
The [1m] suffix is part of the documented client configuration. Both model strings refer to Flash; the suffix does not select Pro.
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-...
export ANTHROPIC_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"Sources
- DeepSeek official Claude Code integration guide - Primary source for the Anthropic base URL, model strings, subagent model, and effort-level settings.
2. Why Flash is the sensible default for subagents
A Claude Code session often contains cheap but frequent work beside the main answer: search summaries, local repo scanning, iterative tool steps, or quick follow-up checks. Those tasks are exactly where Flash makes economic sense.
The current recipe uses Flash across both roles. Measure quality and cost on representative tasks before choosing a different model for either role.
Choose Pro for a subagent only after a task-specific quality comparison justifies the additional cost.
| Lane | Official default | Best fit | Risk if misused |
|---|---|---|---|
| Main conversation | deepseek-flash[1m] | Harder coding, planning, and the answer the user actually sees | Quality drops if you downgrade too aggressively |
| Subagent work | deepseek-flash | Search summaries, repeated tool steps, and lighter side tasks | Spend spikes if you upgrade every background step to Pro |
3. What `CLAUDE_CODE_EFFORT_LEVEL=max` changes
The official recipe specifies max effort. Keep that setting when reproducing the documented baseline, then adjust one variable at a time if needed.
In practice that gives teams a clearer optimization order. First prove the official baseline works. Only after that should you experiment with lower effort, alternate model strings, or broader Flash usage.
If the result feels slow or expensive, adjust one variable at a time. Do not simultaneously change the effort level, the subagent model, and the base URL, or you will not know which choice actually caused the regression.
4. Verify the route instead of trusting the client label
The risk in any Claude-style workflow is silent fallback or mistaken assumptions about which model really handled the step. Provider-side verification matters more than the UI label.
DeepSeek's broader docs already warn that unsupported or stale model names can route differently than users expect. That matters here too: if someone copied a legacy alias or removed the `[1m]` suffix casually, the route may not behave like the official baseline anymore.
A clean verification habit is to pin the official model strings in shared shell profiles, run a known repo task, and then inspect provider-side usage or logs where your environment allows it.
Sources
- DeepSeek official API quick-start - Primary source for current V4 model names and the legacy-alias deprecation timeline.
FAQ
What does DeepSeek officially set for `CLAUDE_CODE_SUBAGENT_MODEL`?
DeepSeek's official Claude Code page sets `CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash`.
Should I move Claude Code subagents to Pro?
Not by default. The official DeepSeek baseline keeps the main route on Pro and the subagent lane on Flash, which is the cleaner cost-quality split for most teams.
Why does the official setup still use `CLAUDE_CODE_EFFORT_LEVEL=max`?
Because DeepSeek is not telling you to cheapen the whole session. It is telling you to keep full effort while routing the lighter background work to Flash.
How do I know whether the right model really handled the work?
Verify provider-side usage or logs where possible, and keep the published DeepSeek model strings unchanged until the baseline is proven stable.
Is this page about Claude Desktop model mapping?
No. This page is about the subagent lane inside the official Claude Code environment block. Desktop model mapping belongs to `/claude-code`.
The operational rule is simple: keep the DeepSeek official Claude Code baseline intact first. Main lane on Pro, subagent lane on Flash, effort on max, and verification on the provider side before you start experimenting with more aggressive routing changes.
Related model comparisons
Continue from this guide into structured DeepSeek-first comparison pages with model tables, routing advice, and pricing context.