AIR Controls
See what your AI agents actually do.
Runtime visibility for AI agents: action timeline, intent translation, anomaly detection, and guardrails. Part of the AIR Blackbox ecosystem.
pip install air-controls
Why
Companies are deploying AI agents that send emails, update CRMs, and run workflows. Nobody knows what these agents are actually doing. Logs exist but are useless. Observability tools are too technical. There's no "understandable layer."
AIR Controls fixes that.
Quick Start
LangChain / LangGraph
from air_controls import ControlsCallback
cb = ControlsCallback(agent_name="sales-bot")
chain.invoke({"input": "..."}, config={"callbacks": [cb]})
# That's it. Run `air-controls status` to see the dashboard.
Custom Agents (OpenAI / Anthropic API)
from air_controls import monitor
@monitor(agent_name="my-bot")
def process_customer(query):
response = openai.chat.completions.create(...)
return response
# Or as a context manager with manual logging:
with monitor(agent_name="my-bot") as m:
response = openai.chat.completions.create(...)
m.log("api_call", "POST /v1/chat/completions", "Generated AI response")
CrewAI
from air_controls import CrewMonitor
mon = CrewMonitor(agent_name="research-crew")
result = mon.run(crew)
AutoGen
from air_controls import AutoGenMonitor
mon = AutoGenMonitor(agent_name="coding-assistant")
mon.attach(agent)
CLI
air-controls status # Show all agents and recent activity
air-controls events sales-bot # Show event timeline for an agent
air-controls stats sales-bot # Detailed statistics
air-controls pause sales-bot # Kill switch — pause an agent
air-controls resume sales-bot # Resume a paused agent
air-controls verify # Verify audit chain integrity
What Gets Tracked
Every agent action is logged as a structured event:
- Action type: LLM call, tool use, API call, decision, error
- Human summary: Plain English translation of what happened
- Cost: Token usage and dollar cost per action
- Duration: How long each action took
- Risk score: Low / medium / high based on action type
- Audit chain: HMAC-SHA256 tamper-evident chain (shared with AIR Blackbox)
Features
| Feature | Status |
|---|---|
| Action timeline | ✅ Shipped |
| LangChain callback | ✅ Shipped |
| CrewAI monitor | ✅ Shipped |
| AutoGen monitor | ✅ Shipped |
| Custom agent decorator | ✅ Shipped |
| CLI dashboard | ✅ Shipped |
| Kill switch | ✅ Shipped |
| HMAC-SHA256 audit chain | ✅ Shipped |
| Web dashboard | 🔜 Coming |
| Intent translation | 🔜 Coming |
| Anomaly detection | 🔜 Coming |
| Guardrails & rate limits | 🔜 Coming |
How It Fits
AIR Blackbox (pre-deploy) → Scans code for EU AI Act compliance
AIR Controls (runtime) → Monitors what agents actually do
↓
Same HMAC-SHA256 audit chain
Local-First
Your agent telemetry never leaves your machine. Everything runs locally on SQLite. No cloud. No phone-home. No API keys needed. Set a custom DB path:
export AIR_CONTROLS_DB=/path/to/events.db
License
Apache 2.0
Links
- Website: airblackbox.ai
- GitHub: github.com/airblackbox/air-controls
- PyPI: pypi.org/project/air-controls
Metadata
Release files for air-controls 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| air_controls-0.1.0.tar.gz | 19.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| air_controls-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.9 kB
Release files / air_controls-0.1.0.tar.gz
| Download URL | air_controls-0.1.0.tar.gz |
|---|---|
| Size | 19.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
08858388ec7ecfc80acacc659fd8d63e0da79bdedce74eace43edc4473601122
|
|
BLAKE2b-256 checksum How to use checksums |
6395988b599053d408555ae83e8b03fb2e4a8172cbfdb86e55a8d09afe19d86f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / air_controls-0.1.0-py3-none-any.whl
| Download URL | air_controls-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1651e77650f490015a22dfb213da4e97abe674156c0fbad3e8802151f32eaed
|
|
BLAKE2b-256 checksum How to use checksums |
4e4ad5004a59d9941a09ebe8400f6c2056392c098c6a487c3714d3c33dec2ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Security for air-controls 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.