Skip to content

Latest commit

 

History

History
210 lines (164 loc) · 7.43 KB

File metadata and controls

210 lines (164 loc) · 7.43 KB

Carbon Credit Auditor Swarm

Catch the Phantom Credits

"This demo audits 10 carbon projects in 90 seconds and shows you exactly which ones are fraudulent."

$2B+ voluntary carbon market plagued by fake credits. Projects claim forest preservation, but satellite data shows deforestation. This demo shows autonomous verification using Agent OS.

🎬 Demo Video

Carbon Auditor Demo

Script (60 seconds):

[0:00] "This is a carbon credit claim. Company says they saved 10,000 tons CO2."
[0:10] "Let's verify with satellite data."
[0:15] [Screen shows CMVK running: GPT-4, Claude, Gemini analyzing]
[0:25] [Dashboard shows: FRAUD DETECTED - Only 6,000 tons verifiable]
[0:35] [Agent OS kernel sends SIGKILL to halt certification]
[0:45] "Zero violations. Deterministic enforcement. Agent OS."

🚀 Quick Start (One Command)

# Clone and run
cd examples/carbon-auditor
cp .env.example .env  # Add your API keys
docker-compose up

# Wait 30 seconds, then open:
# → http://localhost:8080  (Demo UI)
# → http://localhost:3000  (Grafana Dashboard - admin/admin)
# → http://localhost:16686 (Jaeger Traces)

No API keys? Demo runs with synthetic data by default.

📊 Live Dashboard

┌─────────────────────────────────────────┐
│ Carbon Auditor - Live Dashboard         │
├─────────────────────────────────────────┤
│ Agents Active:           3              │
│ Projects Audited:        47             │
│ Fraud Detected:          7 (14.9%)      │
│ CMVK Consensus:          96.3%          │
│ Policy Violations:       0              │
│ Avg Audit Time:          142s           │
└─────────────────────────────────────────┘

Overview

This system ingests a Project Design Document (PDF) claiming "We protected this forest," compares it against historical Satellite Data (Sentinel-2), and outputs a VerificationReport using deterministic mathematical verification.

Architecture (The Swarm)

Three specialized agents communicate over the AMB (Agent Message Bus):

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  claims-agent   │     │   geo-agent     │     │  auditor-agent  │
│  "The Reader"   │     │   "The Eye"     │     │  "The Judge"    │
├─────────────────┤     ├─────────────────┤     ├─────────────────┤
│ • PDF Parser    │────▶│ • Sentinel API  │────▶│ • cmvk Kernel   │
│ • Table Extract │     │ • NDVI Calc     │     │ • Drift Score   │
│                 │     │                 │     │ • FRAUD/VERIFY  │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        │                       │                       │
        ▼                       ▼                       ▼
    [CLAIMS]              [OBSERVATIONS]        [VERIFICATION]
        └───────────────────────┴───────────────────────┘
                            AMB (Message Bus)

Agent A: claims-agent (The Reader)

  • Role: Ingests the PDF (Project Design Document)
  • Tools: pdf_parser, table_extractor
  • Output: Structured Claim object with polygon coordinates and claimed NDVI

Agent B: geo-agent (The Eye)

  • Role: Satellite interface
  • Tools: sentinel_api, ndvi_calculator
  • Output: Observation object with actual NDVI from satellite imagery

Agent C: auditor-agent (The Judge)

  • Role: Decision maker
  • Dependencies: cmvk (Verification Kernel)
  • Output: Verification result (VERIFIED / FLAGGED / FRAUD)

The Killer Feature: cmvk

The Carbon Market Verification Kernel performs mathematical verification, not LLM inference:

from cmvk import VerificationKernel, DriftMetric

kernel = VerificationKernel()
drift_score = kernel.verify(
    target=claim_vector,      # [0.82 NDVI, 180 tonnes]
    actual=observation_vector, # [0.45 NDVI, 50 tonnes]
    metric=DriftMetric.EUCLIDEAN
)

if drift_score > 0.15:
    return "FRAUD"  # Math decided, not AI

Why this matters for Enterprise Safety: The verification decision is auditable, deterministic, and explainable—not a black-box LLM response.

Quick Start

# Run with Docker (recommended)
docker-compose up

# Or run locally
pip install -e .
python demo.py

# Run specific scenarios
python demo.py --scenario fraud
python demo.py --scenario verified
python demo.py --scenario both

Demo Experience

  1. Input: Upload project claim

    • PDF: "We saved 10,000 tons CO2 by protecting this forest"
    • Coordinates: 34.5°N, 118.2°W
  2. The Swarm:

    • collector-agent: Fetches Sentinel-2 satellite imagery
    • policy-agent: Loads Verra VM0042 methodology rules
    • auditor-agent: Uses CMVK to verify claim vs reality
  3. Output:

    • ✅ VERIFIED or ❌ FRAUD
    • Evidence: Side-by-side satellite images
    • Audit trail: Complete reasoning in Flight Recorder

Metrics

Metric Value
Detection rate 96%
Audit time 90 seconds
False positive rate 4%
Methodologies supported VM0042, VM0007

Project Structure

carbon-auditor-swarm/
├── src/
│   ├── agents/           # Agent implementations
│   │   ├── base.py       # Base Agent class
│   │   ├── claims_agent.py
│   │   ├── geo_agent.py
│   │   └── auditor_agent.py
│   ├── amb/              # Agent Message Bus
│   │   ├── message_bus.py
│   │   └── topics.py
│   ├── atr/              # Agent Tool Registry
│   │   ├── tools.py      # PDF, Sentinel, NDVI tools
│   │   └── registry.py
│   └── cmvk/             # Verification Kernel
│       ├── kernel.py     # Mathematical verification
│       └── vectors.py    # Claim/Observation vectors
├── tests/
│   └── data/             # Mock test data
│       ├── project_design.txt
│       └── sentinel_data.json
├── demo_audit.py         # Main demo script
├── pyproject.toml
└── README.md

Verification Logic

Drift Score Status Action
< 0.10 VERIFIED Claims match observations
0.10 - 0.15 FLAGGED Minor discrepancy, manual review
> 0.15 FRAUD Significant discrepancy, alert

Future: Cryptographic Oracle (ATR Enhancement)

Current tool output:

{"ndvi": 0.5}

Future with provenance:

{
  "ndvi": 0.5,
  "signature": "sha256:...",
  "source": "copernicus.eu"
}

This enables verification that satellite data hasn't been tampered with.

License

MIT