Skip to main content

Financial governance infrastructure for AI agents — spend controls, rules engine, kill switch, and audit trail.

Project description

AgentWallet

Financial governance infrastructure for AI agents.

Spend controls, rules engine, kill switch, and audit trail — every financial action an agent takes flows through governance before a dollar moves.

Install

pip install agentwallet

Quick Start

from agentwallet import AgentWallet, SpendRule, RuleVerdict

# Create a governed wallet
wallet = AgentWallet("trading-agent", budget_cents=5000)  # $50 budget

# Add custom governance rules
wallet.add_rule(SpendRule(
    rule_id="block-expensive-models",
    name="Block calls over $5",
    condition=lambda ctx: ctx["amount_cents"] > 500
        and "gpt-4" in ctx.get("metadata", {}).get("model", ""),
    verdict=RuleVerdict.DENY,
))

# Every spend goes through governance
result = wallet.spend(200, "llm-inference", metadata={"model": "gpt-4"})
# {'approved': True, 'tx_id': '...', 'remaining_cents': 4800}

result = wallet.spend(800, "llm-inference", metadata={"model": "gpt-4"})
# {'approved': False, 'reason': 'Blocked by rule: block-expensive-models'}

Persistence (NEW in 0.2.0)

Add persist=True and wallet state survives process restarts. Zero config — uses SQLite under the hood.

# First run
wallet = AgentWallet("my-agent", budget_cents=5000, persist=True)
wallet.spend(200, "api-call")
wallet.spend(300, "web-search")
print(wallet.balance_cents)  # 4500

# ... restart your process ...

# Second run — state is restored automatically
wallet = AgentWallet("my-agent", persist=True)
print(wallet.balance_cents)  # 4500 — it remembered!
print(len(wallet.transactions))  # 2 — transactions restored too

Everything persists: balance, transactions, audit log, kill switch state. Multiple agents can share the same database file.

# Custom database path
wallet = AgentWallet("agent-1", persist=True, db_path="/data/governance.db")

# Query spend analytics (with persistence)
summary = wallet._storage.get_spend_summary("agent-1")
by_category = wallet._storage.get_spend_by_category("agent-1")
all_wallets = wallet._storage.list_wallets()

What's Included

  • AgentWallet — Per-agent wallets with configurable budgets
  • GovernanceEngine — Rules engine that evaluates every transaction
  • SpendRule — Custom rules with priority-based evaluation
  • Kill Switch — Instant shutdown of all agent spending
  • AuditLog — Append-only JSONL audit trail for compliance
  • SQLite Persistencepersist=True and state survives restarts
  • Spend Analytics — Query spend by category, get summaries
  • Event Callbackswallet.on("deny", callback) for webhooks/alerts
  • Dashboard API — FastAPI server for real-time monitoring
  • CLIagentwallet demo and agentwallet dashboard

Built-in Safety Rules

Every wallet ships with four default rules (highest priority first):

  1. Kill Switch (priority 1000) — blocks everything when activated
  2. Max Per Transaction (priority 900) — caps individual spend
  3. Daily Limit (priority 800) — caps rolling 24-hour spend
  4. Balance Check (priority 700) — prevents overdraft

Event Callbacks

Get notified when governance events fire:

import requests

# Webhook on denied transactions
wallet.on("deny", lambda data: requests.post(
    "https://hooks.slack.com/your-webhook",
    json={"text": f"🚫 Agent blocked: {data['reason']}"}
))

# Log all approved spend
wallet.on("approve", lambda data: print(f"✅ ${data['amount_cents']/100:.2f} approved"))

# Kill switch alerts
wallet.on("kill_switch", lambda data: print(f"🛑 Kill switch: {data}"))

Dashboard

pip install agentwallet[dashboard]
agentwallet dashboard

Or programmatically:

from agentwallet import AgentWallet, register_wallet, start_dashboard_server

wallet = AgentWallet("my-agent", budget_cents=10000)
register_wallet(wallet)
start_dashboard_server(port=8100)  # API at http://localhost:8100/docs

CLI

agentwallet demo        # Run a quick demo with sample transactions
agentwallet dashboard   # Start the governance API server
agentwallet version     # Show version

Zero Dependencies

The core SDK has zero external dependencies. Just Python 3.9+. The dashboard server optionally uses FastAPI + uvicorn.

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentwallet_gov-0.3.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentwallet_gov-0.3.0-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file agentwallet_gov-0.3.0.tar.gz.

File metadata

  • Download URL: agentwallet_gov-0.3.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for agentwallet_gov-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2ee7e778dae86627a1e1bd4fa206e7b2ae8c9cbbc7d624aa618719899fcc16c2
MD5 6d2170972d07cf5ef2476a848bdcfecc
BLAKE2b-256 2caf9cf138af38cb774f917f81e14518cc3e35634f45cffccf35279460b34bc5

See more details on using hashes here.

File details

Details for the file agentwallet_gov-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agentwallet_gov-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f8bb8bb6d8a27ef0363b1b5eaf555480dfc6fa83490e1a025dcfea3e00cd32f
MD5 6609ee1af21dc5d63a232e72d2d4d809
BLAKE2b-256 0adeda3773ff48fe27178143dbe31a111af1e404d347433d37594bbf78796919

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page