How to Use Reasoning Models: When to Choose an o1-Type Model
Reasoning models such as o1, o3, and DeepSeek-R1 "think before answering." They excel at complex math, code, and multistep reasoning but are slower, costlier, and harder to control. This article explains where they help or hurt and presents a hybrid architecture that reserves them for genuinely hard reasoning.
Key Points
- Topic Focus: AI、大模型
- Suitable for: indie hackers, full-stack engineers, AI application developers
- Core value: quickly understand background, practical paths, common pitfalls, and engineering advice
How to Use Reasoning Models: When to Choose an o1-Type Model
Since OpenAI released o1, followed by o3, DeepSeek-R1, Qwen3 thinking mode, and other "reasoning models," the community has kept debating one question: When should I actually pay more for a reasoning model? Many teams currently fall into one of two extremes: they either send everything to a reasoning model and end up with an enormous bill and sluggish responses, or they never use one and get outclassed on hard problems by colleagues using o1.
This article avoids marketing language and focuses on practical decision criteria: the fundamental difference between reasoning and standard models, the scenarios where reasoning models genuinely excel, the situations where using one puts you at a disadvantage, the pitfalls around cost and latency, how to write prompts without wasting their reasoning ability, and an engineering solution that ties everything together: a hybrid routing architecture.
1. Reasoning Models vs. Standard Models: What Is the Difference?
In one sentence: A reasoning model "thinks" before answering, and that thinking process is built in and hidden.
Standard models such as GPT-4o, Claude Sonnet, and DeepSeek-V3 essentially perform next-token prediction in a single pass. You provide a prompt, and the model generates an answer directly. You can certainly write "Let's think step by step" in the prompt to force it to show intermediate steps, but that is external prompting; the model itself has no built-in mechanism for thinking first.
Reasoning models are different. During RL training, they are rewarded for first generating an internal hidden chain-of-thought. That chain does not appear in the final output, or it appears in a collapsed thinking block, but the model spends substantial compute exploring, correcting itself, and backtracking within it. It spends more compute on "thinking" than on "speaking."
This has several direct consequences:
- The capability distribution changes: On tasks that require planning and long chains of reasoning, reasoning models show an obvious improvement over standard models of the same generation. On simple tasks, the difference is negligible, and they may even perform worse.
- Latency increases significantly: The thinking phase may run for tens of seconds or even several minutes, producing extremely high time to first token (TTFT).
- Billing changes: Thinking tokens are also billed by usage. You usually cannot see their full content, but you still have to pay for them.
Once you understand this distinction, every decision that follows becomes straightforward.
2. What Reasoning Models Do Well
In practice, I group tasks that clearly justify a reasoning model into five categories:
-
Complex mathematics and formal proofs. Olympiad-level mathematics, integral derivations, probability theory, and number theory are areas where standard models often make one mistake that corrupts every subsequent step. Reasoning models can use self-verification to reach the correct result. Overused benchmarks such as GSM8K do not count here; the real differences emerge on problems at the difficulty level of AIME or Putnam.
-
Algorithm design and complex code. Note that this does not mean simply "writing code." Standard models can produce CRUD and boilerplate code quickly and effectively. Reasoning models are worthwhile for difficult algorithmic problems, such as dynamic programming state design and graph modeling, complex refactoring across files, concurrency or locking bugs, and performance bottleneck diagnosis. These problems share one trait: you must mentally work through several approaches before taking action, which is exactly where reasoning models excel.
-
Multistep logical reasoning. Reasoning models are markedly more accurate at compliance decisions with complex rules, scheduling problems with multiple constraints, and nested conditional reasoning such as "if A, then B, unless C and D are both true."
-
Research and analysis. This includes reproducing papers, designing experiments, giving rigorous causal explanations for a set of experimental results, and selecting statistical methods. A reasoning model tends to consider confounding variables and counterexamples more carefully.
-
Planning that requires rigor. This includes decomposing multistep tasks and long-horizon agent planning. A typical pattern is to ask a reasoning model to turn an ambiguous requirement into an executable list of subtasks, then hand those subtasks to a standard model one by one.
The common trait is that the problem has a correct answer or a verifiable standard, and mistakes in intermediate steps can be detected. The value of a reasoning model lies in its ability to correct itself.
3. What Reasoning Models Do Poorly: Do Not Use Them in the Wrong Places
Even more important is knowing when you should not use one. A reasoning model is wasteful in the following scenarios and may even perform worse:
- Simple Q&A or information retrieval. "How do I read JSON in Python?" or "What is Redis's default port?" A standard model responds in milliseconds, while a reasoning model may think for 20 seconds first, creating a terrible experience.
- Creative writing. Reasoning models are trained to be excessively "rational," so they often become too restrained and lack flair when writing fiction, slogans, or marketing copy. I once asked o1 to write product copy. It spent 40 seconds "analyzing audience psychology" and then produced a paragraph of bland platitudes.
- Real-time or multi-turn conversations. In latency-sensitive applications such as customer service, voice assistants, and game NPCs, thinking latency directly ruins the experience.
- Formatted extraction and structured output. Extracting fields from invoices, converting text to JSON, and NER are all comfortable territory for standard models. Using a reasoning model is overkill: slower and more expensive.
- Simple tool calls or function calling. There is no need unless composing the tools itself requires complex planning.
In short: Any task that does not require thinking will not be done better by a reasoning model, only more slowly and at greater cost.
4. Cost and Latency: Thinking Tokens Cost Money Too
This is the easiest engineering pitfall to fall into. Many people assume, "I asked only a short question, so it should be cheap." Then they inspect the bill and discover that thinking tokens account for 90% of the cost.
First, establish a few facts:
- Thinking tokens are billed: The internal reasoning chains of o1, o3, and DeepSeek-R1 are billed at output-token rates, or separately as reasoning tokens for the R1 family. Because reasoning models tend to "think more," this portion often greatly exceeds the length of the final answer.
- Latency is unpredictable: For the same question, thinking may take five seconds or 90 seconds. You cannot promise an SLA at request time. This is fatal for frontend interactions.
- Concurrency and throughput suffer: Thinking occupies compute for longer, providers often impose tighter rate limits on reasoning models, and requests are more likely to queue.
- Caching is less effective: Standard conversations can reduce costs significantly through prompt caching, but a reasoning model's thinking path depends heavily on the exact problem, resulting in a low cache hit rate.
The engineering response is to set a separate budget cap for reasoning models, such as a maximum number of thinking tokens per request; use an asynchronous queue instead of synchronous HTTP; and manage user expectations with a "Thinking deeply..." progress state in the product. Most importantly, monitor usage and break down reasoning-model costs by task type. Otherwise, you may burn hundreds of thousands in a month and assume the model itself is expensive when the real problem is that you used it in the wrong places.
5. How to Control Reasoning Models: Three Iron Rules
Using reasoning models effectively requires a completely different prompting style from standard models. I follow three iron rules:
Rule 1: Give it time; do not rush it. The value of a reasoning model comes from thinking longer. Writing "answer quickly" or "keep it brief" in the prompt amounts to disabling its core capability yourself. Unless you genuinely want only a summary, let it think fully by default.
Rule 2: Keep the prompt concise; do not over-direct it. The most common anti-pattern is carrying over instructions written for standard models, such as "Let's think step by step, first analyze X, then consider Y..." A reasoning model plans its own chain of thought, so forcing it to follow prescribed steps can interfere with that process. Describe the problem and goal clearly, then leave the reasoning process to the model. Give fewer hints and more context.
Rule 3: Verify its reasoning chain; do not trust it blindly. Reasoning models still make mistakes; those mistakes are simply harder to spot. A model may confidently follow the wrong path during thinking and give you a final answer that appears perfectly coherent. Always run tests for coding problems, verify calculations for mathematical problems, and have humans review intermediate conclusions for critical decisions. Treat a reasoning model's output as a draft from a very smart colleague who is occasionally confidently wrong.
One more practical technique is to ask the reasoning model to output its key intermediate assumptions, making it easier to locate the step where it went wrong instead of inspecting only the final answer.
6. Hybrid Architecture: Let the Routing Layer Decide
The real engineering answer is: Do not use one model across the entire product. Build a routing layer that distributes tasks according to complexity. This is now the standard architecture for nearly every mature AI team.
User request
│
▼
┌────────────────────────┐
│ Router layer │
│ Classify: easy / hard │
└──────────┬─────────────┘
┌─────────┴─────────┐
▼ ▼
┌─────────────┐ ┌──────────────┐
│ Fast path │ │ Slow path │
│ GPT-4o mini │ │ o3 / R1 │
│ Claude Haiku│ │ (async queue)│
│ DeepSeek-V3 │ │ │
└─────────────┘ └──────────────┘
│ │
└──────────┬────────┘
▼
Unified response + usage telemetry
How should the routing layer judge complexity? Here are several practical methods, from lightest to heaviest:
- Keyword or intent rules: Signals such as mathematical formulas, "prove," "derive," or "algorithmic complexity" route directly to a reasoning model. Translation, summarization, and extraction use the fast path. This is the simplest approach and covers 80% of scenarios.
- Small-model classifier: Use an inexpensive model, or a fine-tuned BERT-type model, to assign a difficulty label before choosing the route. This improves accuracy at the cost of one additional lightweight call.
- Cascade: Let the fast model try first, then apply a confidence or self-check threshold, such as instructing it to return
ROUTE_TO_REASONINGwhen uncertain. If it does not pass, promote the request to a reasoning model. This offers the best cost-performance ratio, and I recommend it as the default.
In addition to routing traffic, the routing layer must do three things: centralize logging and usage telemetry, with cost and latency tracked separately by path; implement a fallback strategy, reverting to the fast model if the reasoning model times out; and provide an A/B testing framework to continuously validate whether the routing strategy is sound.
A common misconception is that routing happens only once. A complex task can be decomposed into "reasoning model for planning plus fast model for execution," which is the standard pattern in agent frameworks.
7. In Practice: Tasks Where Reasoning Models Are Clearly Stronger
Experiments are more useful than abstractions. My team and I repeatedly tested the following tasks over the past six months, and reasoning models showed a significant advantage over standard models of the same generation. They were not merely "slightly better"; they were in another league:
- LeetCode Hard / Codeforces 1800+: o3-type models can consistently find a viable approach, while standard models often get stuck on an incorrect greedy strategy.
- Complex SQL query optimization: For multi-table joins, window functions, and performance recommendations, reasoning models produce more reliable execution plans.
- Bug root-cause analysis: Given a stack trace and the relevant source code, reasoning models are better at locating the true root cause rather than a surface-level symptom.
- Paper reproduction: When implementing code from a paper, reasoning models handle ambiguous descriptions and missing details better.
- Multi-constraint rostering and scheduling: For optimization problems with hard and soft constraints, reasoning models produce solutions closer to the optimum.
- Formal verification / TLA+ / Coq: Reasoning models are almost the only models capable of handling these effectively.
Conversely, testing found no significant advantage, and sometimes worse performance, on simple code completion, translation, rewriting and polishing, RAG Q&A, casual conversation, and structured extraction. Do not waste money on reasoning models for these tasks.
A simple rule of thumb: If the problem is "hard" and "verifiable," use a reasoning model. If it is "simple" or "open-ended with no standard answer," use a standard model.
Summary
- Fundamental difference: Reasoning models spend more compute on a hidden chain of thought and "think before answering." They excel at hard, verifiable problems but are slower and more expensive.
- When to use them: Complex mathematics and proofs, algorithms and difficult code, multistep logic, research analysis, and rigorous planning. The common trait is that there is a correct answer and intermediate mistakes can be detected.
- When not to use them: Simple Q&A, creative writing, real-time conversations, and structured extraction. They will only be slower and more expensive and may even perform worse.
- Cost and latency: Thinking tokens are still billed, and latency is unpredictable. Set budgets, use asynchronous processing, and monitor usage by task type.
- Standard engineering approach: Build a routing layer, preferably with a cascade strategy. Let the fast model try first, then promote the task to a reasoning model if it does not pass.
To close with one line: A reasoning model is not a stronger model; it is a different kind of model that solves a different dimension of problems. Treat it as a universal hammer, and every nail will simply be driven more slowly and at greater cost.
Related
Related Content
Article
What Is Vibe Coding? Will It Change How Programmers Work?
Technical trends, engineering practices, and an indie developer perspective on Vibe Coding, AI, and independent development.
Article
From Copilot to Codex: AI Coding Tools Enter the Agent Era
Technical trends, engineering practices, and indie-developer perspectives around AI, AI Agents, and Vibe Coding.
Article
Core Architecture of AI Agents: Planning, Memory, Tools, and Execution
Technical trends, engineering practices, and independent developer perspectives around AI Agents and large language models.
Article
Complete Technology Stack Analysis for LLM Application Development
Covers tech trends, engineering practices, and indie developer perspectives around large models, RAG, and AI.