DeepSeek
Use the deepseek provider for fast-agent's native DeepSeek Responses route.
It uses a stateless Responses API over SSE and supports deepseek-v4-flash,
deepseek-v4-flash-vision-exp, and deepseek-v4-pro.
Setup
Create a key in the DeepSeek platform and set:
Then run the built-in alias:
The explicit model string is:
Select V4 Pro with:
or its explicit model string:
Select the experimental vision model with:
or its explicit model string:
The vision model accepts JPEG, PNG, GIF, and WebP images from inline data or
public URLs. Attach images through the TUI or other fast-agent input surfaces;
the native adapter sends them as Responses API input_image parts.
The native provider rejects other model names such as deepseek-chat and
deepseek-reasoner.
Configuration
Only the API key is required:
The complete provider shape is:
deepseek:
api_key: "${DEEPSEEK_API_KEY}"
base_url: "https://api.deepseek.com"
default_model: "deepseek-v4-flash"
reasoning: "max"
web_search:
enabled: false
# default_headers:
# X-Custom-Header: value
base_url, default_model, and default_headers are optional. A configured
default_model must be deepseek-v4-flash,
deepseek-v4-flash-vision-exp, or deepseek-v4-pro. Flash remains the default
when this setting is omitted.
Run fast-agent check after configuring credentials.
Reasoning
Reasoning defaults to max. Select an effort in the model string:
fast-agent go --model "deepseek?reasoning=none" --message "Answer directly."
fast-agent go --model "deepseek?reasoning=low" --message "Solve this problem."
fast-agent go --model "deepseek?reasoning=high" --message "Solve this problem."
fast-agent go --model "deepseek?reasoning=max" --message "Solve this problem."
Supported values are none, low, high, and max. DeepSeek returns
reasoning separately from visible assistant text; fast-agent preserves it in
the reasoning channel and replays it when continuing a tool-use turn.
max_output_tokens includes hidden reasoning. Leave enough output headroom
when reasoning is enabled rather than treating the setting as a visible-text
budget.
Tools, structured output, and web search
The native route supports:
- function tools;
- JSON Schema structured output;
- provider-managed web search.
Enable web search in configuration:
Or enable it for one model selection:
DeepSeek currently accepts the web-search enablement toggle. Generic OpenAI-style search context, domain, and location options are not forwarded by the adapter.
When forcing a specific function with tool_choice, use reasoning=none.
Automatic tool selection supports reasoning.
Stateless Responses behavior
DeepSeek's route differs from OpenAI's stateful Responses API:
- requests use SSE; WebSocket transport is not supported;
- server-side response storage and continuation are not used;
- service tiers are not supported;
- image input is supported only by
deepseek-v4-flash-vision-exp; - PDF, audio, video, and general file inputs are not supported;
- OpenAI-only request fields such as
include,parallel_tool_calls,service_tier, andstoreare omitted.
Conversation and tool continuation still work because fast-agent sends the required history on each stateless request.
Hugging Face routes are separate
Aliases such as deepseek-hf, deepseek4-hf, and deepseek4pro-hf use
Hugging Face Inference Providers, not the native DeepSeek API.
They use HF_TOKEN, provider-specific routing, and their own capability
metadata.
Use deepseek when you want the native DeepSeek Responses route. Use an hf.
model string or a deepseek-*-hf alias when you want a Hugging Face-hosted
route.
Model aliases
| Model Alias | Maps to |
|---|---|
deepseek |
deepseek.deepseek-v4-flash |
DeepSeek V4 Pro |
deepseek.deepseek-v4-pro |
deepseek-v4-flash |
deepseek-v4-flash |
deepseek-v4-flash-vision-exp |
deepseek-v4-flash-vision-exp |
deepseek-v4-pro |
deepseek-v4-pro |
deepseekpro |
deepseek.deepseek-v4-pro |
deepseekvision |
deepseek.deepseek-v4-flash-vision-exp |
Official documentation
See Models Reference for the generated capability row, context limit, output limit, and supported input modalities.