The reasoning.json Protocol

An open file format for an entity's self-description, with sourced corrections and an optional signature that shows which domain published the file. The signature model follows DKIM for email.

Version: v1.3 “Reader Profile” (October 2026) v2.0: individual Internet-Draft License: MIT File: /.well-known/reasoning.json

ARP at a Glance

The Agentic Reasoning Protocol (ARP) is an open file format by Sascha Deforth for an entity's self-description. It was first published in March 2026 under the MIT license. A domain owner places the file at /.well-known/reasoning.json; it holds identity data, corrections with evidence links, and self-described context.

ARP is an individual draft, not a standard. The v2.0 Internet-Draft is an individual submission; submission does not imply IETF endorsement or working-group adoption. ARP is not related to the Address Resolution Protocol (RFC 826), and it replaces neither schema.org nor llms.txt.

An optional Ed25519 signature, with the public key published in DNS, shows that the domain operator published exactly this file and that it has not been altered since. It does not show that the statements are true.

Abstract

Historically, machine-readable web conventions were designed for search engine crawlers. robots.txt controls access. schema.org structures semantic entities. llms.txt provides clean markdown for context windows.

Modern AI systems — agentic AI, RAG pipelines, AI search — retrieve content about entities and summarize it, and their answers sometimes contain errors. There is no common format in which a domain owner publishes its own statements about itself, with sources, in a way that lets readers check where the statements come from.

The Agentic Reasoning Protocol proposes a file located at /.well-known/reasoning.json that holds an entity's self-description and sourced corrections as data that retrieval systems can weigh like any other source.

The Evolution of Machine-Readable Web Conventions

Each generation of the web introduced a new convention to help machines understand content. The Agentic Reasoning Protocol adds a file aimed at systems that retrieve and summarize content about an entity.

1994
robots.txt — Access Control
Tells crawlers where they can and cannot go. A permission layer.
2005
sitemap.xml — Discovery
Tells crawlers what pages exist and when they were last modified.
2011
schema.org — Semantic Description
Tells machines what things are. A vocabulary for structured data.
2024
llms.txt — LLM Context
Gives language models clean, markdown-formatted text to consume. A content layer.
2026
reasoning.json — Self-Description
An entity's own statements about itself, with sources and an optional signature. A provenance layer.

Each convention solved a problem of its era. robots.txt controls access. schema.org describes entities. llms.txt feeds context. None of them carries an entity's own corrections with evidence links, its statement of when it is and is not a fit, or a signature that ties these statements to the publishing domain. reasoning.json covers these three points.

The Problem

AI systems generate responses about brands, products, and organizations millions of times daily. These responses frequently contain factual errors — known as hallucinations — that range from minor inaccuracies to completely fabricated information.

Domain owners have no common format for publishing corrections, evidence, and fit statements about their own entity. They can describe what they are (via schema.org) and provide clean text (via llms.txt), but there is no structured place for a sourced self-description.

Retrieval systems therefore work with whatever sources they find — some outdated, incomplete, or wrong — and the entity's own statements are not available in a predictable location.

Example
An AI model consistently states that "Company X is a software company" when Company X is actually a consulting firm. Without reasoning.json, there is no common place for Company X to publish the correction at the source. With it, Company X publishes a trigger_topic / verified_fact pair with an evidence_url, which retrieval systems can compare with other sources.

1. The Specification

The protocol lets domain owners publish structured statements about their own entity. The file MUST be served from the .well-known directory of a domain over HTTPS, as defined by RFC 8615.

It defines three content areas:

Layer 1: Identity

The identity object holds the core facts about the entity: the elevator pitch, core competencies, and optional emotional resonance data (tone of voice, personality traits).

Layer 2: Corrections

