README.md

July 13, 2026 ยท View on GitHub

AIR Blackbox

AIR Platform

One command to run the AIR Blackbox compliance stack

Tamper-evident audit. Runtime guardrails. Full trace observability. Local-first.

AIR Blackbox Platform demo

License CI air-blackbox on PyPI air-gate on PyPI

๐ŸŽฏ Live Demo ยท ๐ŸŒ airblackbox.ai ยท ๐Ÿ“ฆ Main Repo


What This Is

air-platform is the Docker Compose orchestration for the AIR Blackbox stack. One command starts the gateway, the GenAI-aware OTel collector, Jaeger tracing, and a MinIO prompt vault โ€” a self-contained, local sandbox for recording, replaying, and auditing AI agent behavior.

The gateway ships as a prebuilt, signed image from GHCR (with SLSA build provenance). Nothing here phones home: the default collector pipeline exports to your local Jaeger only.

The Problem

The EU AI Act enforcement date for high-risk AI systems is August 2, 2026. Companies deploying AI agents โ€” tool-calling LLMs that act autonomously โ€” face mandatory requirements around logging, transparency, human oversight, and data governance. Penalties reach โ‚ฌ35M or 7% of global turnover.

Most compliance platforms target CISOs with top-down dashboards. AIR Blackbox gives developers the building blocks to make agents audit-ready by default.

Quick Start

git clone https://github.com/airblackbox/air-platform.git
cd air-platform
cp .env.example .env    # optional: set OPENAI_API_KEY, GATEWAY_KEY
make up                 # gateway + collector + Jaeger + MinIO
make status             # check health

Point your agent at the gateway instead of the provider โ€” everything else in your code stays identical:

client = OpenAI(base_url="http://localhost:8080/v1")

Every LLM call now produces an HMAC-SHA256 chained, replayable audit record in ./runs/, plus an OpenTelemetry trace you can inspect in Jaeger at localhost:16686.

Ports

PortService
8080AIR Gateway โ€” OpenAI-compatible proxy (/v1/chat/completions, /v1/responses, /v1/audit, /v1/analytics, /health)
4317 / 4318OTel Collector (gRPC / HTTP OTLP)
16686Jaeger UI
9000 / 9001MinIO S3 API / Console (prompt vault)

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       YOUR AI AGENTS                         โ”‚
โ”‚   (OpenAI SDK ยท LangChain ยท CrewAI ยท AutoGen ยท any client)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                           โ”‚ base_url swap
                           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    AIR GATEWAY  :8080                        โ”‚
โ”‚   OpenAI-compatible proxy ยท HMAC-SHA256 audit chain          โ”‚
โ”‚   guardrails (budgets, loop & retry protection, tool         โ”‚
โ”‚   allowlists) ยท PII / injection scanning ยท replay records    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚ OTLP traces                  โ”‚ .air.json records
        โ–ผ                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   OTEL COLLECTOR :4317    โ”‚   โ”‚   ./runs/  +  MinIO vault   โ”‚
โ”‚   normalize โ†’ prompt      โ”‚   โ”‚   (signed, replayable,      โ”‚
โ”‚   vault โ†’ redact/metrics  โ”‚   โ”‚    tamper-evident)          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      JAEGER UI :16686     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

The collector pipeline (collector.yaml, editable) runs three AIR processors in order: genai_semantic_normalizer (vendor attrs โ†’ gen_ai.* conventions), promptvault (offload prompt/response bodies to encrypted storage, replace with refs), and genaisafe (PII redaction, token metrics, loop detection).

EU AI Act Mapping

EU AI Act ArticleRequirementWhere it's handled
Art. 9Risk managementGateway guardrails โ€” budgets, loop/retry protection, tool blocklists; air-gate risk-tiered approval policies
Art. 10Data governanceCollector genaisafe PII redaction + prompt vault offload
Art. 11Technical documentationFull OTel trace of every call, normalized to gen_ai.* semantics
Art. 12Record-keepingHMAC-SHA256 chained .air.json records, ML-DSA-65 signed checkpoints
Art. 14Human oversightair-gate โ€” human-in-the-loop tool gating with Slack approvals
Art. 15Robustness & securityInjection detection (20 weighted patterns, 5 attack categories), guardrail enforcement

See the full compliance mapping for article-by-article details. AIR Blackbox checks technical requirements โ€” it is a linter for AI governance, not a legal tool.

The AIR Blackbox Ecosystem

RepositoryWhat it doesInstall
airblackboxThe flight recorder: gateway proxy, audit chain, replay, evidence bundles, EU AI Act gap analysis (51+ checks), framework trust layerspip install air-blackbox
air-gateHuman-in-the-loop tool gating + policy engine (Art. 14)pip install air-gate
air-blackbox-mcpMCP server โ€” audit, replay, scan, and compliance tools in Claude Desktop, Claude Code, Cursorvia MCP config
compliance-actionGitHub Action โ€” EU AI Act compliance checks on every PRvia workflow
air-platformThis repo โ€” one-command full stackmake up
tombstoneProvable, crypto-shredded erasure on a tamper-evident ledger (GDPR Art. 17)โ€”

Framework trust layers for LangChain, CrewAI, OpenAI Agents SDK, Claude Agent SDK, AutoGen, Google ADK, and Haystack ship inside the main airblackbox repo (air_blackbox.trust.*).

Running the Compliance Scanner

The scanner runs against any Python AI project โ€” no stack required:

pip install air-blackbox
air-blackbox comply --scan . -v     # gap analysis: Articles 9โ€“15
air-blackbox replay                 # replay recorded episodes
air-blackbox evidence               # signed evidence bundle for auditors

Testing

Integration tests run against the live stack:

make up
make test    # 6 health/audit tests; +1 live LLM round-trip when OPENAI_API_KEY is set

If the stack isn't running, the suite skips with instructions instead of failing. CI boots the full compose stack and runs the same tests on every push.

Threat Model

ThreatRiskMitigation
Prompt data leakagePII or proprietary data exposed in tracesgenaisafe hash-and-preview redaction; prompt vault offload
Secret exposureAPI keys, bearer tokens in span attributesDenylist regex detection, automatic redaction
Runaway loopsInfinite tool-calling burning budgetGateway loop detection + session budgets; collector repeat-threshold flagging
Audit tamperingLogs edited after an incidentHMAC-SHA256 chain โ€” modifying one record breaks every record after it

License

All AIR Blackbox components are released under the Apache License 2.0.

Contributing

We welcome contributions. See CONTRIBUTING.md for guidelines.


Support the Project

If AIR Blackbox is useful to you, a star helps others find it.

Star on GitHub

Questions or feedback? Start a Discussion.


AIR Blackbox โ€” Agent Infrastructure Runtime
Compliance infrastructure for autonomous AI agents