Why Nobulex

Governance decides what an AI agent should do. Evidence proves what it actually did. Almost the entire agent stack ships the first and skips the second. Nobulex is the evidence layer.

The gap

Every serious vendor now ships governance for AI agents: policies, guardrails, approval gates, permission scopes. All of it decides what an agent is allowed to do before it acts. None of it answers the question that matters after something goes wrong: what did the agent actually do, under what authority, and can you prove it to someone who wasn't there and doesn't trust you?

That is not a governance question. It is an evidence question, and evidence is what's missing.

Why logs aren't enough

Most agent stacks already log activity. The problem is where the log lives: in the operator's own infrastructure, editable and deletable by the operator. Anyone reviewing it has to trust the exact party whose behavior they are reviewing. For software that moves money, reads records, or calls tools on your behalf, that is the wrong trust model — and it does not survive an adversarial audit, an incident review, or a regulator who assumes the log could have been rewritten.

What evidence actually requires

An account you can trust has three properties:

Signatures give you the first two; hash-chaining makes deletion show up as a gap; pairing each action with an admission record gives you the third.

How Nobulex does it

Every agent action produces a pair of signed receipts — an admission receipt (intent, authority, scope, policy version) before it runs, and an outcome receipt (what happened) after, linked by a content-derived hash called action_ref. Both are canonicalized with JCS (RFC 8785) and signed with Ed25519, so any third party can verify any receipt offline with just the receipt and a public key. No API call, no operator trust, ~13,700 receipts/sec on a single core.

from nobulex.agent import Agent

agent = Agent("billing-bot")
receipt = agent.act("charge", scope="invoice:042")
assert receipt.verify()  # recomputes action_ref, checks the signature, offline

Change one byte of a receipt and verification fails. That is the whole guarantee.

Not just our idea

This pattern — the bilateral receipt pattern — is normative guidance in the OWASP Agentic Skills Top 10 (AST09), and Nobulex is its open-source reference implementation. The same records map onto EU AI Act Article 12 record-keeping (enforcement from December 2, 2027). Evidence is becoming a requirement, not a nice-to-have.

Get started

pip install nobulex
# or
npm install @nobulex/core

Nobulex is open source (MIT). Try the live tamper demo, read the audit-trail guide, or browse the code and spec.

Get started Star