Updated 2026-06-23

DeepSeek Claude Code subagent model: keep the heavy thinking on Pro and the background work on Flash

DeepSeek's official Claude Code page is more specific than many generic setup posts. It does not just expose an Anthropic-compatible base URL. It also splits the route into a main Claude model lane and a lighter subagent lane, with `CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash` and `CLAUDE_CODE_EFFORT_LEVEL=max` published directly in the docs. That makes this a useful support-query page for developers who are debugging cost, speed, or quality regressions inside a DeepSeek-powered Claude Code workflow.

1. What DeepSeek officially sets for the main lane and the subagent lane

DeepSeek's documented baseline keeps the main Claude Code route on `deepseek-v4-pro[1m]`. That is the quality-first path for the active coding conversation.

The same page explicitly sets `CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash`. The simplest interpretation is operational rather than cosmetic: background work should be cheaper and faster than the main reasoning lane unless you have a very specific reason to override it.

This is a practical DeepSeek-first split. Pro handles the core reasoning surface. Flash handles lighter side work where repeating the expensive model would mostly inflate spend.

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-...
export ANTHROPIC_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash
export CLAUDE_CODE_EFFORT_LEVEL=max

Sources checked

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.

DeepSeek's own docs do not say 'run everything on Pro.' They publish a split that hints at how the workflow should be budgeted: let the main lane stay strong while keeping background traffic on the cheaper model.

If a team overrides the subagent model to Pro, they should do it for a measured reason and not because the environment block looked incomplete. The official default is already optimized toward cost-aware agent behavior.

How to think about DeepSeek Claude Code model lanes
LaneOfficial defaultBest fitRisk if misused
Main conversationdeepseek-v4-pro[1m]Harder coding, planning, and the answer the user actually seesQuality drops if you downgrade too aggressively
Subagent workdeepseek-v4-flashSearch summaries, repeated tool steps, and lighter side tasksSpend spikes if you upgrade every background step to Pro

3. What `CLAUDE_CODE_EFFORT_LEVEL=max` changes

The same official DeepSeek page sets `CLAUDE_CODE_EFFORT_LEVEL=max`. That means the recommended baseline is not a stripped-down low-reasoning route. DeepSeek wants the Claude Code session to keep full effort even while the workflow still routes lighter tasks to Flash.

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 checked

FAQ

What does DeepSeek officially set for `CLAUDE_CODE_SUBAGENT_MODEL`?

DeepSeek's official Claude Code page sets `CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-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 `/guides/how-to-use-deepseek-in-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.