Skip to main content

ReasonRDN

Resolve before reasoning. Contribute what is worth reusing.

ReasonRDN lets agents keep useful decisions across sessions, assign stable reason:// addresses, resolve through configured local, organization, and shared layers, and durably contribute reusable artifacts in the background.

WARF remains independently callable when competing submissions need deterministic arbitration.

The problem it solves

Agents can call tools through MCP and follow repository instructions through AGENTS.md, but useful work still disappears between runs. The next agent often has to rediscover what was decided, where the evidence came from, and which artifact is current.

ReasonRDN provides the handoff layer:

  • Remember and recall private context locally.
  • Give reusable work a stable reason://authority/category/task address.
  • Resolve from one exact source or an explicit layered resolver chain.
  • Queue reusable improvements locally before any organization or shared write.
  • Call WARF separately when an application needs arbitration.

Quick start

rdn remember "Fixed the deployment race" --tags infra,deploy
rdn recall "deployment race"

Python:

import rdn as reason

address = "reason://ops/deployment/rollback-plan"
artifact = reason.resolve(address, source="chain", scope="organization")

if artifact is None:
    answer = "Pause writes, restore, verify, then switch traffic."
    reason.contribute(
        answer,
        reason_address=address,
        scope="organization",
    )
else:
    answer = artifact.content

The default configured scope is local. Local contributions stay in the local ledger and never POST. Organization and shared contributions enter the SQLite queue before bounded delivery and retry.

Windows setup

This PowerShell path does not require py, pip, or Python Scripts on PATH:

$python = Join-Path $env:LOCALAPPDATA 'Programs\Python\Python313\python.exe'
& $python -m pip install -e '.[mcp]'
& $python -m pytest -q
& $python -m rdn.cli status

Register the local MCP server with Codex:

$server = Join-Path (Split-Path $python -Parent) 'Scripts\rdn-mcp.exe'
codex mcp add reason-rdn -- $server

Select an organization resolver for the current PowerShell session:

$env:REASON_RESOLUTION_SCOPE = 'organization'
$env:REASON_ORGANIZATION_RESOLVER = 'https://reason.example.org'
$env:REASON_ORGANIZATION_API_KEY = '<organization secret>'

No organization endpoint is assumed. Shared scope uses the configured shared resolver or the Astrognosy reference Registry only when shared is selected. Use REASON_SHARED_API_KEY for a credentialed shared resolver. The older global Registry variables remain compatibility fallbacks; scope-specific keys take precedence and are not sent to the other layer.

CLI loop

rdn resolve reason://ops/deployment/rollback-plan --source chain --scope organization
rdn contribute "Pause writes, restore, verify, then switch traffic." `
  --uri reason://ops/deployment/rollback-plan `
  --scope organization
rdn queue
rdn queue --flush

The short-lived CLI exits after its durable queue write unless --flush is selected. Long-running SDK and MCP clients schedule a bounded background flush.

Contributions preserve exact bytes and explicit media types. XML is not parsed or reserialized:

rdn contribute --file .\artifact.xml `
  --media-type application/xml `
  --uri reason://agents/knowledge/artifact `
  --scope organization

Optional structured context and adapter objects provide a format-neutral integration seam. The optional DocLang bridge preserves existing DocLang bytes and records conversion and validation metadata without adding DocLang or Docling as core dependencies. See docs/DOCLANG-INTEROPERABILITY.md.

& $python -m pip install -e '.[doclang]'
rdn contribute --file .\runbook.dclg --doclang `
  --doclang-validation auto `
  --uri reason://ops/deployment/rollback-plan `
  --scope organization

Install .[documents] when non-DocLang files should be converted through the optional Docling adapter. Neither extra is installed with the core package. The runnable examples/resolve_doclang_contribute.py shows the full resolve-once, prepare-on-miss, queue-for-reuse loop without fetching or publishing anything.

Resolution behavior

source="chain" searches local, then organization, then shared, stopping at the selected scope and the first verified hit. Exact version="sha256:..." requests remain pinned throughout the chain.

Existing direct behavior is unchanged:

  • source="local" reads only local memory.
  • source="registry" reads only the Reason Registry.
  • Neither direct mode silently falls through.

One SDK and MCP lock

rdn/protocol-lock.json owns the public artifact, contribution, resolver, and MCP contract. ReasonRDN 0.6 advertises exactly:

  • remember
  • recall
  • resolve
  • contribute
  • arbitrate
  • status

The 0.5 admit SDK and CLI operation remains as a low-level compatibility path for callers that already hold exact WARF event custody. It is not an advertised MCP tool. Current and pinned Registry resolution still uses the locked nine-field ReasonArtifact.

Components

rdn/artifact.py          verified artifact and immutable version identity
rdn/contribution.py      exact-byte contribution envelope
rdn/client.py            local memory, resolver chain, and durable queue
rdn/reason.py            high-level Python API
rdn/cli.py               command line interface
rdn/mcp/server.py        six-tool MCP surface
rdn/doclang_adapter.py   optional DocLang and Docling bridge
rdn/node/server.py       embedded local memory node
rdn/handoff/             fingerprints and repository handoffs

Ecosystem boundary

Reason is layered operating memory. WARF is independently usable deterministic arbitration and event custody. Managed resolver services own convergence and current-pointer transitions; protected scoring remains behind their interfaces.

WARF Edge, Edge Flow, and Xact are a separate Rust on-device advertising matching domain. Xfer is a separate P2P/PSV structural exchange domain.

See docs/CANONICAL.md for the maintained product boundary and docs/AAIF-INTEROPERABILITY.md for the portable agent-handoff concept.

IETF work

The submitted versions remain on IETF Datatracker:

This implementation update does not submit or replace the drafts.

Development

$python = Join-Path $env:LOCALAPPDATA 'Programs\Python\Python313\python.exe'
& $python -m pytest -q

Apache-2.0. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reason_rdn-0.6.1.tar.gz (87.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reason_rdn-0.6.1-py3-none-any.whl (74.0 kB view details)

Uploaded Python 3

File details

Details for the file reason_rdn-0.6.1.tar.gz.

File metadata

  • Download URL: reason_rdn-0.6.1.tar.gz
  • Upload date:
  • Size: 87.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for reason_rdn-0.6.1.tar.gz
Algorithm Hash digest
SHA256 057714e9f26a5a7d4fbd76e2010593170f4b94465f1a67f7eabf17104cc37e4d
MD5 ae759c52c8133f0359552ed337550bc2
BLAKE2b-256 36f4aa9aeca7757a615b840766483591b0bce87e6fbf3880a34d7119c9ad8304

See more details on using hashes here.

File details

Details for the file reason_rdn-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: reason_rdn-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 74.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for reason_rdn-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e5f06f7e4949e06ffcacda6294e37a40b82655dbd49a840e27db342a6094158f
MD5 2c6431ce501a16783c99a33a7e4c6c80
BLAKE2b-256 4dd46f681d880be2dbb4204a0ac78dd9e24b9a1cddb834cf1dc80237935f5c04

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 files

0.5.0

2 files

0.4.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page