Project AIR: forensic reconstruction and incident response for AI agents. Turn agent traces into signed forensic records with BLAKE3 + Ed25519.
Project description
Project AIR
Forensic reconstruction and incident response for AI agents.
vindicara.io · Quickstart · Pricing
What this is
When an AI agent goes off-script, AIR tells you what happened and proves it. Every agent decision is written as a signed AgDR (AI Decision Record) with a BLAKE3 content hash and an Ed25519 signature, chained to the previous step. The air CLI replays that chain, verifies every signature, and reports OWASP Top 10 for Agentic Applications (ASI01 to ASI10) violations.
One pip install. One callback. A signed forensic record of every agent run.
Install
pip install projectair
This installs the air terminal command and the airsdk Python library.
Instrument your agent
from airsdk import AIRCallbackHandler
from langchain.agents import AgentExecutor
handler = AIRCallbackHandler(
key="...", # Ed25519 signing key (hex or PEM); auto-generated when omitted
log_path="my-agent.log",
user_intent="Draft a Q3 sales report from the CRM data",
)
agent = AgentExecutor(callbacks=[handler], ...)
Every step the agent takes (llm_start, llm_end, tool_start, tool_end, agent_finish) is appended to my-agent.log as a signed AgDR record.
Run the forensic trace
air trace my-agent.log
You get console output like this:
[AIR v0.1.0] Loaded 247 agent steps across 3 conversations.
[Chain verified] 247 signatures valid.
ASI01 Agent Goal Hijack detected at step 47
Tool `admin_delete_records` called with token overlap 0.03 against the user's stated intent.
ASI02 Tool Misuse detected at step 51
Tool `shell_exec` invoked with arguments matching pattern: shell metacharacters.
Detector coverage:
ASI01 Agent Goal Hijack implemented
ASI02 Tool Misuse implemented
ASI03 Prompt Injection not yet implemented
ASI04 Memory Poisoning not yet implemented
...
[Export] forensic-report.json
Session 1 scope
This release covers the minimum forensic surface end-to-end:
| Capability | Status |
|---|---|
| BLAKE3 + Ed25519 signed AgDR chain | implemented |
| Chain verification (tamper detection) | implemented |
| LangChain callback handler | implemented |
| ASI01 Agent Goal Hijack detector | implemented (heuristic) |
| ASI02 Tool Misuse detector | implemented (regex) |
| ASI03 through ASI10 detectors | not yet implemented |
| JSON forensic export | implemented |
| PDF forensic export | not yet implemented |
| SIEM forensic export | not yet implemented |
| Framework integrations beyond LangChain | not yet implemented |
The detectors are honest first-pass heuristics. They will produce false positives and false negatives. The signed chain itself is production-grade cryptography.
Why AIR exists
The prevention layer is crowded. Lakera, NeMo Guardrails, Bedrock Guardrails, and a dozen other tools sit in front of your agent and try to stop bad things from happening. None of them tell you what actually happened when an agent ran, and none of them produce evidence an auditor, a regulator, or an insurance carrier can use.
AIR is the forensic and incident response layer that runs behind those tools. It does not replace them. It gives you a signed record of every agent decision, mapped to a public taxonomy (OWASP ASI01 to ASI10), exportable to formats your SIEM, your compliance team, and your carrier already understand.
License
MIT. See LICENSE.
Contributing
This is pre-1.0 and the shape will evolve. Issues, traces that break the detectors, and new ASI detector PRs are all welcome at https://github.com/get-sltr/vindicara-ai.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file projectair-0.1.0.tar.gz.
File metadata
- Download URL: projectair-0.1.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec0fdc4ad757c8617a5d94dc9e14e0a87de8835137bd9948ce1186bc2c8cc08d
|
|
| MD5 |
4c3e86e2a91660eba6bea01c60714f25
|
|
| BLAKE2b-256 |
1a257f1c8f4960eac1657eb41933783d503069d903c1391facad41be4e0cd2e8
|
File details
Details for the file projectair-0.1.0-py3-none-any.whl.
File metadata
- Download URL: projectair-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60a61e5a05a3dfeea421c97c129c57d6709c28f535ec8fbec8d88faffaaca25
|
|
| MD5 |
52a10d1e59e1817d4e0625637d3c2130
|
|
| BLAKE2b-256 |
49d17783ae6d30719b48fb7000ba09113da1c677f61372662dc92c4c5c212f31
|