damngoodprompts

DeepSeek

Prompting DeepSeek

How to prompt DeepSeek reasoning and open-weight models without carrying forward unsupported R1-era assumptions.

Last reviewed: September 14, 2026Official docsapilocalopen-weight
Tip

What this model is particularly good at:

  • Cost-efficient reasoning and coding workflows relative to many closed frontier options
  • Open-weight availability for local deployment, inspection, and adaptation
  • Strong fit for users who need model-card and deployment-surface awareness, not just a hosted chat UI
  • One-million-token context window on V4 Pro and V4.1 Flash for long-document and repo-scale work

Current model routing

ModelStatusBest fitAPI ID
DeepSeek V4 ProcurrentHigher-capability hosted or open-weight reasoning and coding workdeepseek-v4-pro
DeepSeek V4.1 FlashcurrentLower-latency, cost-sensitive reasoning with native multimodal (image) inputdeepseek-flash
DeepSeek V4 Flash / V4 Flash Vision Exp (legacy names)legacyIntegrations still pinned to the old model names; both now route to V4.1 Flash at Flash pricingdeepseek-v4-flash / deepseek-v4-flash-vision-exp
DeepSeek R1 (deepseek-reasoner / deepseek-chat aliases discontinued 2026-07-24)legacyOpen-weight R1-generation weights for integrations still pinned to them; the hosted deepseek-reasoner/deepseek-chat API aliases were retired on 2026-07-24Varies by surface

Which model to choose

Use DeepSeek when cost-efficient reasoning, open-weight deployment, or local inspection matters more than the polish and product integration of the closed chat products. Use V4 Pro for harder work and V4.1 Flash for speed/cost. V4.1 Flash handles images natively, so the earlier experimental V4 Flash Vision model is retired; the old deepseek-v4-flash and deepseek-v4-flash-vision-exp API names still work but route to V4.1 Flash at Flash pricing. Keep R1-era prompts only when you are deliberately maintaining an older integration.

Prompting in DeepSeek chat surfaces

DeepSeek’s GUI behavior can vary by hosted surface and region. For user-facing chat, write direct prompts with the goal, relevant context, and output constraints. Do not assume every hosted surface exposes the same thinking controls or model menu as the API.

For current or factual work, ask for sources or provide the source material yourself. Open-weight availability does not make a model current on live events.

Prompting through the API

For API use, DeepSeek now documents thinking-mode behavior concretely. Thinking mode is on by default at effort high, with supported effort levels of none, low, high, and max. In thinking mode, temperature, top_p, presence_penalty, and frequency_penalty are accepted but have no effect. When a request carries the tools parameter, the assistant’s reasoning_content must be passed back on every later turn, including turns without a tool call, or the API returns HTTP 400.

The current hosted Flash model is deepseek-flash (DeepSeek-V4.1-Flash); the older deepseek-v4-flash and deepseek-v4-flash-vision-exp names still work but are routed to it at Flash pricing, so a production integration pinned to the old name will not break, it will just get served by the newer model. Still verify the selected endpoint before pinning a production integration, because API behavior can change faster than model cards.

When using open-weight variants locally, check the model card for a chat template before assuming one exists. DeepSeek-V4.1-Flash’s model card ships without a Jinja chat template and points instead to a separate reference implementation and toolkit for encoding prompts, so hand-rolling the usual OpenAI-style role format will not reproduce the model’s trained prompt structure. For other open-weight variants, follow the serving stack’s chat template and role formatting from the model card and transformers chat-template docs.

Current prompting guidance

  • Keep prompts direct and task-specific.
  • Use model or API settings for thinking behavior when they are exposed.
  • Avoid manual chain-of-thought demonstrations in examples.
  • Preserve tool-call and reasoning context exactly as the selected API requires.
  • For local inference, treat tokenizer/chat-template formatting as part of the prompt.

Examples

GUI prompt:

Explain the tradeoff between sparse attention and standard attention for long-context
inference. Assume I understand transformers but have not read the DeepSeek V4 notes.
Keep it to three paragraphs.

API/local request skeleton:

{
  "model": "deepseek-v4-pro",
  "messages": [
    {
      "role": "user",
      "content": "Summarize this benchmark table. Separate measured results from interpretation, and do not infer missing values.\n\n{{benchmark_table}}"
    }
  ]
}

Prompt upgrade example:

Stale pattern: “Show your chain of thought in full before giving the answer.”

Better pattern: “Give the answer, then list the assumptions or missing data that could change it.”

Source set