Reasoning strategies for LLM agents are a crowded space: CoT, ToT, Reflexion, ReAct, Reason+Act, self-consistency, debate. Most are incremental over a well-prompted single call, and a 2026 frontier model with its built-in extended-reasoning mode often flattens the whole landscape.
Here's what actually earns its cost.
The "show your work" prompt, "Let's think step by step" or equivalent. For any non-trivial reasoning task, CoT improves accuracy — often by 10–30 points on math or logic benchmarks, less on factual tasks.
Guidelines:
For agents specifically, CoT between tool calls is helpful for deciding which tool to call but costs tokens. Reserve full CoT for decision points (tool choice, termination) and suppress it for executing straightforward steps.
2026 frontier models ship with a separate reasoning mode that takes longer, spends more tokens, and arrives at better answers on complex problems. OpenAI's o1 series, Anthropic's extended thinking, DeepSeek R1, and open-weights models trained on similar traces.
Pattern: spend 2–20× more tokens on reasoning than on the final answer. The answer is often one line; the reasoning chain is many pages.
When to use:
When not to use:
A pragmatic agent design: default to regular mode, promote to reasoning mode on demand ("think harder") when the agent detects it's stuck or when a specific tool annotates that this step is hard.
The "Reflexion" pattern: after an attempt, the model critiques its own output, then retries with the critique as context. Published ablations show +5–20 points on agent benchmarks.
Reality check: reflection is a cost multiplier (2–3× tokens per task) for a modest quality bump that isn't always present. Before adding it:
When reflection pays:
When reflection doesn't help:
ToT generates N candidate reasoning paths, evaluates each, keeps the best, iterates. Works when one-shot reasoning often lands on a local minimum.
If you need ToT-like exploration, consider:
Self-consistency is underrated. On arithmetic and closed-set reasoning, N=5 with majority vote often matches more sophisticated schemes.
ReAct interleaves reasoning and action:
Thought: I need to find the user's subscription
Action: lookup_user(id=42)
Observation: {active_subscriptions: 1, last_payment: ...}
Thought: OK, I have the subscription. Now I need to cancel it.
Action: cancel_subscription(user_id=42, sub_id=...)
Observation: ok
Thought: Done. I should also refund the last payment.
...
This is the baseline pattern for nearly every production agent. Modern frameworks (LangGraph, CrewAI, OpenAI Assistants) implement it almost identically under the hood.
Tuning hints:
Thought: channel if the base model reasons implicitly well. You save tokens and lose nothing.Thought: if you need the reasoning log for debugging or audit.Observation: block should be aggressively summarised for older turns — see AgentMemory.get_user with id=42" when the code already decided — wasted tokens.The only honest question is whether your reasoning strategy improves your task's outcome per dollar. Fixed rollout eval (see AgentTesting) with cost tracked:
Which wins depends on what a success is worth to you. Know that number.