Skip to content

viruswami5511/guardclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GuardClaw

Cryptographic execution integrity for autonomous AI agents.

PyPI Python License Protocol Tests


What Problem This Solves

AI agents are beginning to:

  • execute financial transactions
  • modify production infrastructure
  • invoke tools and shell commands autonomously
  • operate without synchronous human review

Traditional logs are mutable. Observability pipelines are not evidence.

If an AI agent makes a critical decision, how do you prove β€” cryptographically what it actually did?

GuardClaw implements GEF-SPEC-1.0, a language-neutral protocol for generating:

Tamper-evident, offline-verifiable execution ledgers.

No server required. No SaaS dependency. No central verifier.
Just a file and a public key.


Core Concept

Each execution entry is:

  1. Canonicalized (RFC 8785 JCS)
  2. Linked to the previous entry via SHA-256
  3. Signed using Ed25519
  4. Appended to a JSONL ledger

Result: tamper-evident execution chain.
Any modification, deletion, or reordering β†’ verification fails.


Install

pip install guardclaw

Requires Python 3.9+

Core dependencies: cryptography, jcs, click


Quick Start

Simplest API for recording events:

from guardclaw import init_global_ledger, Ed25519KeyManager
from guardclaw.api import record_action

key = Ed25519KeyManager.generate()

init_global_ledger(
    key_manager=key,
    agent_id="agent-001",
)

record_action(
    agent_id="agent-001",
    action="tool.search",
    result="success",
    metadata={"query": "AI safety"},
)

Ledger format: JSON Lines (one signed envelope per line).

Default output location:

.guardclaw/ledger/ledger.jsonl

30-Second Example

from guardclaw import GEFLedger, Ed25519KeyManager, RecordType

key = Ed25519KeyManager.generate()

ledger = GEFLedger(
    key_manager=key,
    agent_id="agent-001",
    ledger_path="agent_ledger",
    mode="strict",
)

ledger.emit(
    RecordType.EXECUTION,
    payload={"action": "shell.exec", "cmd": "rm temp.txt"},
)

ledger.emit(
    RecordType.RESULT,
    payload={"status": "success"},
)

ledger.close()

print("Chain valid:", ledger.verify_chain())

Output:

agent_ledger/ledger.jsonl

Each line contains one signed execution envelope.


CLI Verification

Verify a ledger:

guardclaw verify agent_ledger/ledger.jsonl

Machine-readable output:

guardclaw verify agent_ledger/ledger.jsonl --format json

CI mode:

guardclaw verify agent_ledger/ledger.jsonl --quiet

Verification checks:

  • signature validity
  • hash chain continuity
  • sequence monotonicity
  • schema correctness
  • protocol version consistency

Optional Dependencies

Install integrations:

pip install guardclaw[langchain]
pip install guardclaw[crewai]

Integrations (v0.6.0)

GuardClaw integrates with AI systems at multiple layers.

🐍 LangChain Adapter

from guardclaw.adapters.langchain import GuardClawCallbackHandler

handler = GuardClawCallbackHandler(agent_id="agent")

agent.run(
    "task",
    callbacks=[handler],
)

Records:

  • tool calls
  • LLM prompts
  • completions
  • tool errors

πŸ€– CrewAI Adapter

from guardclaw.adapters.crewai import GuardClawCrewAdapter

adapter = GuardClawCrewAdapter("crew-agent")

crew = Crew(
    agents=[agent],
    tasks=[task],
    step_callback=adapter.record_step,
)

Records:

  • agent steps
  • task results
  • tool errors

πŸ”Œ MCP Proxy (Framework-Agnostic)

from guardclaw.mcp import GuardClawMCPProxy

proxy = GuardClawMCPProxy("agent")

proxy.register_tool("search", search)

proxy.call("search", query="AI safety")

Records:

  • INTENT β†’ RESULT / FAILURE

Works with tool-calling frameworks including:

  • OpenAI
  • Anthropic Claude
  • LangChain
  • CrewAI
  • custom agents

Envelope Structure (GEF-SPEC-1.0)

Field Description
gef_version Protocol version
record_id UUIDv4
record_type execution / result / intent
agent_id Agent identifier
signer_public_key Ed25519 public key
sequence Monotonic counter
nonce CSPRNG hex
timestamp ISO-8601 UTC
causal_hash SHA-256 of previous entry
payload Application JSON
signature Ed25519 signature

Signing surface excludes the signature field.


Integrity Model

Chain:

causal_hash[N] = SHA256(JCS(entry[N-1]))

Genesis entry uses a zero sentinel hash.

A valid ledger requires:

  • valid signatures
  • continuous sequence numbers
  • correct hash chain
  • schema validity
  • consistent protocol version

Performance (1M Entry Benchmark)

Metric Value
Entries written 1,000,000
Write speed ~760 entries/sec
Ledger size ~567 MB
Full verify ~9,200 entries/sec
Stream verify ~2,700 entries/sec
Stream memory ~39 MB (O(1))

Environment:

  • Python 3.13
  • single thread
  • strict fsync
  • Ed25519 signing enabled

Security Model

GuardClaw guarantees:

  • tamper detection
  • deletion detection
  • reordering detection
  • signature authenticity

Limitations:

  • key compromise allows history rewrite
  • no trusted timestamps
  • no distributed consensus

Project Structure

guardclaw/
β”œβ”€β”€ core/          # cryptographic protocol
β”œβ”€β”€ adapters/      # framework integrations
β”‚   β”œβ”€β”€ langchain.py
β”‚   └── crewai.py
β”œβ”€β”€ mcp/           # tool proxy
β”‚   └── proxy.py
β”œβ”€β”€ api.py         # integration API
└── cli.py         # verification CLI

Tests

62 adversarial tests (1 skipped), covering:

  • tamper attacks
  • replay attacks
  • canonicalization determinism
  • crash recovery

Run locally:

pytest

Specification

Protocol specification: GEF-SPEC-1.0

Defines:

  • envelope schema
  • canonicalization contract
  • hash chain linkage
  • verification algorithm

See:

SPEC.md

Status

Version: v0.6.0
Protocol: GEF-SPEC-1.0
License: Apache 2.0

Production-ready cryptographic execution ledger for AI agents.


Philosophy

Observability is not evidence.
Logs are not proof.
Integrity is measurable.

About

Cryptographic accountability ledger for AI agents

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors