Apply to my task
arXiv:2610.27488 ★ 72 Oct 20, 2026

Splitting a Review Across Agents: It Catches More Errors, but Also Raises More False Alarms

Key result

Splitting a review into three requests doesn't mean reviewing better: the team catches 8–10 percentage points (pp) more hidden defects, but there are more false alarms too, and overall accuracy barely changes. The method lets you check a document against a six-requirement checklist without losing rules: instead of one "check everything" request, you make three requests with two requirements each on the same model. The trick: if you show each agent the other requirements marked "others are checking these," false alarms on Claude models drop. And three runs of the same prompt, flagging "if any one found it," gave a better balance than a whole team. The price tag: 2.2–2.4 times more tokens.

01

TL;DR

The idea is simple: instead of one request saying "check the document against six requirements," make three requests with two requirements each on the same model. Then merge the flags. No roles, no orchestrator, no second stage. The advice "one concern — one call" is popular in practical guides, but no data had been offered to back it. Here it got tested.

The key finding: splitting doesn't make the review "better." It shifts the trigger threshold. The team catches more hidden defects (8–10 pp more of the ones that come with their own explanation). But it also raises more false alarms on clean items. When both kinds of error are weighted equally, overall accuracy barely changes. It burns 2.2–2.4 times more tokens. The cause of the false alarms is clear: each agent sees only its own two requirements and "jumps on" a phrase that belongs to a neighboring rule.

What helps: show each agent the other requirements, marked "these are checked by other reviewers." That reduces the extra false alarms on Claude models. And three runs of the same prompt, flagging "if any run found it," gave a better balance than the team.

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.

02

Method Blueprint

BASELINE:  1 request → all 6 requirements → PASS/FAIL + quote for each

TEAM:      request A → requirements 1–2 ┐
           request B → requirements 3–4 ├→ merge the flags
           request C → requirements 5–6 ┘
           (in parallel, no communication, same document and same wording)

TEAM WITH CONTEXT (scoped):
           same, but each request gets an added block
           "The other requirements are checked by other reviewers: {list}"

THREE RUNS:  1 prompt × 3 runs → flag if FAIL in at least one

Each step is a separate request. The agents don't talk to each other.

03

Example in Practice

The task: You're the finance manager of a regional coffee shop chain. Ahead of the bank's credit committee meeting, you need to check an internal memo for an expansion loan for internal contradictions. The document is 1,100 words, with six rules. Errors may be disguised. For example: "income is $37,000, but the calculation uses $31,700 because one-time bonuses were deducted." Every false alarm costs an hour of manual checking. A missed error costs you a dressing-down from the committee chair.

The method works best for checking internal contradictions against a checklist. So that's exactly what we take, with the requests in the "team with context" setup.

Prompt (request A, pair 1):

You are reviewing a credit memo for compliance with requirements.

YOUR REQUIREMENTS:
R1. Every mention of monthly revenue used in the repayment-capacity
    calculation must match the figure in the "Financials" section.
R2. Every mention of the approved credit limit must state the same
    amount, and any stated change to the limit must lead to it.

FOR CONTEXT (DO NOT CHECK, other reviewers judge these):
R3. All arithmetic totals involving revenue must be correct.
R4. All limit multiples must follow from the limit and revenue.
R5. All statements about payment history must match the history table.
R6. All stated business tenures must be possible given the owner's age.

Working rules:
- Evaluate each of YOUR requirements once.
- In one to three sentences, say what you compared with what.
- Once you've given a verdict, don't return to that requirement.
- Mark FAIL only if your own requirement is violated.

Response format (JSON), for each of your requirements:
{"requirement": "R1", "reasoning": "...", "verdict": "PASS|FAIL", "evidence": "quote from the document"}

DOCUMENT:
{memo_text}

Requests B (R3–R4) and C (R5–R6) are built the same way. Only the "YOUR REQUIREMENTS" block and the "FOR CONTEXT" block change.

