On this page
All modules
Part 1 — Foundations of Agents
- 1.01 The Architecture of Prediction
- 1.02 Foundational failures of LLMs
- 1.03 Open weights run on your own machine
- 1.04 The system prompt shapes the agent's persona
- 1.05 The block anatomy of system prompts
- 1.06 The agent loop's four surfaces
- 1.07 Diagnosing prompt failures by variable
- 1.08 An independent critic scores each draft
- 1.09 Four topologies for delegating work
- 1.10 Voice as countable register laws
Part 2 — Agent Design and Evaluation
- 2.02 Routing requests to specialists and providers
- 2.03 Storing and recalling agent memory
- 2.04 Governing a long-term memory store
- 2.05 Runtime tool discovery over MCP
- 2.06 The trust boundary around MCP tools
- 2.07 The specification-first image pipeline
- 2.08 Grading an image without priming the reviewer
- 2.09 Separating claim gathering from judgment
- 2.10 Gating claims into a sourced answer
- 2.11 The agentic coding loop verified by execution
- 2.12 The repository instruments that carry an agent's context
- 2.13 Grading agents with eval suites
- 2.14 The production ledger and the deploy gate
Part 3 — Mastering the Principles of LLMs
- 3.01 Three sources of the thought state
- 3.02 How the next token is chosen
- 3.03 Every score is a dot product
- 3.04 The weights hold more than facts
- 3.05 How attention builds the context term
- 3.06 How the memory term competes with context
- 3.07 Six ways to ask one question
- 3.08 The fixed depth of a single pass
- 3.09 How reasoning models write their working down
- 3.10 Six layers that hold a fact
- 3.11 Choosing a layer for a fact
2.10
Gating claims into a sourced answer
Sort claims through the four exits of the corroboration gate, write an answer as a short lead and one sourced fact per line, and name what citation validation in code would check.
- Time
- ~35 min
- Builds on
- orchestrator & subagents 2.01 confabulation (hallucination) 1.02 grounding gap 1.02
Objectives
- Apply the corroboration gate: bare fact, attributed claim, named rumor, or reported contradiction
- State what an empty channel supports: a finding to report, never a story about why it is empty
- Describe the output contract: a conversational lead, then one sourced fact per line
the corroboration gate decides what may be stated as fact
When the Arbiter sits down to draft, it has two reports on the desk and no tools to run. A claim lands before it in one of several states: the X report carries it and the web report confirms it; the web report attests to the claim without confirming it; the claim comes from a single handle only; or the web verification flatly contradicts the emerging social post. The drafting agent faces an immediate structural question: what may it write as a bare sentence, and what must carry a label?
The operational answer is a structure with four exits: the corroboration gate. A claim may be asserted as an unadorned fact only if it is corroborated across both channels or confirmed directly by primary documentation in the web report. Corroboration has to be counted by originating evidence: two websites republishing the text of one press release are one originating source seen twice, and an X post quoting the same release repeats it a third time. The same count keeps a source making a claim apart from evidence establishing it; the outlet that reports a figure is a source for the claim, and the release or dataset behind the figure is the evidence. Any claim falling short of that standard must retain explicit attribution, noting for example that social media posts assert a detail or that Reuters reports a development. If a claim rests on a single source, it must carry the explicit label unverified. Finally, when the web verification directly contradicts an emerging social claim, that claim is not quietly downgraded; instead, the contradiction itself is surfaced to the reader as the primary finding.
The corroboration gate: corroborated across channels or primary-sourced → fact. Attested but unconfirmed → attributed claim. Single-source → labeled unverified. Contradicted → the contradiction is the news.
Pictures get a rule of their own, because x_api_search transcribes every photo attached to a matching post and XResearcher marks any claim it read off one “via image”. The Arbiter’s instruction states the rule under the heading A PICTURE IS A CLAIMANT, NOT A WITNESS. A transcription carries the image’s own word, so a via-image claim is single-source by construction: it passes the gate only when the web report confirms it, and until then the Arbiter attributes it (“a screenshot posted by @x shows…”). A screenshot of a post or an article is evidence that someone posted the screenshot. Whether the post or the article exists is a separate claim, and the web channel has to establish it.
Two secondary constraints protect the integrity of this evaluation. The first addresses absences in the data. Consider the situation where one channel returns no results while the other is active: social chatter is intense while formal reporting remains silent, or an official record is established while social interest has waned. A reader often seeks an explanation for that silence, speculating about censorship, institutional consensus, or suppressed conflict. The corroboration gate resolves this by constraining the Arbiter to report only the empirical state of the search: when a channel returns no results, the Arbiter notes only that the record is thin on that point. An empty channel provides no evidentiary support for why information is missing, so theories regarding suppression or consensus remain unstated hypotheses.
An empty sweep is reported as an empty sweep: suppression, consensus, and controversy are all theories about an absence, and the absence supports none of them.
The second constraint governs source evaluation. Consider the situation where a claim arrives under the masthead of an established newsroom, or originates from an uncredentialed observer on a social platform. A common heuristic would trust the prominent institution and discount the independent account. Yet established publishers can introduce unsupported editorial framing, just as independent accounts can surface rigorous reporting backed by primary documentation. The corroboration gate therefore instructs the Arbiter to evaluate the text and its evidentiary trail rather than relying on brand reputation. The Arbiter assigns weight strictly to what an article or post demonstrates and documents, rather than the institutional stature of the author. Every source faces the same foundational question: what specific facts does this text demonstrate, and through what evidence? Institutional outlets and independent observers are held to identical standards, and their evidentiary rigor determines their weight.
The corroboration gate treats neutrality as an objective property enforced through structural rules, applying the same discipline that turns voice into a set of countable constraints. Neutrality is the runtime consequence of clear boundaries. The only analytical judgment the Arbiter may offer concerns mechanisms (such as selective omissions, narrative framing, or rhetorical strategies), withholding editorial rulings on which political or ideological faction is correct.
your turn: send café claims through the gate
Consider the claim that “entry is free.” The organisers’ newsletter states this directly, and the web report retrieves that newsletter as a primary document. Because a primary document confirms the detail, the Arbiter routes the claim through the first exit: it stands as an unadorned fact, accompanied by its source citation.
Now consider the claim that “the session is on 25 October.” This claim originates in a single social post. When the web report retrieves the newsletter cited by that post, the primary document states that the session is scheduled for 18 October. Because the web verification flatly contradicts the social post, the Arbiter does not discard the discrepancy; it surfaces the contradiction itself as the primary finding.
the output contract combines a lead with sourced receipts
The Arbiter formats its response in two mandatory stages defined strictly by system instructions. It begins with a conversational opening lead: two to four sentences of direct prose answering the reader’s question with the verified facts supported by the record, noting any critical rumors or sharp contradictions when relevant. This lead contains no conversational fluff, introductory greetings, or meta-commentary such as “here’s what I found.” Following the lead, the agent provides an itemized list of key facts, arranged in descending order of significance with one core fact per line. Each line concludes with its source in parentheses (specifying a domain or handle) and includes its corroboration status if it failed full verification. The output carries no section headers and no closing synthesis block; when a closing thought is essential, the Arbiter adds it as one plain sentence after the bullets. For simple factual inquiries, the agent skips the bullet list and delivers a concise one-to-three-sentence answer with inline attribution.
This structural format serves essential practical purposes. The conversational lead respects the user’s need for a direct answer before wading into granular details; leading immediately with taxonomic breakdowns burdens the reader unnecessarily. The itemized bullet points provide verification receipts: because an unsourced assertion relies entirely on the agent’s credibility, per-line citations allow the reader to inspect any individual claim independently without having to parse the entire narrative. A tool-free model can still print a real domain beside a claim that domain never made, or a handle no report carried, so a builder who needs the receipts to hold adds citation validation in application code before the answer is shown: every cited domain, handle, URL, and quoted span is matched against the sources the collectors actually retrieved, and each cited source is then checked for whether it supports the claim attributed to it. The specimen ships neither check, and because the Arbiter receives model-written reports, the match would have to run against the collectors’ tool results. The instruction also sets a length budget: a target under 1,200 characters, rising to 2,500 for a genuinely multi-threaded topic, and it forbids padding toward either figure. The ceiling acts as an honesty control, preventing the model from padding thin evidence with speculative filler.
the run: the arbiter protocol in action
Consider a recorded run of the specimen handling a realistic fact-checking scenario: evaluating a historical rumor circulating within personal networks that a reader wishes to address rigorously rather than dismiss out of hand.
The execution trace of that run adheres to these operational principles. The Arbiter consulted both information channels in sequence before generating text, passing the claims surfaced by the first channel directly to the second for verification. Every itemized bullet concludes with an explicit source citation. Notice also how the absence of evidence is reported: because no circulating post provides original documentation, the opening lead reports that missing record directly without inventing explanations. The Arbiter applies its allowed critique of mechanism by explaining the origin of the narrative: identifying a genuine 1946 expedition that was subsequently reframed. Finally, the concluding bullet demonstrates the corroboration gate in action: it names where the claim came from and labels it single-source and unverified on the same line.
adapting the pattern to a new domain
When the X channel is unavailable, XResearcher records that in its GAPS line and the Arbiter’s answer states the gap. A builder who replaces X search with a second web search keeps the core arbitration doctrine fully testable, though channel independence drops, since both collectors then sweep the same web rather than tapping distinct platforms.
A builder can adapt the architecture to other analytical domains, such as evaluating product feedback, assessing scientific preprints, or vetting industry rumors. Before you rely on it in a new domain, put three cases to it. Ask about an event that several outlets carry from one press release, and look at whether the answer states it as bare fact on the strength of the repetition. Open the page a bullet cites and check whether that page carries the claim on the line. Remove the X channel’s credential and confirm that the answer names the missing channel. Maintain the core structural boundaries throughout your implementation: collectors that gather without interpreting, an arbiter that evaluates without searching, an explicit gate that governs when facts may be stated plainly, corroboration counted by originating evidence, and per-line citations that citation validation checks in code. As you work with this pattern, notice the discipline it establishes: provide the narrative in the lead, supply receipts in the bullets, and explicitly flag anything that lacks complete corroboration.
End of module 2.10
You have reached the end of this module. Marking it finished is your own call, saved in this browser, and you can undo it at any time.
Saved in this browser only. Press again to remove.