TL;DR
FOR-Prompting is a technique that improves a model's answers through external questions instead of direct corrections. Three roles work in a loop: the Defender proposes a solution → the Debater asks only questions (no ready-made answers) → the Defender revises the solution → the Host synthesizes the final version. The key difference from other methods: the Debater never gives solutions, it only asks, like a person helping you rethink a problem.
Models are bad at catching their own mistakes with a direct prompt. Chain-of-Thought makes the model think step by step, but it's an internal monologue with no outside pressure. Debates between agents often just swap one answer for another, and it's unclear who's right and why. FOR-Prompting solves this with trigger questions: the Debater exposes gaps ("What if the tickets are sold out?", "Is all of this realistic in a single day?"), forcing the Defender to find and fix the weak spots itself. And authorship stays with a single agent (the Defender), which keeps things transparent.
The method runs for 3-7 rounds (you set the number). Each round: the Debater generates 2-5 questions based on the current answer → the Defender revises the solution taking all previous questions into account → the Host aggregates the final answer. The study used a fixed 3 rounds for comparability, but in real tasks (brainstorming, planning) you can keep going until it converges or your token budget runs out.
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
LOOP (N rounds, usually 3-7):
ROUND 0:
Defender: Generates an initial answer A₀ to question Q
ROUND 1...N:
Debater: Analyzes A_{r-1} → generates questions O_r (NO solutions)
Defender: Reads Q + all previous O₁...O_r → revises the answer → A_r
FINAL:
Host: Synthesizes the final answer A* from the full history {A₀, O₁, A₁, ..., O_N, A_N}Crucial: All roles run in a single chat as sequential prompts. You can do it in one request (ask the model to play all the roles) or split it into separate messages.
Example in Practice
Task: You've decided to open a coffee shop in a residential neighborhood of Chicago. Stress-test the idea with FOR-Prompting and find the weak spots in the plan.
Prompt:
Play three roles to stress-test a business idea:
DEFENDER (you):
I want to open a coffee shop in a residential neighborhood of Chicago (Logan Square).
The plan:
- Location: ground floor of an apartment building, 430 sq ft, rent $6,000/month
- Target audience: local residents who work remotely
- Average ticket: $5.50, forecast 100 cups a day
- Startup capital: $120K (equipment, build-out, inventory)
- Payback: 12-15 months
DEBATER (also you, in a different role):
Ask 4-5 questions about this plan. DO NOT suggest solutions, only ask:
- What could go wrong?
- Which assumptions haven't been tested?
- What's missing?
DEFENDER (you again):
Revise the plan based on the Debater's questions. What changes?
HOST (you):
Put together the final verdict: what's solid in the plan, where the risks are, and what the first steps should be.Result:
The model will show 3-4 rounds of thinking:
- The Defender's first answer: the baseline plan (as in the prompt)
- The Debater's questions: for example, "What about competitors within a few blocks?", "Are 100 cups realistic for a new spot with no customer base?", "What if remote workers go back to the office?", "Is a cafe even allowed in a residential building under local zoning?"
- The Defender's revision: a rework with numbers: "Checked: 2 competitors, but they're a different format. Cut the forecast to 60 cups. Found the city health-code and zoning requirements for cafes in residential buildings. Added a plan for landing the first customers."
- The Host's synthesis: a structured verdict: strengths (location, low rent), risks (overestimated demand, legal restrictions), priority steps (check zoning and the health code, test demand with a pop-up).
The final plan will be more detailed and more honest than the original: the model found the gaps itself through questions.
Why It Works
The LLM's weakness: Models are prone to confirmation bias: once an answer is generated, it seems right. With a direct prompt the model doesn't look for holes in its own logic because there's no outside pressure.
The LLM's strength: Models are excellent at answering specific questions and good at playing roles. Ask "What if X?" and the model easily switches gears and checks the assumption. Give it the role of a critic and it generates questions like "Why not Y?".
How the method leverages that strength: FOR-Prompting simulates an outside interlocutor who doesn't give ready answers but only asks. This forces the Defender to find the mistakes itself, without hints. The questions act as triggers for rethinking: "Is this really realistic?", "What if the conditions change?", "Did you account for Z?". And authorship stays with one agent: the Host knows the final solution was created by the Defender, not a mix of opinions.
Levers for tuning the prompt:
- Number of rounds (1-7) → Fewer rounds = faster and cheaper; more = deeper work. Simple tasks need 1-2 rounds; complex ones (planning, brainstorming) need 5-7.
- Debater instructions ("ask clarifying questions" vs. "ask tough critical questions") → Soft questions = clarification and detail. Tough ones = hunting for contradictions and weak spots.
- Exit condition → You can stop when:
- The Debater can't find new questions
- The Defender stops changing the answer
- A set quality threshold is reached
- The token budget runs out
- Debater question format ("yes/no only" vs. "open-ended questions") → Closed questions = quick fact checks. Open ones = exploring alternatives.
- Host role (synthesize vs. just take the Defender's last answer) → An active Host combines the best of all rounds. A passive one just takes the final version.
Prompt Template
Basic version (1 round, all in one prompt)
Play three roles to solve this task: {task}
DEFENDER:
Propose a solution to the task. Be specific.
DEBATER:
Ask 3-5 questions about the Defender's solution. DO NOT suggest fixes, only ask:
- What could go wrong?
- Which assumptions haven't been tested?
- What's missing?
DEFENDER (revision):
Revise your solution based on the Debater's questions. What changes?
HOST:
Put together the final answer: what's strong in the solution, where the risks are, what the next steps are.Placeholders:
{task}: your task (a business idea, a plan, a problem to solve, a text to analyze)
Extended version (3 rounds, separate prompts)
Prompt 1 (Defender):
You are the Defender. Solve the task: {task}
Be specific. Give a final answer.Prompt 2 (Debater, round 1):
You are the Debater. Here is the Defender's solution:
[paste the Defender's answer]
Ask 4-5 questions about this solution. DO NOT suggest fixes, only ask:
- What could go wrong?
- Which assumptions haven't been tested?
- What's missing?Prompt 3 (Defender, round 1):
You are the Defender. Here is your previous solution and the Debater's questions:
PREVIOUS SOLUTION:
[paste]
DEBATER'S QUESTIONS:
[paste]
Revise the solution. Answer the questions. Give a new version.Repeat Prompts 2-3 two more times for rounds 2-3.
Prompt 4 (Host):
You are the Host. Here is the full discussion history:
[paste the entire Defender ↔ Debater exchange]
Put together the final answer:
1. What solution did we end up with?
2. What are its strengths?
3. What risks remain?
4. What should happen next?Placeholders:
{task}: your task[paste the Defender's answer]: the answer from the previous step[paste the entire exchange]: copy all the rounds
🚀 Quick start: paste this into the chat:
Here's the FOR-Prompting template. Adapt it to my task: [your task].
Ask me questions to understand the task and fill in the roles.
[paste the basic or extended template above]The LLM will ask for details about the task (what exactly to check, what the constraints are, what answer format you want), because the Debater needs context to ask relevant questions, and the Host needs to understand what matters in the final synthesis. The model will take the FOR-Prompting structure and adapt it to your situation.
Limitations
⚠️ Tokens and time: 3-7 rounds = 3-7x more tokens than a direct prompt. For simple tasks ("capital of France") it's overkill. For complex ones (a business plan, a paper breakdown) it's worth it.
⚠️ Not for tasks with one clear right answer: If the answer is unambiguous (math like 2+2, a fact like "who's the president"), the Debater's questions won't add value. FOR-Prompting is strongest on open-ended tasks (planning, creative work, analysis) where finding blind spots matters.
⚠️ Question quality depends on the model: Weak models (GPT-3.5, small open-source ones) may generate shallow questions. Strong models (GPT-4, Claude, o1) ask sharp ones. On models <7B parameters the effect drops.
⚠️ It can get stuck in a loop: If the Debater keeps asking the same questions and the Defender doesn't change its answer, the loop is pointless. Watch for convergence: if nothing changes after 2-3 rounds, stop.
How They Tested It
The team tested FOR-Prompting on three kinds of tasks: math problems (GSM8K), small models, and fixing errors without tools. Here's what they did and why they reached these conclusions.
GSM8K (1,319 math problems): They compared three methods: a direct prompt, CoT (step-by-step thinking), and FOR-Prompting (3 rounds). Results: the direct prompt flopped (68% accuracy), CoT made a leap (90%), and FOR-Prompting matched CoT on accuracy (90%) but beat it on reasoning (+13% over CoT) and coherence (+10% over CoT). That's striking: same accuracy, but higher-quality explanations. Why? The Debater's questions forced the Defender to state its assumptions and steps explicitly, which stay implicit in CoT. A GPT-4.1 judge scored three metrics: reasoning (logic of the steps), coherence (consistency, no contradictions), and holistic quality (overall usefulness). FOR-Prompting got higher ratings on reasoning and coherence because external questions make the reasoning more structured and transparent.
Small models (LLaMA 3.2:1B, 1.3K GSM8K problems): The direct prompt managed just 5.6% accuracy (the model is too weak). One round of FOR-Prompting raised accuracy to 24.3%, almost 4x! Three rounds: up to 25%. The insight: even a small model can improve through external questions, although absolute accuracy stays low. That matters for on-device applications (privacy, token savings): you can take a weak model and compensate with prompt structure.
Error correction (GPT-4.1, the task "How many rs in strarrtrabbbery"): The direct prompt gave a wrong answer ("4 'r's"). FOR-Prompting (7 rounds) fixed it: the Debater asked "Are you sure it's 4? Show how you counted", and the Defender recounted and found 5 'r's. Each subsequent round added a check (indices, a table, a visualization). Key insight: the model found the error itself through questions, with no human and no external tools (calculators, code). This shows that questions work as an internal check.
Open-ended tasks (a 5-day trip plan for Rio): They compared ChatGPT o1 (extended thinking), GPT-4.1 (direct prompt), and FOR-Prompting. Result: FOR-Prompting covered 20 factors (weather, tickets, a rain plan B, alternatives, safety, a first-aid kit, offline maps), while o1 and GPT-4.1 covered only 10-15 factors. The Debater asked: "What if tickets to Christ the Redeemer are sold out?", "Is Sugarloaf + Lapa realistic in one day?", "What do we do if it rains?". The Defender added backup options, timings, and safety nets. Takeaway: FOR-Prompting doesn't just generate content, it stress-tests it for practicality, as if someone were sitting next to you asking awkward questions.
Why these results? The key finding: questions without solutions work better than direct corrections. When the second agent hands over a ready answer (as in debate approaches), it's unclear who's right, and the Defender may simply accept someone else's solution. When the second agent only asks, the Defender finds the errors itself, which strengthens learning and makes the final answer its own rather than a mix of opinions. That explains why reasoning and coherence are higher at the same accuracy.
Original Prompts from the Paper (roles)
Defender:
"You are the Defender. Answer the user's task as best as possible.
Be concise but correct. Provide a single final answer at the end, clearly marked."
Debater:
"You are the Debater. You will ask clarifying questions to improve the answer,
without proposing any solutions. Your output should be ONLY a concise list of questions."
Host:
"You are the Host. You must synthesize the Defender's answer and the Debater's objections,
and produce a refined final answer. Quote specific objections when relevant."Context: The researchers used these roles as base prompts. You can adapt the wording while keeping the essence: the Defender solves, the Debater asks (WITHOUT solutions), the Host synthesizes.
Adaptations and Extrapolations
💡 Adaptation for critiquing your own writing
Want to improve an article, a pitch, or a post? Use FOR-Prompting as an in-house editor:
DEFENDER:
Here's my text: {text}
DEBATER:
Ask questions about the text:
- What might the reader not understand?
- Where does the logic sag?
- Which examples are weak?
- What can be cut?
DEFENDER (revision):
Rewrite the text based on the questions.
HOST:
Final version of the text + a list of changes.Effect: the text becomes sharper and clearer because the model found the weak spots itself through a reader's questions.
🔧 Technique: drop the Host → see the intermediate versions
If you want to track how the answer evolves, skip the Host and just stop at the Defender's last answer. That way you see every iteration and can step in if the model goes off track.
ROUND 1: Defender gives A₁
ROUND 2: Debater → questions O₁ → Defender → A₂
ROUND 3: Debater → questions O₂ → Defender → A₃
Stop. Take A₃ as final.Useful for debugging prompts or quality control: you can see in which round the answer got worse.
🔧 Technique: give the Debater a specific focus
By default the Debater asks broadly. But you can narrow the focus:
DEBATER:
Ask questions ONLY about {focus}:
- financial realism
- legal risks
- technical details
- user experienceEffect: the model checks only the aspect you care about, without bloating the output. Useful when you have specific weak spots ("I'm not sure about the financials, check only that").
🔧 Technique: combine with Chain-of-Thought
You can build CoT into the Defender:
DEFENDER:
Solve the task {task}.
Think step by step (Chain-of-Thought).
Show the intermediate steps.
DEBATER:
Ask questions about the Defender's steps.
DEFENDER (revision):
Revise the steps based on the questions.Effect: CoT provides the structure, FOR-Prompting adds an external check. The best of both worlds.
Resources
Original paper: Zhang H., Zhang A., Dai J. "FOR-Prompting: From Objection to Revision via an Asymmetric Prompting Protocol" (2025)
Authors: He Zhang (Pennsylvania State University, Genentech), Anzhou Zhang, Jian Dai (Genentech, Inc.)
Key references from the paper:
- Chain-of-Thought (CoT): Wei et al., 2022
- Tree-of-Thought (ToT): Yao et al., 2023
- Self-Consistency: Wang et al., 2023
- Multi-agent debate: Du et al., 2024
- Constitutional AI: Bai et al., 2022
- GSM8K benchmark: Cobbe et al., 2021