Skip to main content

CI/CD guardrails for AI agents - prevent payment duplicates and data destruction

Project description

AgentCorrect

Stop your AI agents from destroying production.

What This Does

AgentCorrect scans AI agent traces and blocks deployments when it finds:

  • Payment API calls missing idempotency keys (duplicate charges)
  • SQL queries that would delete/modify all records
  • Infrastructure commands that would wipe caches or databases

Exit code 2 fails your CI/CD pipeline. That's it.

Who Needs This

You need this if:

  • Your AI agents call payment APIs (Stripe, PayPal, Square, etc.)
  • Your AI agents execute SQL queries
  • Your AI agents touch Redis, MongoDB, or cloud infrastructure
  • You've ever had an agent accidentally charge a customer twice
  • You've ever had an agent delete production data

You don't need this if:

  • Your agents are read-only
  • Your agents don't touch money or data
  • You manually review every agent action

Installation

pip install agentcorrect

Usage

# Analyze agent trace
agentcorrect analyze trace.jsonl

# In CI/CD pipeline
agentcorrect analyze trace.jsonl || exit 1

What It Catches

Payment Disasters

  • Stripe: Missing Idempotency-Key header → Prevents duplicate charges
  • PayPal: Missing PayPal-Request-Id → Prevents duplicate charges
  • Square: Missing idempotency_key in body → Prevents duplicate charges
  • 25+ payment providers with their exact requirements

SQL Disasters

  • DELETE FROM users WHERE 1=1 → Blocked (tautology)
  • DELETE FROM users → Blocked (no WHERE clause)
  • TRUNCATE TABLE orders → Blocked (data loss)
  • DROP TABLE customers → Blocked (irreversible)

Infrastructure Disasters

  • Redis: FLUSHALL → Blocked (cache wipe)
  • MongoDB: dropDatabase → Blocked (database deletion)
  • S3: DeleteBucket → Blocked (storage deletion)

Real Example

Your agent does this:

# Agent tries to charge customer
response = stripe.charges.create(amount=5000, currency="usd")
# Network timeout, agent retries
response = stripe.charges.create(amount=5000, currency="usd") 
# Customer charged twice - $100 lost

AgentCorrect catches this:

Missing payment idempotency
Provider: Stripe  
Fix: Add header 'Idempotency-Key: <unique-order-id>'
Exit code: 2 (Build Failed)

Trace Format

JSONL format - one JSON object per line:

{"role":"http","meta":{"http":{"method":"POST","url":"https://api.stripe.com/v1/charges","headers":{},"body":{"amount":1000}}}}
{"role":"sql","meta":{"sql":{"query":"DELETE FROM users WHERE id = 123"}}}
{"role":"redis","meta":{"redis":{"command":"GET user:123"}}}

Why This Works

  1. Vendor-specific knowledge: We know Stripe needs Idempotency-Key in headers, Square needs idempotency_key in body. This isn't guesswork.

  2. AST parsing for SQL: We parse SQL structurally, not with regex. No false positives.

  3. Exit codes for CI/CD: Non-zero exit fails the build. Standard CI/CD practice.

CI/CD Integration

GitHub Actions

- name: Test Agent Safety
  run: |
    python run_agent.py > trace.jsonl
    agentcorrect analyze trace.jsonl

GitLab CI

test-agent:
  script:
    - python run_agent.py > trace.jsonl
    - agentcorrect analyze trace.jsonl

Testing

Run the verification suite:

python verify.py        # Test all detections
python ship_tests.py    # 15 acceptance tests
./quick_proof.sh       # 60-second proof

Limitations

  • Only catches what we know about (95% of payment providers, common SQL patterns)
  • Requires trace data in JSONL format
  • Can't prevent disasters if you skip the CI/CD check

License

MIT

Contributing

See CONTRIBUTING.md


Built for teams who learned the hard way that AI agents need guardrails.

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

agentcorrect-0.1.0.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

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

agentcorrect-0.1.0-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file agentcorrect-0.1.0.tar.gz.

File metadata

  • Download URL: agentcorrect-0.1.0.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for agentcorrect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c5a4220c0458282e5e1dca38b1d61642d6735281e8e0c9ec912463bbf8a3d5d0
MD5 eafa89437f908cffbd9fe4373d785f9f
BLAKE2b-256 04c92e1863a7e3e537e3fd81d01f98e5b68a15235b81c802ab9b3082d5e9a4ec

See more details on using hashes here.

File details

Details for the file agentcorrect-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: agentcorrect-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for agentcorrect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d48c916f5023253e52562df11fa059b09f20444b54452f96ca66f0f27afe9a3d
MD5 d096cb63b6dae293333e27db30c66646
BLAKE2b-256 d22472652af578fdb0bff01c5af06aa6affab876aeaf1bb059009489e78490f6

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