The first agent runtime with built-in epistemic honesty
Project description
Axiom
The first agent runtime that knows what it doesn't know.
LangChain, AutoGen, CrewAI — they all let agents act. None of them let agents reason about their own confidence before acting. Axiom does.
Every belief an Axiom agent holds carries an explicit confidence score and provenance chain. A Guardian layer blocks actions when confidence is too low. Agents verify each other directly without a central orchestrator. And cryptographic identity persists across sessions so you can detect drift.
Why this matters
# Every other framework:
answer = agent.run("Is this deployment safe?")
deploy(answer) # hope for the best
# Axiom:
belief = agent.think("Is this deployment safe?")
print(belief.confidence) # 0.43 — Guardian blocks the action
print(belief.provenance) # "reasoning:incomplete_data"
agent.act("deploy", deploy_fn) # raises ConfidenceTooLow
vs other frameworks
| LangChain | AutoGen | CrewAI | Axiom | |
|---|---|---|---|---|
| Confidence scores on beliefs | ✗ | ✗ | ✗ | ✓ |
| Action gating by confidence | ✗ | ✗ | ✗ | ✓ |
| Cryptographic agent identity | ✗ | ✗ | ✗ | ✓ |
| Drift detection across sessions | ✗ | ✗ | ✗ | ✓ |
| Agent-to-agent trust (no central auth) | ✗ | ✗ | ✗ | ✓ |
| Tamper-evident audit trail | ✗ | ✗ | ✗ | ✓ |
| Works with any LLM | ✓ | ✓ | ✓ | ✓ |
Install
pip install axiom-agent
Quick start
import anthropic
from axiom import AxiomAgent, BuiltinConstraints
client = anthropic.Anthropic()
def my_llm(prompt: str) -> str:
return client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
).content[0].text
agent = AxiomAgent(
name="researcher-01",
llm=my_llm,
constraints=[BuiltinConstraints.min_confidence(0.6)],
)
belief = agent.think("What are the risks of deploying untested ML models?")
print(belief.confidence) # 0.82
print(belief.provenance_str) # "reasoning:risk_analysis, memory:prior_context"
print(belief.is_actionable) # True (confidence >= 0.6)
# Snapshot identity and measure drift from baseline
snap = agent.snapshot()
print(snap["divergence_from_baseline"]) # 0.0 on first run
print(snap["public_key"]) # cryptographic fingerprint
Multi-agent trust
No other framework lets Agent A independently verify Agent B before acting on its output — without a central authority.
researcher = AxiomAgent("researcher-01", llm=my_llm)
validator = AxiomAgent("validator-01", llm=my_llm)
belief = researcher.think("Current state of quantum error correction?")
snap = researcher.snapshot()
# Validator verifies researcher independently
trust = validator.verify_peer("researcher-01", peer_snapshot=snap)
print(trust.verdict) # "trusted"
print(trust.trust_score) # 0.91
if trust.is_trusted:
validator.act("publish", publish_fn, belief.content)
Constraints
from axiom import BuiltinConstraints
BuiltinConstraints.min_confidence(0.7) # block if agent < 70% confident
BuiltinConstraints.deny(["send_email"]) # always block named actions
BuiltinConstraints.require_peer_trust(0.6) # warn if acting on low-trust peer output
BuiltinConstraints.rate_limit("publish", 5) # max 5 publish calls per minute
Architecture
axiom/
├── agent.py ← AxiomAgent — the main interface
├── core/
│ ├── identity.py ← RSA-2048 cryptographic identity, persists to disk
│ ├── memory.py ← SQLite-backed beliefs with confidence + provenance
│ └── drift.py ← hash-based drift monitoring across snapshots
├── epistemic/
│ └── belief.py ← Belief dataclass: content + confidence + provenance
├── guardian/
│ └── constraint.py ← action gating + tamper-evident audit trail
└── trust/
└── peer.py ← agent-to-agent verification (local or Cathedral-backed)
Roadmap
- Consensus mechanism: N agents must agree before high-stakes action fires
- Gossip protocol: agents share verified high-confidence beliefs across a network
- Cathedral sync: optional cloud backup of identity + drift timeline
- MCP server: Axiom as a tool any Claude session can call (
axiom_mcp.py) - PyPI release —
pip install axiom-agent(v0.2.0)
Built on
- Cathedral — persistent identity + drift detection
- AgentGuard — runtime safety constraints
- Veritas — epistemic confidence engine
Support
BCH: bitcoincash:qr3f60yk6yc0vut3hukhuch8dylwjnq8qvv0q5pnxv
Starring the repo and sharing it helps just as much.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axiom_agent-0.2.1.tar.gz.
File metadata
- Download URL: axiom_agent-0.2.1.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47670ec4dd257641a32974eb6fa25adb2ce627d93e449a2064d420a9a99cc294
|
|
| MD5 |
0510091cbd240de934d360d1bb8da360
|
|
| BLAKE2b-256 |
e02212a652c97af327b853e6d1c8293784e477824f2a546cbf837cacff8f6741
|
File details
Details for the file axiom_agent-0.2.1-py3-none-any.whl.
File metadata
- Download URL: axiom_agent-0.2.1-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6dca9b41a0c720c7a825c8e113d146b1028cabe5eca6e6a2733711db8477c9d
|
|
| MD5 |
ee129780e57dd0b2fb9ffd23c10b5d23
|
|
| BLAKE2b-256 |
31b18222b104b3ff73952b619c2ea3b1ef74547b5c760b67f022bc06b1799875
|