Result: Each request returns JSON with a verdict and a quote for its two requirements. You merge the flags from the three answers into one report. Expect more disguised contradictions caught than with a single request covering six rules. There will also be slightly more false positives, but noticeably fewer than with a team lacking the "for context" block. Token usage will be about 2.3 times higher.

04

Why It Works

The weakness. When a single request has six requirements, the model can "lose" some of the rules or check them superficially. Hidden defects with a plausible explanation slip right past. That's why splitting really does catch more. But the weakness has a flip side. An agent with two rules doesn't know there are others nearby. It sees a suspicious phrase and writes FAIL, even though it's someone else's territory. A typical case from the paper: the R1 agent flagged a sentence about an income adjustment. That phrase was being checked under R3, which the agent couldn't see.

The strength. The model works well with an explicit boundary of responsibility. If you tell it the rest is checked by others, it stops trying to "cover everything."

How the method uses this. Splitting raises sensitivity. The "for context" block restores information about the boundaries and removes some of the false alarms. The paper is upfront about the cost. Shifting the trigger threshold is not the same as a smarter review.

Control levers: - Group size (2 requirements per request, or 1, or 3) → the smaller, the more tokens. The paper tested only one split: by meaning, in pairs of 2. - The "for context" block → remove it to raise sensitivity and accept more false alarms. Keep it to cut them down. - The "decide once" instruction → in the paper it was added to every request. The team's results depend on it, so test on your own sample. - The rule for merging runs → "any flag" gives the most catches. "Majority" gives fewer false alarms and misses more.

05

Prompt Template

You are reviewing a document for compliance with requirements.

YOUR REQUIREMENTS:
{requirements_for_this_request}

FOR CONTEXT (DO NOT CHECK, other reviewers judge these):
{other_requirements}

Working rules:
- Evaluate each of YOUR requirements once.
- In one to three sentences, say what you compared with what.
- Once you've given a verdict, don't return to that requirement.
- Mark FAIL only if your own requirement is violated.

Response format (JSON), for each of your requirements:
{"requirement": "...", "reasoning": "...", "verdict": "PASS|FAIL", "evidence": "quote from the document"}

DOCUMENT:
{document_text}

What to fill in: - {requirements_for_this_request} — 2 rules from your checklist. Best grouped by meaning, as in the paper. - {other_requirements} — all the other rules verbatim, in the same wording. For a plain baseline without context, drop this block. - {document_text} — the entire document, in every request.

Run 3 requests with different pairs. Merge the flags.

🚀 Quick start — paste into a chat:

Here is a template for checking a document against a checklist, split across several
requests. Adapt it to my task: [your task].
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what kind of document you have, how many requirements are on the checklist, and how to split them into pairs. It will also ask which error is costlier: a miss or a false alarm. That's needed to choose the group size and the flag-merging rule. Then it will assemble ready-to-use requests A, B, and C.

06

Limitations

⚠️ No universal win: when both errors are weighted equally, the team is barely different from a single agent. There's a gain only if a miss costs more than a false alarm.

⚠️ Strong models are at the ceiling: with the strongest model tested (Claude Sonnet), the single agent already found practically everything. The team added nothing and brought false alarms.

⚠️ Synthetic data: defects were present in 37% of checks; in reality they occur far less often. On real documents, false alarms will cost more than they do here.

⚠️ Internal contradictions only: only errors within the document were tested. Omissions, cross-checking against external facts, and judgment calls weren't.

⚠️ One split, one run: pairs by meaning, 2 requirements each, and each variant was run once. There's no guarantee a different split gives the same result.

⚠️ The mechanism of the "for context" block isn't proven: it may work as information about boundaries, or it may simply make the model more cautious. The paper doesn't tease these apart. On some models the block slightly lowered the detection rate for arithmetic errors.

⚠️ Cost: 2.2–2.4 times more tokens than a single request. Three runs cost even more.

07

How They Studied It

The researcher built 300 synthetic credit memos of ~1,100 words each, generated by a program rather than an LLM. The correct answer is known for each of the 1,800 "cells" (memo × requirement). The labels were cross-checked by three sources: the generator, a separate program, and a stronger model. Defects came in three types: an explicit contradiction, a disguised one (with its own explanation), and an arithmetic one.

