How to Fact-Check AI Research With Codex and Exa

How to Fact-Check AI Research With Codex and Exa

Aident AI

A turbulent translucent color field passes through a clear faceted lens and resolves into two grounded forms.

How to Fact-Check AI Research With Codex and Exa

To fact-check AI research, split the answer into specific claims, search outside the answer for independent evidence, open the strongest sources, and record a verdict for every material claim. A citation is not proof merely because its URL exists. Verify that the page resolves, the title and author match, the source actually supports the nearby claim, and stronger primary evidence does not contradict it.

Codex can run that process as a bounded research audit. Exa can find current sources and return targeted highlights, while a claim ledger keeps the model from turning a plausible snippet into an unsupported conclusion.

If your starting point is a company-research question rather than an AI-written report, use the separate private-company research workflow. If you need to measure which sources AI search engines expose, use the AI search citation audit. This guide owns the narrower job of verifying the claims and citations inside one research artifact.

The Short Answer

Use this evidence ladder:

State

What you verified

What you may write

Unchecked

A model produced a claim or citation

Treat it as a lead only

Located

A matching URL or publication record exists

The source exists

Supported

The opened source directly supports the claim

The claim is supported by this source

Corroborated

An independent, credible source supports the same material point

The claim has independent support

Contradicted

A stronger or more current source conflicts with it

The claim is disputed or outdated

Unverifiable

The source is missing, blocked, ambiguous, or unrelated

The claim could not be verified

Do not collapse those states into one confidence score. A real paper with the wrong author is different from a fabricated paper. A source that supports a weaker statement is different from one that contradicts the statement. Both differences matter during review.

Start With a Claim Ledger

Do not search the entire answer as one paragraph. Break it into atomic, searchable claims first. The University of Maryland Libraries calls this step fractionation, then recommends lateral reading across several credible sources outside the AI tool.

A useful ledger stores one row per material claim:

{
  "claimId": "claim-07",
  "claim": "The provider introduced the policy in March 2026.",
  "importance": "material",
  "providedCitation": "https://example.com/",
  "sourceExists": null,
  "sourceSupportsClaim": null,
  "independentSupport": [],
  "contradictions": [],
  "verdict": "unchecked",
  "reviewerNote": null
}

Keep material numbers, dates, named people, quotations, causal claims, safety claims, legal claims, and product capabilities separate. You can group low-risk background statements, but never hide a consequential claim inside a broad paragraph-level verdict.

Search Outside the Generated Answer

For each material claim, write a neutral search query that does not assume the claim is true. Search the quoted title when verifying a citation, then search the underlying fact independently.

For example, verify these as separate questions:

  1. Does the cited report exist with the stated title, author, publisher, and date?

  2. Where in the report does the claimed number appear?

  3. Does the report define the number the same way the AI answer does?

  4. Does a primary or independent source support the same result?

  5. Is there newer evidence that changes the conclusion?

Boston University's SIFT verification guide recommends investigating the source, finding better coverage, and tracing claims to original evidence. Northwestern University likewise warns that a generated citation can combine a real title with the wrong journal, author, or date, and that even a real cited source may not support the answer.

Prefer sources in this order when the claim allows it:

  1. original documents, datasets, filings, specifications, or official records;

  2. peer-reviewed research or named institutional analysis;

  3. independent reporting that links to its evidence; and

  4. secondary explainers with clear authorship and sourcing.

Community posts and social discussions can reveal vocabulary, examples, or disputed points. They do not establish a fact by popularity. Recent Reddit discussions about "fake citations" and "hallucinated citations" show that readers recognize the failure mode, but their scores and comments are not evidence that a specific citation is false.

Use Exa for Bounded Source Discovery

Install or update Aident Loadout from the canonical setup guide:

Follow https://aident.ai/SETUP.md

Use the installed public CLI to confirm account and connection state:

aident account auth status
aident vault vault --action status

Search the live staging catalog by job, then inspect the exact Action returned by discovery:

aident capabilities search \
  --query "find current sources and targeted evidence for fact checking" \
  --types '["action"]' \
  --targetEnv staging

aident capabilities get \
  --name "composio:exa_tools:exa_search" \
  --parts '["description","inputSchema","outputSchema","examples"]'

On August 25, 2026, the current Exa search Action required query. It could also constrain result count, search type, domains, publication dates, and per-result content. Its nested contents.highlights option returned query-relevant excerpts with a character limit. The exact Action preflighted at 0.7 Aident credits and executed successfully in the live research check. Treat that as a dated contract observation and inspect it again before every run.

Preflight the exact search before execution:

aident capabilities preflight \
  --name "composio:exa_tools:exa_search" \
  --input '{
    "query":"official evidence for the exact claim under review",
    "type":"fast",
    "numResults":6,
    "contents":{
      "highlights":{
        "query":"passage that directly supports or contradicts the claim",
        "maxCharacters":1200
      },
      "maxAgeHours":24
    }
  }'

Stop if the input is invalid, the connection is unavailable, the quote is unavailable or above your approved ceiling, or the claim contains private data that should not leave the approved boundary. Preflight validates and prices the request; it does not prove the source or execute the search.

