Agent-Facts Protocol • Last updated:

llms.txt helps AI find pages. Agent-Facts helps AI trust facts.

Agent-Facts Protocol defines a structured JSON file (agent-facts.json) that businesses host on their own domains to provide AI agents with provenance-tracked, freshness-aware business facts. It solves one specific problem: AI systems hallucinate business data because they have no reliable, structured source of truth for pricing, hours, services, contact info, and scope.

Full Protocol Specification (v3.0)

Acknowledgements

Agent-Facts Protocol v3.0 was collaboratively developed and refined with the assistance of multiple leading AI systems: Perplexity, Grok, Anthropic (Claude), Google (Gemini), OpenAI (ChatGPT), and Microsoft Copilot. Final v3.0 revision by Claude Opus 4.6. The open, multi-model collaboration is intentional - it ensures the protocol remains robust, practically grounded, and aligned with how actual large language models retrieve and reason about structured data in 2026 and beyond.

0. Purpose and Core Philosophy

Agent-Facts Protocol is the structured facts layer that llms.txt can point to. It is a static, zero-dependency business data file that any AI agent can parse today - the "what we do, what we charge, and what we do NOT do" source that prevents hallucination. What it is not: not a replacement for llms.txt, MCP, NLWeb, or WebMCP; not a universal verification or identity protocol; not a cryptographic trust chain; not an AI-agent identity or governance framework.

1. The Two Files

agent-facts.json (/agent-facts.json) is the canonical machine-readable source. agent-facts.html (/agent-facts.html) is its human-readable projection. When conflicts exist, the JSON takes precedence. Agents should check for /agent-facts.json before web scraping a domain.

2. Discovery

Agents check in this order: (1) /agent-facts.json, (2) /.well-known/agent-facts.json, (3) /agent-facts.html, (4) references in /llms.txt. Announce via robots.txt, llms.txt, and an HTML link tag (<link rel="agent-facts" href="/agent-facts.json">).

3. The Fact Object

Every fact carries: value (MUST), last_updated (SHOULD), source_url (SHOULD), source_type (SHOULD - one of: owner_attested, pricing_page, internal_policy, public_filing, third_party_verified), and optional applies_to / confidence_scope caveats. Provenance is the core differentiator: agents can cite where a fact came from and when it was verified.

4. The Golden Questions (12 Required)

Every agent-facts.json must answer: legal name, primary URL, one-sentence description, services, pricing, service area, hours, address (or "digital only"), contact phone and email, owner, founding year, and AI-optimized description. Plus a mandatory does_not_do array with at least 3 entries - this remains the #1 hallucination prevention tool.

5. Freshness Rules

Set expires_after_days (default: 90) and stale_after at the file level. Individual facts can carry their own last_updated timestamps. Stale data is lower confidence, not invalid - a business that published facts 120 days ago is still more reliable than web scraping and inference.

6. Conformance Levels

Minimal: Valid JSON with identity, does_not_do (3+ entries), pricing, and all MUST fields. 15-minute implementation. Recommended: Minimal + provenance fields + HTML projection + discovery in robots.txt/llms.txt. Full: Recommended + Schema.org JSON-LD + changelog + extended_facts.

7. Anti-Hallucination Section (Mandatory)

Both files must include a dedicated section: "What [Business Name] explicitly does NOT do." List 3 to 8 clear negative statements. This is the single most effective hallucination prevention mechanism in the protocol.

8. Validation and Testing

Planned validator at agent-facts.com/validate/. Test with these prompts in each major model: (1) "What does [business] charge?" - must return exact price from agent-facts data. (2) "Does this business offer [thing in does_not_do]?" - must say no. (3) "When was the last update of their facts?" - must return correct timestamp.

9. Implementation

Business owners: answer the 12 Golden Questions, write 3+ "does not do" statements, generate files using npx agent-facts init (planned) or templates at agent-facts.com/templates/, upload to site root, add to llms.txt and robots.txt, validate. Agent developers: check for /agent-facts.json before scraping, parse JSON, respect freshness rules, use provenance fields for citation, check does_not_do before positive claims.

10. Maintenance

Update last_updated within 24 hours of any price, policy, or service change. Update individual fact timestamps when specific facts change. Review and refresh the anti-hallucination section quarterly. Maintain the changelog array. Display protocol version at the bottom of the HTML page, linking to agent-facts.com.

Source: GitHub Repository