Four setups were compared on four models (two Qwen3.5 and two Claude): a single agent, a team of three, a team with context, and three runs of a single agent. False alarms were measured separately from misses. Many earlier studies measured just "right/wrong," which makes it impossible to tell which kind of error a setup prefers. The main hypotheses were fixed in advance and tested with a correction for multiple comparisons.

Two results were surprising. First, the simplest trick, "run it three times and flag on any hit," gave a better balance than the team, even though the team is usually considered the more sophisticated design. Second, the team with context was added only after the author read through Sonnet's false alarms. Most of them happened when an agent touched someone else's rule. The practical takeaway: before splitting work among agents, think about what each one doesn't know about its neighbors.

08

Adaptations and Extrapolations

🔧 Technique: the rule for merging runs → tune the "miss ↔ false alarm" balance to your task

Run the same prompt 3 times. If a miss is costlier (compliance, security, legal risk), flag on any FAIL. If a false alarm is costlier (say, a manual check takes an hour), flag on two out of three. In the paper, "any of the three" gave the most catches, while "majority" gave fewer false alarms.

🔧 Technique: the same template in CLAUDE.md or a subagent description

If you have reviewer subagents (for example, in Claude Code), add a block to each one's instructions: "Other subagents check: {list}. Don't flag violations in their area." This is a direct carry-over of the paper's trick to agent work. The paper itself tested it only on parallel calls without tools.

09