After review, run the same input with aident capabilities execute. Preserve each returned URL, title, publication date when available, and highlight. Then open the source. Exa's official contents guide describes highlights as targeted excerpts suited to factual lookup, but a highlight is still an extraction. It can omit qualifiers, tables, definitions, or nearby contradictions.

Verify the Page, Not Just the Snippet

For every candidate source:

  1. Fetch the URL and follow normal redirects.

  2. Record the final URL, HTTP status, and capture time.

  3. Match the title, author or organization, publication date, and document version.

  4. Find the exact passage, table, or record behind the claim.

  5. Read enough surrounding context to retain definitions, scope, and caveats.

  6. Store a short evidence note in your own words and a precise source pointer.

  7. Search independently for contradiction or a more authoritative source.

Do not let Codex silently repair a broken citation by substituting a different page. Record the original citation as wrong or unverifiable, then add the replacement source as separate evidence. This preserves the audit trail.

For PDFs, datasets, or dynamic pages, record the stable document identifier, version, page or table, and access method. If access is blocked, do not infer support from the search result title. Mark the source unverified and continue laterally.

Separate Source Quality From Claim Support

A reputable domain does not guarantee that one page supports one claim. Score two different questions:

  • Source quality: Is the publisher, author, method, date, and document stable enough for this use?

  • Claim support: Does this exact source directly establish the exact statement as written?

A primary source may be outdated. A high-quality review may describe a population unlike yours. A current vendor page may document its own product correctly while remaining weak evidence for a market-wide comparison. Keep those limitations in the verdict note instead of averaging them away.

Require a Contradiction Pass

Search once for support and once for disconfirmation. Useful contradiction queries include:

  • the claim plus correction, retraction, limitations, or criticism;

  • the exact number plus the original dataset or regulator;

  • the named feature plus the current official documentation;

  • the study title plus erratum or retracted; and

  • the causal claim rewritten as a neutral association question.

Also ask which relevant perspective is missing. The University of Maryland's beyond fact-checking guide recommends examining assumptions and seeking sources that represent absent perspectives. This is especially important when an AI answer presents one policy, benchmark, or customer segment as universal.

Give Every Claim a Reviewable Verdict

End with a table that a human can challenge:

Claim ID

Verdict

Best evidence

Contradiction

Required edit

claim-01

Supported

Primary document, section 4

None found in bounded search

Keep with citation

claim-02

Partially supported

Source supports direction, not the stated number

Newer dataset uses another definition

Narrow and qualify

claim-03

Unverifiable

Provided URL returns 404

No matching publication record

Remove

claim-04

Contradicted

Current official documentation

Generated answer cites an old help page

Replace with current behavior

Report the search boundary beside the table: date, queries, domains, result limits, Action version or contract date, and unresolved access failures. "No contradiction found" means none appeared within that bounded process. It does not mean the claim is universally true.

A Reusable Prompt for Codex

Follow https://aident.ai/SETUP.md

Fact-check the attached AI-generated research as a read-only evidence audit.
Use the installed public aident CLI. Confirm account and Vault status, search
the staging catalog by job, inspect the exact current Exa Action schema, and
preflight every bounded search before execution. Stop if a quote is unavailable
or above 1 credit, a connection is missing, or the input contains private data.

First split the research into atomic material claims. Preserve every provided
citation exactly. For each claim, verify citation existence and metadata, search
independently for primary support, open the strongest sources, inspect context,
and run a contradiction query. Treat snippets and highlights as leads, not proof.
Do not replace a broken citation silently.

Return a claim ledger with located, supported, corroborated, contradicted, and
unverifiable states. Cite the final URL and precise evidence location for every
verdict. State the search date, query, result limit, access failures, and missing
perspectives. Do not edit, publish, email, or upload the original research

The success condition is not a polished rewrite. It is a reviewable ledger in which every material claim has evidence, a limitation, or an explicit unresolved state.

Failure Matrix

Failure

What it means

Next action

Discovery returns another Action

The live catalog changed

Inspect the new contract and restart preflight

Quote is unavailable or too high

Spend is not approved

Narrow the request or request explicit approval

Search finds only copies of the AI answer

Evidence is not independent

Search for the original record, data, or named authority

Citation exists but metadata differs

The generated reference is unreliable

Record the mismatch and verify the intended source separately

Highlight appears supportive

Context has not been checked

Open the page and inspect the complete passage

Source is blocked or missing

Support cannot be verified

Mark unverifiable; do not infer from the title

Credible sources disagree

The claim is disputed or scope-dependent

Preserve both and narrow the conclusion

Personal or confidential data appears

The research boundary is unsafe

Stop and remove or approve the sensitive input before searching

Run One Evidence Audit

Follow https://aident.ai/SETUP.md

Set up Aident Loadout and fact-check one AI research artifact

Sources

Refresh this guide when the Exa Action contract changes, Aident Loadout changes capability discovery or preflight, or the fact-checking ledger gains a materially different verdict state.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 27,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.