rulsynor-core v1.0: An AI Agent You Can Audit
rulsynor-core v1.0: An AI Agent You Can Audit How do you trust an AI Agent in production? Not "trust" as in I think it'll do the right thing. Trust as in cryptographic proof that every decision was correct, traceable,
rulsynor-core v1.0: An AI Agent You Can Audit
How do you trust an AI Agent in production? Not "trust" as in I think it'll do the right thing. Trust as in cryptographic proof that every decision was correct, traceable, and independently verifiable.
Today: rulsynor-core โ open-source Guard engine for AI Agents. MIT license. On npm.
30-Second Demo
bash
npx @openoba/rulsynor-core --tool=exec --cmd="rm -rf /"
๐ก๏ธ Decision: DENY
๐ Reason: Destructive command blocked.
๐งพ Recorded: sha256:8274b0... (tamper-evident)
๐งญ Alternative: Use the read tool to inspect first.
Not just "no." The agent learns why and what to do instead.
What It Does
Guard: Evaluates every tool call before execution โ ring-sorted, sub-millisecond. 30 preset rules + write your own.
Audit: Every decision produces a 25-field cryptographic record. JCS + SHA-256. Chain-linked.
Verify: Anyone can verify audit records with zero SDK. Just JCS + SHA-256. No rulsynor needed.
What Makes It Different
Most AI safety tools are prompt-based. "Be careful" isn't governance. rulsynor-core gives you:
7 decision types โ ALLOW, DENY, CORRECT, QUARANTINE, REQUEST_HUMAN, NOTIFY, EMERGENCY_HALT
Cryptographic audit chain โ not "we logged it," mathematical proof
Third-party verified โ 101 cross-implementation vectors, 13/13 passed by Concordia
MIT licensed โ zero framework dependencies
Rules in Plain Language
ๅคๅถ
# "If the agent runs rm -rf, block it"
name: block-destructive-rm
when:
conditions:
- field: context.tool.name
operator: eq, value: exec
- field: context.tool.args.command
operator: matches, value: rm\s+-rf
then:
decision: DENY
instruction: Destructive command blocked.
Any LLM can translate English descriptions into ERDL rules. The compiler validates everything before loading.
5-Minute Integration
import { Evaluator, GuardStateManager,
loadPresetRules, toCompiledRules }
from '@openoba/rulsynor-core';
const rules = toCompiledRules(loadPresetRules());
const evaluator = new Evaluator(new GuardStateManager());
const result = evaluator.evaluate(
{ toolName, toolArgs, sessionId, agentId },
rules
);
// result.decision โ ALLOW | DENY | CORRECT | ...
Works with LangChain, MCP, custom ReAct loops. Same API everywhere.
Roadmap
30 preset rules, 20 operators
JCS+SHA-256 audit trail
Third-party verified
LangGraph integration guide
Community rule marketplace
GitHub ยท npm
"LLM vendors deliver exceptional intelligence. We deliver accountability."
Built at OpenOBA. MIT.
๐ฐ Read the original article on Dev.to AI
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes โ full credit and traffic to the original publisher.