Resources

  • Paper: The More the Better? A Comparison of Single- and Multi-Agent LLM Setups on a Financial Review Task
  • Author: Pei Liu, School of Engineering and Applied Science, George Washington University (Washington, D.C., USA)
  • References mentioned: Schluntz & Zhang 2024 (Anthropic's practical guide, the "one concern — one call" rule), Fox et al. 2026 (the "moves the point along the curve or lifts the curve" framing), He et al. 2026, Liu et al. 2026, Yu et al. 2026, Wang et al. 2023 (self-consistency).
  • Data: the synthetic memos are built on the Yeh & Lien 2009 dataset (credit cards, Taiwan).

Research digest

Key result

Splitting a review into three requests doesn't mean reviewing better: the team catches 8–10 percentage points (pp) more hidden defects, but there are more false alarms too, and overall accuracy barely changes. The method lets you check a document against a six-requirement checklist without losing rules: instead of one "check everything" request, you make three requests with two requirements each on the same model. The trick: if you show each agent the other requirements marked "others are checking these," false alarms on Claude models drop. And three runs of the same prompt, flagging "if any one found it," gave a better balance than a whole team. The price tag: 2.2–2.4 times more tokens.

Principle

The advice "one concern — one call" is popular in guides, but there was no data behind it. Here it got tested, and the conclusion is unexpected. Splitting doesn't make the review smarter; it shifts the trigger threshold. The process is simple: request A takes requirements 1–2, request B takes 3–4, request C takes 5–6. They run in parallel, with no communication. Then the flags are merged into one report. Picture security guards on the floors of a building. Each one knows only their own door. They're more vigilant than a single guard covering the whole building, but they yell at anyone standing near someone else's door. The "for context" block is the boundary of responsibility: "that hallway isn't yours; others cover it."

Why it works

When a single request has six requirements, the model loses some of the rules or checks superficially. Hidden defects slip past. That's why the team really does catch 8–10 pp more. But there's a flip side. An agent with two rules doesn't know there are others nearby, and it jumps on any suspicious phrase. An example from the paper: the R1 agent flagged a phrase about an income adjustment. That should have been checked under R3, which it couldn't see. The "for context" block gives the agent back a map of the boundaries. It stops trying to cover everything and drops some of the false alarms. An honest caveat: the mechanism isn't proven. The block may provide information about boundaries, or it may simply make the model more cautious. On some models it slightly lowered the detection rate for arithmetic errors.

When to apply

Document review → specifically internal contradictions against a checklist (credit memo, contract, report), especially when a missed error costs more than a false alarm. When both errors cost the same, there's almost no gain. NOT suitable if you have a strong model like Claude Sonnet: a single request already found almost everything, and the team brought only extra alarms. Not tested: finding omissions in text, cross-checking against external facts, and judgment calls. The data is synthetic: defects were present in 37% of checks, while in real life there are far fewer. False alarms on real documents will cost more.

Mini recipe

1. Split the checklist by meaning: pairs of 2 requirements, as in the paper. Other splits weren't tested. 2. Build a request for each pair: a `YOUR REQUIREMENTS` block plus a `FOR CONTEXT (DO NOT CHECK, other reviewers judge these)` block with all the other rules verbatim. 3. Forbid flip-flopping: add `Evaluate each of YOUR requirements once. Once you've given a verdict, don't return to that requirement.` The team's results depend on this line. 4. Fence off other agents' territory: add `Mark FAIL only if your own requirement is violated.` 5. Run in parallel: the entire document goes into every request. The agents don't communicate. 6. Merge the flags: any FAIL goes into the shared report along with its quote. 7. Run it on your own sample: count misses and false alarms. If there are too many alarms, keep a single model and run one prompt three times with the "any FAIL" rule. If there are too few catches, remove the "for context" block.

Examples

[BAD]: `Check the memo against six requirements and tell me if there are any contradictions: [six rules in a row] [document]` [GOOD]: `You are reviewing a credit memo for compliance with requirements. YOUR REQUIREMENTS: R1. Every mention of monthly revenue in the repayment-capacity calculation matches the figure in the "Financials" section. R2. Every mention of the approved credit limit states the same amount. FOR CONTEXT (DO NOT CHECK, other reviewers judge these): R3. Arithmetic totals involving revenue are correct. R4. Multiples follow from the limit and revenue. R5. Payment history matches the table. R6. Business tenures are possible given the owner's age. Evaluate each of YOUR requirements once. Mark FAIL only if your own requirement is violated. Answer in JSON: requirement, reasoning, verdict (PASS or FAIL), evidence (quote). DOCUMENT: {memo_text}` Requests B (R3–R4) and C (R5–R6) are built the same way: only the two blocks change. Expect more disguised errors caught, like "income is $37,000, but the calculation uses $31,700." There will be slightly more false alarms than with a single request, but noticeably fewer than with a team lacking the "for context" block.

In plain words

When you feed an LLM a wall of text and demand it check six complex rules at once, the model simply zones out. Its attention gets smeared, hidden inconsistencies slip past, and the review turns into a box-ticking exercise. But split the task into three parallel requests with two rules each, and the model sinks its teeth into the text and finds what it used to miss.

It's like making one sleepy auditor check the cash register, logistics, taxes, and health-inspection records in an hour — they'll just tick the boxes and leave. Send in three narrow specialists, though, and each one will comb their corner down to the last speck of dust. There's a catch, of course: the cash auditor will throw a fit over an invoice that the purchasing accountant in the next room already signed off on.

The method is dead simple: modular prompting without extra frills like elaborate roles and orchestrators. Instead of one overloaded request, make three independent calls with two rules each. Hidden-error detection jumps, but the price is a spike in false positives. An isolated agent can't see the other rules and slaps a FAIL on perfectly legitimate explanations from neighboring items.

This was studied on financial memos, but the logic is the same everywhere. The same trick works for code review, legal contracts, or compliance checks — any task where a missed blunder costs you a fine or a reprimand. The key is understanding the trade-off: either you save time and risk missing a landmine, or you dig through a pile of paranoid alerts.

Bottom line: forget the fairy tales about all-powerful mega-prompts; splitting really does catch hidden dirt. Use isolated checks if a missed bug is a critical screw-up for you. Just budget time up front for manually filtering the noise, because the model's paranoia will save your project but eat a couple of extra hours sorting through false alarms.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on Splitting a Review Across Agents: It Catches More Errors, but Also Raises More False Alarms arXiv:2610.27488

Sign in to apply this study New accounts get 50 free credits.