Skip to content

vindicara-inc/projectair

Repository files navigation

Project AIR™

Forensic reconstruction and incident response for AI agents.
When your AI agent goes off-script, AIR tells you what happened and proves it.

vindicara.io · Quickstart · Pricing · Blog

Python 3.12+ MIT Alpha


What AIR is

AIR writes a Signed Intent Capsule for every agent decision (llm, tool, finish). The Intent Capsule pattern is named in the OWASP Top 10 for Agentic Applications v12.6 as mitigation #5 for ASI01: an emerging pattern that binds the declared goal, constraints, and context to each execution cycle in a signed envelope. AIR's on-disk format is AgDR-compatible (AI Decision Record schema as published at accountability.ai), so capsules interoperate with the wider ecosystem. Each capsule is content-hashed with BLAKE3, signed with Ed25519, and chained to the previous step. The air CLI replays the chain, verifies every signature, and reports findings across two public OWASP taxonomies plus one AIR-native check:

  • OWASP Top 10 for Agentic Applications (8 of 10): ASI01 Agent Goal Hijack, ASI02 Tool Misuse & Exploitation, ASI04 Agentic Supply Chain Vulnerabilities (partial, MCP supply-chain risk only), ASI05 Unexpected Code Execution (RCE), ASI06 Memory & Context Poisoning, ASI07 Insecure Inter-Agent Communication, ASI08 Cascading Failures, ASI09 Human-Agent Trust Exploitation. ASI03, ASI10 on roadmap.
  • OWASP Top 10 for LLM Applications (3 categories): LLM01 Prompt Injection, LLM04 Model Denial of Service, LLM06 Sensitive Information Disclosure.
  • AIR-native: forensic-chain-integrity check for untraceable actions.

It is the layer that runs behind your guardrails. Prevention tools (Lakera, NeMo Guardrails, Bedrock Guardrails) try to stop bad things from happening. AIR produces the evidence of what actually happened, in a form security, legal, and insurance can act on.

Install

pip install projectair

This installs both the air terminal command and the airsdk Python library.

10-second sanity check

air demo

Generates a fresh signed capsule chain (13 steps, two baked-in ASI violations), verifies every signature, runs the detectors, and writes forensic-report.json next to you. No agent, no log file, no wiring required.

30-second usage

Instrument your LangChain agent:

from airsdk import AIRCallbackHandler
from langchain.agents import AgentExecutor

handler = AIRCallbackHandler(
    key="...",                           # Ed25519 signing key; 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 is appended to my-agent.log as a Signed Intent Capsule.

Replay the trace:

air trace my-agent.log

You get a console report: signatures verified, ASI01/ASI02 findings flagged, detector coverage shown honestly, and forensic-report.json emitted alongside.

What's in this repo

This is a monorepo.

  • packages/projectair/: the MIT-licensed projectair package published to PyPI. Ships the air CLI and the airsdk Python library. This is the public, supported AIR surface.
  • site/: the SvelteKit source for vindicara.io.
  • src/vindicara/: the older Apache-2.0 runtime security engine (policy evaluator, MCP scanner, agent IAM, drift monitor, compliance collector). This is now the engine substrate underneath AIR, not the public product surface. Retained for reference and for future integrations.

For the legacy five-pillar README that used to live here, see docs/legacy-vindicara-readme.md.

Status

Surface Status
BLAKE3 + Ed25519 Signed Intent Capsule chain (AgDR-format) implemented, tested
Tamper detection on chain replay implemented, tested
LangChain AIRCallbackHandler implemented
ASI01 Agent Goal Hijack implemented (heuristic)
ASI02 Tool Misuse & Exploitation implemented (regex)
ASI04 Agentic Supply Chain Vulnerabilities implemented (partial: MCP supply-chain risk only)
ASI05 Unexpected Code Execution (RCE) implemented (execution-semantics tool-name patterns)
ASI06 Memory & Context Poisoning implemented (heuristic: retrieval-output + memory-write scans)
ASI07 Insecure Inter-Agent Communication implemented (identity, nonce, replay, downgrade, descriptor-forgery checks)
ASI08 Cascading Failures implemented (oscillating-pair + fan-out burst checks over inter-agent messages)
ASI09 Human-Agent Trust Exploitation implemented (fabricated-rationale + manipulation-language scan preceding sensitive actions)
ASI03, ASI10 not yet implemented
AIR-01 Prompt Injection implemented, maps to OWASP LLM01
AIR-02 Sensitive Data Exposure implemented, maps to OWASP LLM06
AIR-03 Unrestricted Resource Consumption implemented, maps to OWASP LLM04
AIR-04 Untraceable Action implemented, AIR-native
JSON forensic export implemented
PDF forensic export implemented (fpdf2)
SIEM forensic export (ArcSight CEF v0) implemented
LangChain callback integration implemented
OpenAI SDK integration implemented
Anthropic SDK integration implemented
LlamaIndex / CrewAI / AutoGen not yet implemented
AIR Cloud (hosted dashboards, SIEM) not yet implemented

Pre-1.0. The detector heuristics will produce false positives and false negatives. The signed chain itself is production-grade cryptography. See the pricing page for what's planned next.

Contributing

Issues, traces that break the detectors, and new ASI detector PRs are welcome. Bugs and feature requests: https://github.com/vindicara-inc/projectair/issues.

License

  • packages/projectair/ and the projectair PyPI distribution: MIT. See packages/projectair/LICENSE.
  • src/vindicara/ (engine substrate, not published): Apache-2.0.

About

Project AIR: forensic reconstruction and incident response for AI agents. Signed AgDR decision records, OWASP ASI01-ASI10 detection, signed forensic evidence exports.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors