Skip to main content

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

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)

Source distribution for air-controls 0.1.0
File Size Uploaded Provenance
air_controls-0.1.0.tar.gz 19.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for air-controls 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page