loading…
Search for a command to run...
loading…
Proof-of-behavior enforcement for AI agents. Define behavioral covenant rules (permit/forbid/require), enforce at runtime before execution, get SHA-256 hash-cha
Proof-of-behavior enforcement for AI agents. Define behavioral covenant rules (permit/forbid/require), enforce at runtime before execution, get SHA-256 hash-chained tamper-evident audit logs, and verify compliance independently. Cross-agent verification handshake — no proof, no transaction. MIT licensed, 4,244 tests.
AI agents can't prove they followed their own rules. Nobulex fixes that.
$ npx tsx examples/demo.ts
Agent A declares covenant: permit read, forbid transfer > 500
Agent A executes 5 actions...
✓ read /data/users — allowed
✓ transfer $300 — allowed
✓ read /data/orders — allowed
✗ transfer $600 — BLOCKED by covenant
✓ read /data/config — allowed
Agent B verifies Agent A...
✓ Step 1: Covenant signature valid
✓ Step 2: Proof signature valid
✓ Step 3: Log integrity verified (5 entries, chain intact)
✓ Step 4: Compliance check passed (0 violations)
✓ Step 5: History length sufficient (5 ≥ 1)
✓ Step 6: Covenant matches requirements
✓ Step 7: Audience binding confirmed
✓ Step 8: Task class verified
Result: Agent B trusts Agent A ✅
Agent C presents tampered proof...
✓ Step 1: Covenant signature valid
✓ Step 2: Proof signature valid
✗ Step 3: FAILED — hash chain broken at entry 2
Result: Agent B refuses Agent C ❌
Three primitives. That's the whole protocol:
permit, forbid, require
Try it live · Policy Designer · Quickstart · Compare · Receipt Schema · Pricing · IETF Draft
You can't audit a neural network. But you can audit actions against stated commitments.
verify(covenant, actionLog) → { compliant: boolean, violations: Violation[] }
This is always decidable, always deterministic, always efficient. No ML, no heuristics — mathematical proof.
Proof-of-behavior means every autonomous agent action is:
npm install @nobulex/sdk
import { createDID, parseSource, EnforcementMiddleware, verify } from '@nobulex/core';
// 1. Create an agent identity
const agent = await createDID();
// 2. Write behavioral rules
const spec = parseSource(`
covenant SafeTrader {
permit read;
permit transfer (amount <= 500);
forbid transfer (amount > 500);
forbid delete;
}
`);
// 3. Enforce at runtime
const mw = new EnforcementMiddleware({ agentDid: agent.did, spec });
// $300 transfer — allowed
await mw.execute(
{ action: 'transfer', params: { amount: 300 } },
async () => ({ success: true }),
);
// $600 transfer — BLOCKED before execution
await mw.execute(
{ action: 'transfer', params: { amount: 600 } },
async () => ({ success: true }), // never runs
);
// 4. Prove compliance
const result = verify(spec, mw.getLog());
console.log(result.compliant); // true
console.log(result.violations); // []
Before two agents transact, they verify each other's proof-of-behavior. No proof, no transaction.
import { generateProof, verifyCounterparty } from '@nobulex/sdk';
// Agent A generates its proof-of-behavior
const proof = await generateProof({
identity: agentA,
covenant: spec,
actionLog: middleware.getLog(),
});
// Agent B verifies Agent A before transacting
const result = await verifyCounterparty(proof);
if (!result.trusted) {
console.log('Refusing transaction:', result.reason);
return; // No proof, no transaction
}
// Safe to transact — Agent A is verified
await executeTransaction(proof.agentDid, amount);
The handshake checks eight things in order: covenant signature, proof signature, log integrity, compliance, minimum history, required covenant, audience binding, and task class scoping. If any check fails, the transaction is refused.
| What exists today | What's missing |
|---|---|
| Guardrails filter prompts and outputs | No proof the agent followed rules at the action layer |
| Monitoring watches what agents do after the fact | No enforcement before execution |
| Identity verifies who the agent is | No verification of what the agent did |
| Governance platforms provide dashboards and policies | No cryptographic evidence a third party can independently verify |
Proof-of-behavior fills the gap: declare → enforce → prove.
covenant SafeTrader {
permit read;
permit transfer (amount <= 500);
forbid transfer (amount > 500);
forbid delete;
require counterparty.compliance_score >= 0.8;
}
Forbid wins. If any forbid matches, the action is immediately blocked regardless of permits. Default deny for unmatched actions. Conditions support >, <, >=, <=, ==, != on numeric, string, and boolean fields.
Three keywords. No configuration files. No YAML. No JSON schemas. Just rules.
┌─────────────────────────────────────────────────────────────┐
│ Integrations │
│ mcp-server · a2a · langchain │
├─────────────────────────────────────────────────────────────┤
│ User API │
│ sdk │
├─────────────────────────────────────────────────────────────┤
│ Proof-of-Behavior │
│ │
│ identity · covenant-lang · action-log · enforcement │
│ middleware · verification · crypto · merkle · proofs │
│ │
│ core │
└─────────────────────────────────────────────────────────────┘
| Package | What It Does |
|---|---|
| @nobulex/core | Everything — identity (DIDs), covenant DSL, hash-chained action logs, enforcement middleware, verification, cryptographic proofs |
| @nobulex/sdk | User-facing API — NobulexClient, CovenantAgent, cross-agent handshake |
| @nobulex/mcp-server | MCP compliance server for Claude Desktop, Cursor, VS Code |
| @nobulex/a2a | A2A Agent Card behavioral attestation extension |
| @nobulex/langchain | LangChain callback integration |
| @nobulex/claude-agent-sdk | Claude Agent SDK compliance hooks — PreToolUse/PostToolUse gating, tamper-evident tool-call logs |
npm install @nobulex/sdknpx @nobulex/mcp-server (works with Claude Desktop, Cursor, VS Code)| Bitcoin | Ethereum | Nobulex | |
|---|---|---|---|
| What it verifies | Monetary transfers | Contract execution | Agent behavior |
| Mechanism | Proof of Work | Proof of Stake | Proof of Behavior |
| What's proven | Transaction validity | State transitions | Behavioral compliance |
| Guarantee | Trustless money | Trustless contracts | Trustless agents |
npx tsx examples/demo.ts
Creates two agents, defines behavioral rules, enforces at runtime, blocks a forbidden transfer, generates a proof-of-behavior, runs the 8-step handshake, and then shows the same handshake rejecting a third agent whose log was tampered with — all in one script.
npx tsx examples/langchain-agent.ts # covenant enforcement around a mocked LangChain agent
npx tsx benchmarks/bench.ts # protocol performance on your hardware
We've conducted an internal security review. Here's what we tested and what we found:
Verified secure:
Known limitations:
Not in scope:
See docs/threat-model.md for the full threat model.
git clone https://github.com/arian-gogani/nobulex.git
cd nobulex
npm install
npx vitest run # full test suite (incl. fast-check property tests)
npx tsx examples/demo.ts # see the protocol run end-to-end
npx tsx benchmarks/bench.ts
draft-gogani-nobulex-proof-of-behavior-00: Proof-of-Behavior Protocol for Autonomous AI AgentsProjects building on or composing with Nobulex:
| Partner | Layer | Integration |
|---|---|---|
| Dominion Observatory | Pre-call trust scores | Feeds trust_score into covenant require |
| SidClaw | HITL approval | Signed state-transition receipts |
| Aira | Authorization + audit | Multi-party signing with RFC 3161 |
| Signet | Signing layer | Bilateral co-signing, policy attestation |
| AgentMint | Runtime enforcement | Ed25519 plan signing, scope matching |
| APS | Receipt schema | Co-designed outcome_hash format |
npm run docs:api)MIT — use it for anything.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"arian-gogani-nobulex": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also