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.
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.
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.
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.
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">).
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.
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.
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.
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.
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.
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.
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.
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