Model Guides

Reasoning Models: What They Are and When to Use Them

MBMarcus BellFeb 22, 20264 min read

"Reasoning model" has become a common phrase, but it is often used loosely. At its core, it describes models that are particularly good at working through problems step by step before committing to an answer, rather than responding with the first thing that comes to mind. Understanding when this extra deliberation helps, and when it just costs you time and money, is key to using these models well.

This guide explains what reasoning-strong models are, where they shine, and how to use them on Model Database.

What "reasoning" really means here

All modern LLMs do some form of reasoning. What distinguishes reasoning-strong models is their reliability on multi-step problems: math and logic, planning, complex code, and tasks where the answer depends on correctly chaining several intermediate conclusions. They tend to make fewer of the careless errors that show up when a model jumps straight to an answer.

You can also encourage step-by-step reasoning from many models through prompting, for example by asking the model to think through the problem before answering. The strongest reasoning models do this more reliably and need less hand-holding.

When reasoning power pays off

Lean on a strong reasoning model such as anthropic/claude-opus-4-8 or openai/gpt-4o when the task involves:

In these cases the model's willingness to deliberate is exactly what prevents expensive downstream errors.

When it is overkill

Deliberation has a cost: more tokens, higher latency, and a bigger bill. For tasks with a clear, direct answer, classification, extraction, short summaries, simple lookups, a fast model like openai/gpt-4o-mini or google/gemini-2.0-flash gives you the right answer faster and cheaper. Using a heavy reasoning model to label sentiment is paying for thinking the task doesn't require.

Prompting for better reasoning

You can often improve results by giving the model room to work:

from openai import OpenAI

client = OpenAI(base_url="https://modeldatabase.com/v1", api_key="mdb_live_...")

resp = client.chat.completions.create(
    model="anthropic/claude-opus-4-8",
    messages=[
        {"role": "system", "content": "Work through the problem step by step, then give a final answer on the last line prefixed with 'Answer:'."},
        {"role": "user", "content": "A train leaves at 2pm going 60mph. Another leaves at 3pm going 80mph from the same point. When does the second catch the first?"},
    ],
)
print(resp.choices[0].message.content)

Asking for explicit steps tends to improve accuracy on multi-step problems. When you only need the final value, you can ask the model to keep its reasoning brief or to return just the answer once it is confident.

Mind the cost and latency trade-off

Step-by-step reasoning produces more output tokens, which means higher cost and slower responses. Keep an eye on it: every billable response returns X-MDB-Charged-USD and X-MDB-Balance-USD, so you can compare the cost of a reasoning-heavy prompt against a direct one on the same task. If the extra deliberation doesn't measurably improve accuracy on your workload, drop it.

A pragmatic routing rule

In production, classify the task first and route accordingly. Send simple, direct requests to a fast model and reserve reasoning-strong models for the genuinely hard ones:

def route(task, hard):
    model = "anthropic/claude-opus-4-8" if hard else "openai/gpt-4o-mini"
    return client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": task}],
    )

You can decide hard with a cheap classifier call, a heuristic on the input, or a confidence check on a first attempt. The result is a system that thinks hard only when thinking hard matters, which keeps both your latency and your bill in check.

Want to experiment with reasoning models on your own problems? Get a key and add credit at your dashboard, and see the docs for the full parameter and streaming reference.

← All articles Get your API key →