Focused Chain-of-Thought (F-CoT): Structured Input for Faster LLM Reasoning
TL;DR
F-CoT is a prompting technique that splits the model's work into two stages: first, pull the key facts out of the problem into a structured format (XML tags or a numbered list); then reason over that compact context only. During the solving stage, the model never sees the original problem text; it works only from the distilled version.
When you hand a model a word problem head-on, it burns tokens re-extracting facts, rephrasing, "let's break this down", and other noise. The study found that up to 50% of generated text isn't reasoning at all but filler: restating the conditions, self-checks like "wait, let me reread the problem", switching between approaches. The model spins its wheels in its own verbosity.
F-CoT solves this elegantly: if the facts are already isolated and numbered, the model has nothing to "extract" and goes straight to computing. The result: 2-3x fewer tokens at the same accuracy. No fine-tuning, no special "be concise" instructions, just a different input format.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
STEP 1: Context extraction
Input: problem text
→ Output: a structured <context> block with numbered facts and the question
(you can do it by hand, ask the same model, or use a more powerful model)
STEP 2: Reasoning over the context
Input: ONLY the structured context (no original text)
→ Output: step-by-step solution citing specific <info_k>
Both steps can be run back to back in the same chat or in separate ones.
Example in Practice
Task: Calculate total pay including overtime for a payroll report.
Prompt (Step 1 — extraction):
Extract the key information from the problem into a structured format. Do not solve the problem.
Problem: Lisa works at a company with an hourly rate of $25 for the first 40 hours a week. For overtime she gets 1.2 times her regular rate. This week Lisa worked 45 hours. How much did she earn this week?
Output format:
<context>
<info_1>Fact 1</info_1>
<info_2>Fact 2</info_2>
<question>Question</question>
</context>
Prompt (Step 2 — reasoning):
Use ONLY the facts from <context> below. Do not refer to the original problem.
Instructions:
1) Reason step by step
2) Cite the specific <info_k> whenever you use a fact
3) Final answer in \boxed{}
<context>
<info_1>Hourly rate: $25/hour for the first 40 hours</info_1>
<info_2>Overtime rate: 1.2 × regular rate</info_2>
<info_3>Hours worked: 45</info_3>
<question>Total earnings for the week?</question>
</context>
Result:
The model produces a compact solution: from <info_1> the base pay = 40 × 25, from <info_2> and <info_3> overtime = 5 × (25 × 1.2), total in \boxed{}. No restating the conditions, no "let's break this down", no switching approaches: straight to the math.
Why It Works
The LLM's weakness: With a word problem, the model doesn't separate "understand the setup" from "solve it". It does both at once, constantly going back to the text, rephrasing, checking its understanding. That produces extra tokens: the study found the number of "filler" sentences is cut in half with F-CoT.
The LLM's strength: Models are great at following structured instructions and working with explicitly labeled data. When facts are numbered and isolated, the model focuses its attention on the relevant information instead of scanning the whole text for what it needs.
How the method works: F-CoT borrows a principle from cognitive psychology (Active Control of Thought): people solve problems more efficiently when they first write down the "given" and the "find". The model does the same thing, but it's enforced by the prompt structure. Key insight: you don't need to ask the model to "be brief"; just give it the data in compact form.
Control knobs:
- Context format: XML tags give the fewest tokens, but a plain numbered list works almost as well (+12% tokens)
- Context source: for simple problems the model can extract the context itself; for hard ones, use a more powerful model in the first step
- Adding the original text: if the problem is ambiguous, you can provide both the context and the original. That's +19% tokens but sometimes improves accuracy
Prompt Template
Step 1 — Context extraction:
Extract the key information from the problem into a structured format.
Rules:
- Only the facts needed to answer
- Short statements, no extra words
- Keep numbers and formulas exact
- Do not solve the problem or perform calculations
Format:
<context>
<info_1>Fact 1</info_1>
<info_2>Fact 2</info_2>
<question>What needs to be found</question>
</context>
Problem: {problem_text}
Step 2 — Reasoning:
Use ONLY the facts from <context> below. Do not refer to the original problem.
Instructions:
1) Reason step by step
2) When you use a fact, cite <info_k>
3) Final answer in \boxed{}
{context_from_step_1}
Placeholders:
{problem_text}— the full problem text with all its conditions{context_from_step_1}— the output of the first step (the entire<context>...</context>block)
🚀 Quick start — paste into the chat:
Here is the two-step F-CoT method for solving problems efficiently. Help me apply it to my problem.
My problem: [describe the problem]
Step 1: Extract the key facts into this format:
<context>
<info_1>...</info_1>
<question>...</question>
</context>
Step 2: Solve using ONLY this context, citing <info_k>.
The LLM will ask for the details of your problem, extract the facts into a structured format, then solve it compactly, with no filler and no restating of the conditions.
Limitations
⚠️ Already compact problems: If the original problem is already tight (like AIME competition problems), F-CoT gives no gain and can even slightly lower accuracy, since there's nothing to extract.
⚠️ Small models: Models under 4B parameters struggle to extract the context on their own (under 2% valid formats for the 0.6B). Fix: use a more powerful model for the first step.
⚠️ Lost details: During automatic extraction, the model sometimes drops important instructions; for example, "answer as a percentage" turns into a decimal. Check the context before the second step.
How They Tested It
The team took four sizes of the Qwen-3 model (from 0.6B to 32B parameters) and three math benchmarks: the easy SVAMP, the hard GSM-Hard, and the advanced MATH-500. They compared standard zero-shot CoT ("think step by step") with F-CoT in two modes: with the context generated by GPT-5 mini, and with the same model doing both steps.
Main result: across all models, F-CoT cut tokens 2-3x at comparable Pass@5 accuracy. On the easy SVAMP problems, down to a third of the original volume. On the hard MATH-500, roughly by half. Quality didn't drop and sometimes even improved: models less often "hallucinated" typos in large numbers when working from structured context.
A curious detail: the researchers measured an "overthinking score", how prone the model is to abstract musing instead of concrete steps. With F-CoT, it dropped from 2.35 to 1.74 (on a 0-10 scale). The model philosophizes less and calculates more.
Format isn't critical: XML tags, a numbered list, even plain text with facts split out all work. The difference between formats is about 12% in tokens. What matters is the idea of isolating facts, not the specific syntax.
Original Prompts from the Paper
Context: Information extraction prompt (no examples, zero-shot version):
Please extract all critical information and the underlying question from the given sample.
The output must follow this format:
<context>
<info_1>Information 1</info_1>
<info_2>Information 2</info_2>
<question>The question that needs to be answered based on the information provided.</question>
</context>
Guidelines:
- Only include information directly relevant to answering the question.
- Write information in concise, factual statements.
- If quantities, measurements, or mathematical relations are given, include them (use LaTeX for numbers and units when appropriate, e.g., $4.5 \, \text{inches}$).
- Ignore irrelevant background or narrative details.
- Restate the question clearly and concisely, keeping only what is necessary to answer it.
- Do not solve the problem or perform calculations.
Please extract the information and question from the following sample:
[ORIGINAL QUESTION]
Context: Prompt for reasoning over the context:
You are given ONLY the structured <context> below. Use ONLY the facts inside <context> to compute the answer. Do NOT reference or repeat the original natural-language question or any outside information.
Instructions:
1) Show step-by-step reasoning between <think> and </think> blocks.
2) In your reasoning, explicitly cite the relevant <info_k> entries when you use them, including the angle brackets (e.g., 'From <info_1>, ...').
3) After the reasoning, output the final answer in \boxed{}.
<context>
[INSERTED CONTEXT]
</context>
Please reason step by step, and put your final answer within \boxed{}.Adaptations and Extrapolations
💡 Adaptation for document analysis
F-CoT isn't just for math: the "extract first, analyze second" principle applies to any task buried in excess text.
Example — contract review:
Step 1: Extract the key terms of the contract into this format:
<context>
<info_1>Parties: ...</info_1>
<info_2>Term: ...</info_2>
<info_3>Amount: ...</info_3>
<info_4>Penalties: ...</info_4>
<question>What are the risks for the client?</question>
</context>
Step 2: Analyze ONLY on the basis of <context>, citing specific items.
🔧 Technique: simplified format for quick tasks
If XML feels clunky, use a numbered list. The study showed the efficiency difference is minimal (+12% tokens).
Context:
1. First fact
2. Second fact
3. Third fact
Question: What needs to be found
Solve, citing the fact numbers.
🔧 Technique: hybrid mode for ambiguous problems
If you're worried about losing important details during extraction, give the model both the context and the original:
Use the facts from <context> as your basis. Refer to the original problem ONLY if something is unclear.
Original: {full text}
<context>
{extracted facts}
</context>
This costs +19% tokens but improves accuracy on hard problems with ambiguous wording.
Resources
Paper: "Focused Chain-of-Thought: Efficient LLM Reasoning via Structured Input Information"
Authors: Lukas Struppek (FAR.AI), Dominik Hintersdorf (DFKI, TU Darmstadt), Hannah Struppek (University of Kassel), Daniel Neider (TU Dortmund), Kristian Kersting (DFKI, TU Darmstadt, Hessian.AI)
Related concepts: the Active Control of Thought (ACT) framework from cognitive psychology (Anderson, 1976), Chain-of-Thought prompting (Wei et al., 2022)