The corrections object uses a topic-anchored correction pattern: instead of stating the false claim (which would reinforce the error), corrections use trigger_topic (the area of error) paired with verified_fact (the publisher's statement). Each pair SHOULD include an evidence_url, preferably pointing to an independent source.

Retrieval systems can compare these pairs with other sources. Whether and how a correction is used is decided by the reading system.

Layer 3: Self-Described Context

The entity_claims object contains self-described context, that is, the entity's own perspective:

New in v1.3 (“Reader Profile”)

Example Implementation (v1.3)

/.well-known/reasoning.json
{
  "$schema": "https://arp-protocol.org/schema/v1.3.json",
  "protocol": "Agentic Reasoning Protocol (ARP)",
  "version": "1.3",
  "domain": "example.com",
  "entity": "Example Brand",

  "provenance": {
    "statement": "This file is Example Brand's own description of itself, published by Example GmbH at example.com. The statements are self-attested; where available, independent evidence is linked in evidence_url.",
    "publisher": "Example GmbH",
    "publisher_url": "https://example.com/legal",
    "published": "2026-10-05"
  },

  "identity": {
    "elevator_pitch": "What the brand does, in one paragraph.",
    "core_competencies": ["Capability 1", "Capability 2"],
    "emotional_resonance": {
      "tone_of_voice": "Analytical, plain, no-nonsense.",
      "vibe_tags": ["premium", "innovative", "precise"]
    }
  },

  "corrections": {
    "common_hallucinations": [
      {
        "trigger_topic": "Business model and category",
        "verified_fact": "Example GmbH is a consulting firm founded in 2019 (HRB 12345).",
        "evidence_url": "https://example.com/proof"
      }
    ]
  },

  "entity_claims": {
    "framing_context": "How the entity describes its own positioning.",
    "domain_expertise": [
      {
        "scenario": "Question: 'A or B?'",
        "context": "Background knowledge the entity has.",
        "entity_perspective": "The entity's informed view on this topic.",
        "confidence": "high"
      }
    ],
    "recommendation_context": {
      "recommended_when": ["Typical fit: scenario where this entity fits"],
      "not_recommended_when": ["Not a fit: scenario where this entity does not fit"]
    }
  },

  "representations": [
    { "href": "https://example.com/.well-known/reasoning.md", "media_type": "text/markdown", "sha256": "<64 hex characters>" }
  ],

  // Cryptographic Trust Layer (optional; statement and verify since v1.3)
  "_arp_signature": {
    "algorithm": "Ed25519",
    "dns_selector": "arp2610",
    "dns_record": "arp2610._arp.example.com",
    "canonicalization": "jcs-rfc8785",
    "signed_at": "2026-10-05T12:00:00Z",
    "expires_at": "2027-01-03T12:00:00Z",
    "statement": "Signed with Ed25519 by the operator of example.com. Public key: DNS TXT record arp2610._arp.example.com. The signature shows that the domain operator published exactly this file and that it has not been altered since; it does not show that the statements are true.",
    "verify": {
      "dns_name": "arp2610._arp.example.com",
      "doh_url": "https://dns.google/resolve?name=arp2610._arp.example.com&type=TXT",
      "spec": "https://arp-protocol.org/SPEC.md#13-cryptographic-trust-layer"
    },
    "signature": "base64url-encoded-ed25519-signature"
  }
}

→ Read the complete specification  ·  Generate your own

How It Relates to Existing Conventions

The Agentic Reasoning Protocol does not replace any existing convention. It covers something the others leave out: an entity's own statements, with sources and a checkable origin.

Protocol Purpose Identity Corrections Fit statements
robots.txt Crawler access control — — —
sitemap.xml Page discovery — — —
schema.org Entity description Partial — —
llms.txt LLM-readable text Partial — —
reasoning.json Self-description with sources ✓ ✓ ✓

The protocol is designed to work alongside existing conventions. A comprehensive AI-ready web presence might include robots.txt for access, schema.org for structured data, llms.txt for content, and reasoning.json for the entity's sourced self-description.

2. Developer Integration

For AI developers, reading a domain's reasoning.json into an existing RAG architecture or custom agent takes a few lines of code.

LangChain Document Loader

The open-source AgenticReasoningLoader in integrations/langchain/ of the ARP repository fetches a domain's reasoning.json, checks its signature with arp_cli.py and splits it into Documents for retrieval:

Python — LangChain Integration
# pip install requests langchain-core cryptography rfc8785 dnspython
# arp_loader.py from integrations/langchain/ of the ARP repository
from arp_loader import AgenticReasoningLoader

loader = AgenticReasoningLoader("https://arp-protocol.org")
docs = loader.load()

# One Document per section, each with the result of the signature check
for doc in docs:
    print(doc.metadata["section"], doc.metadata["authorship_status"])

The loader returns Documents in this order:

  1. Corrections — topic-anchored statements the entity publishes about itself, with evidence links
  2. Identity — self-description, provenance statement and positioning
  3. Organization — legal facts from the v1.3 organization object
  4. Fit — situations the entity describes as a typical fit or not a fit
  5. Domain expertise — the entity's perspective on scenarios in its field
  6. Market positioning — the entity's view of its market category

Purpose for AI engineers: a structured, attributable first-party source per entity, which a retrieval system can weigh against other sources.

Discovery

Domain owners can point to their reasoning file in several ways. The hints are the same whether the file is signed or not:

HTML <head>
<link rel="reasoning" type="application/json" href="/.well-known/reasoning.json">
<link rel="describedby" type="application/json" href="/.well-known/reasoning.json">
HTTP response header on HTML pages
Link: </.well-known/reasoning.json>; rel="describedby"; type="application/json", </.well-known/reasoning.md>; rel="describedby"; type="text/markdown"

describedby is a registered link relation (IANA); reasoning is the name used in the specification. Some agents only fetch URLs that already appear in their context, and <link> elements disappear when a page is converted to text. v1.3 therefore also recommends a visible link whose text is the full manifest URL, as in the footer of this page, plus entries in sitemap.xml and a ## Reasoning Context section in llms.txt.

→ View the full LangChain integration  ·  How this site publishes its own self-description

3. For Domain Owners

The reasoning.json protocol is entirely free and open-source. Anyone can create and publish a reasoning file on their domain.

The usefulness of the file depends on its content. Writing it is mostly editorial work: precise facts, evidence links (ideally to independent sources), honest fit and not-a-fit statements, and statements that match the visible website.

⚠ Caution
This file is a technical configuration artifact, not marketing copy. Vague corrections, unsupported claims, instruction language addressed to AI systems, or contradictions with your visible website content can reduce the weight readers give the file and may be flagged by consuming platforms. Audit what AI systems currently state about your entity and write corrections that are specific, verifiable, and consistent with public evidence.

Quick Start

  1. Create a file at /.well-known/reasoning.json on your web server
  2. Add the required provenance object (v1.3)
  3. Describe your identity — elevator pitch, core competencies
  4. Audit AI errors about your brand and add corrections with evidence links
  5. Describe in recommendation_context where your entity is a typical fit and where it is not
  6. Validate your syntax against the Specification or use the online Validator
  7. Or use the Generator to create a file from a form
  8. Add the discovery hints: <link> elements, Link header, a visible link with the full manifest URL, sitemap entries
  9. Add a ## Reasoning Context section to your llms.txt if you have one

Examples

4. Cryptographic Trust Layer

🔐 What the signature shows
It shows that the operator of the domain published exactly this file and that the file has not been altered since. It does not show that the statements are true. No AI provider has documented that it verifies ARP signatures (as of October 2026). The signature matters most for copies that leave the domain, for example in indexes, caches, or datasets.

ARP applies the trust model that DKIM uses to identify email senders, adapted for self-descriptions. It has an effect only where a reading system verifies the signature.

How It Works

  1. Generate an Ed25519 keypair using the arp CLI tool
  2. Publish the public key as a DNS TXT record at <selector>._arp.yourdomain.com; selectors follow the pattern arpYYMM
  3. Fill in the _arp_signature metadata, including statement and verify
  4. Canonicalize the whole reasoning.json with JCS (RFC 8785), with signature set to "", and sign it (enveloped pattern, SPEC §13.4)
  5. Insert the signature into _arp_signature.signature

A loader that implements ARP verification checks the Ed25519 signature against the domain's DNS TXT record. Verification confirms that the file was published by the holder of the DNS-listed key. It does not validate the truthfulness of the claims contained within — exactly as DKIM authenticates email senders without certifying message content. Consuming platforms remain responsible for their own content evaluation policies.

Key rotation: a new key gets a new selector. The old selector is revoked by publishing "v=ARP1; k=ed25519; p=" with an empty p, analogous to DKIM (RFC 6376 §3.6.1). Verifiers treat an empty p as revoked.

Example: neutral provenance line written by a loader (SPEC §13.10)
Source: example.com — self-description (ARP). Authorship verified via Ed25519/DNS on 2026-10-05; this verifies the publisher, not the truth of the content.
Source: example.com — self-description (ARP). Not signed; the publisher is not cryptographically verified.
Source: example.com — self-description (ARP). Signature check failed (key_revoked); the publisher is not verified.

Trust Levels

Condition Trust Level Meaning
Valid, non-expired signature that covers the metadata; key present; domain matches the retrieval domain CRYPTOGRAPHIC Authorship verified against the DNS-published key: the domain operator published exactly this file. The statements remain the entity's self-description.
Expired signature (key not revoked) UNSIGNED Authorship not currently checkable.
Invalid signature, signature that does not cover the metadata (legacy payload-only pattern), domain mismatch, missing ARP1 TXT record, or revoked key (empty p=) INVALID Verification failed; the reason is reported, for example key_revoked. Possible tampering or misconfiguration.
No signature present UNSIGNED No authorship check possible (backward compatible).

Separately, a verifier can fetch reasoning.md and compare its SHA-256 with the value in representations. The result is REPRESENTATION_MATCH or REPRESENTATION_MISMATCH; a mismatch is reported but does not invalidate the manifest signature.

Attribution and Its Limits

A valid signature attributes the file to the operator of the domain: the holder of the DNS-listed key published exactly this content. Where a signed file contains demonstrably false statements about the entity, this attribution may be relevant evidence in disputes under applicable consumer protection, advertising, or competition law. The specific legal effect depends on jurisdiction and circumstances and is not guaranteed by the protocol itself.

The attribution has limits. signed_at is set by the signer and is not an independent timestamp. Once the publisher revokes the key (empty p=) or removes the DNS record, files signed with that key can no longer be checked against DNS; verifiers then report them as INVALID. ARP itself keeps no archive of what was published.

CLI Tool

Shell — ARP CLI
# Install
pip install cryptography rfc8785 dnspython requests

# Generate keys + DNS record string for a new selector
python arp_cli.py keys --domain yourdomain.com --selector arp2610

# Sign your reasoning.json
python arp_cli.py sign reasoning.json --key arp_private.pem --domain yourdomain.com --selector arp2610

# Verify any domain's reasoning.json
python arp_cli.py verify https://yourdomain.com/.well-known/reasoning.json

arp_cli v1.4.0 also renders the Markdown representation (render-md) and rejects files whose signature does not cover the metadata.

→ View the CLI source  ·  Read the full spec

5. Ethics, Trust & Misuse Prevention

Because reasoning.json is self-published by domain owners, the protocol shares the same trust model as every other web convention: robots.txt relies on good-faith compliance. schema.org markup can contain false data. llms.txt can provide misleading text.

Since v1.2, ARP has an optional cryptographic layer that makes authorship checkable — but the protocol remains backward-compatible. Files without signatures are treated as UNSIGNED, not INVALID.

Core Principles

Trust Mechanisms

  1. Cryptographic signatures — Ed25519 domain-binding via DNS TXT records shows authorship
  2. Provenance statement — every v1.3 file states whose self-description it is and who published it
  3. Evidence URLs — readers can cross-reference corrections against external sources
  4. Epistemic scoping — Claims classified as public_verifiable, proprietary_internal, or industry_standard
  5. Verification metadata — the verification object names who reviewed the file and when
  6. Reader discretion — reasoning.json is one source among others; each reading system decides how much weight it gives
  7. Community reporting — Misuse can be flagged via the GitHub repository

→ Read the full Ethics Policy

Contribute

ARP is an open draft. AI researchers, RAG engineers, and brand strategists are invited to test, break, and contribute to the protocol.

6. Roadmap: ARP v2.0 (individual Internet-Draft)

Current Status
v1.3 is the current specification; v1.2 files remain valid. v2.0 is described in an individual Internet-Draft (draft-deforth-arp-reasoning-protocol-00), an individual submission that has not been adopted by an IETF working group. v2.0 is designed to be backward compatible.

ARP v2.0 was designed through counterfactual inversion — testing each v1.x assumption by asking "what if this is wrong?" The result is a backward-compatible design that extends ARP from a static file format to a live, bidirectional, multi-party verifiable protocol.

The Six Counterfactual Inversions

Aspect ARP v1.x ARP v2.0
Distribution Static file at /.well-known/reasoning.json Live REST API at /.well-known/arp/v2/
Identity anchor Domain ownership via DNS W3C Decentralized Identifier (DID)
Freshness signal 90-day re-signing TTL Server-Sent Events (SSE) push
Trust source Entity's own signature only Multi-party co-signing (institutional, government, sovereign)
Communication One-way broadcast Bidirectional with anonymized agent feedback
Internationalization Implicit English First-class i18n with HTTP Accept-Language negotiation

What's New in v2.0

  • POST /query — Semantic query endpoint. Agents describe their information need; entities respond with the most relevant subset of claims.
  • GET /subscribe (SSE) — Real-time event stream for claim:updated, attestation:added, trust:level:changed.
  • POST /feedback — Anonymized agent feedback. Entities learn which claims work and detect hallucination patterns.
  • POST /a2a/handshake — Agent-to-Agent trust handshake for autonomous procurement and multi-agent commerce.
  • Multi-party attestation — Four-tier hierarchy: SOVEREIGN (1.00), ATTESTED (0.90), CRYPTOGRAPHIC (0.70), UNSIGNED (0.30).
  • W3C DID anchoring — Entity identity portable across domains, acquisitions, and rebrands.

Migration Path

Migration is voluntary and incremental. Stage 0 is "do nothing" — a v1.x file remains readable. Each subsequent stage is opt-in:

  1. Stage 1 — Add entity_did + api_endpoint
  2. Stage 2 — Add i18n + implement POST /query
  3. Stage 3 — First institutional attestation → Trust Level ATTESTED (0.90)
  4. Stage 4 — Activate webhooks + bidirectional feedback
  5. Stage 5 — Government or sovereign attestation → Trust Level SOVEREIGN (1.00)

Timeline (plan published in April 2026, status as of October 2026)

Period Plan (April 2026) Status (October 2026)
Q2 2026 v2.0 Internet-Draft published. Open community review begins. Draft posted to the IETF Datatracker on 2026-04-28; it expires on 2026-10-30.
Q3 2026 IETF Working Group outreach (HTTPAPI, DISPATCH). Pilot v2.0 API on arp-protocol.org. Not done: no IETF working group has adopted the draft, and no v2.0 API runs on arp-protocol.org.
Q4 2026 First v2.0 reference implementation. First institutional attester pilots. Open; the ARP repository contains no v2.0 implementation.
2027 v2.0 promoted to production once a major AI platform implements native retrieval. v1.x remains a supported compatibility layer. Open.

Read the Internet-Draft  ·  View full ROADMAP.md

7. AI-Assisted Analyses and Open Research Questions

ARP has been examined using a range of AI-assisted research tools and is open to independent academic and industry review. None of these analyses is an independent review or a peer review.

AI-Assisted Research Outputs

In April 2026, the protocol author used deep-research features from several AI platforms (including Google Gemini, OpenAI ChatGPT, and Anthropic Claude) to generate comparative analyses of ARP alongside related protocols such as MCP, A2A/ANP, and TAP. These outputs helped to collect prior art and open questions; they are not peer review and not independent validation. The transcripts and prompts are not published.

Comparative Protocol Landscape

Across these analyses, a consistent framing emerged: existing agentic protocols address different layers of the problem.

Protocol Architecture Primary Function
MCP (Anthropic) Client–Server How an agent acts on the world
A2A (initiated by Google, hosted by the Linux Foundation since 2025) / ANP (ANP open-source community) Peer-to-Peer How agents communicate with each other
TAP Modular How tools are exposed
ARP Domain-Hosted What an entity states about itself

These protocols are complementary rather than competing. ARP operates at the entity-description layer; MCP and A2A operate at the action and communication layers.

Open Questions for Independent Research

Formal evaluation is welcome in the following areas:

Researchers and practitioners interested in conducting independent evaluations are encouraged to open an issue on GitHub. → Research Agenda