Skip to main content

Agent Approval Interchange Specification (AAIS)

A transport-neutral contract for asking a human to authorize an exact agent action.

Specification 1.0 release candidate · support libraries 0.1.0 · Released · Python library 0.2.0 released

Specification · Security · Conformance · Integration guide · WebMCP mapping

AAIS lets a harness pause any chat, bot, subagent, or graph node and hand a portable approval request to a CLI, web UI, desktop app, policy service, or other trusted decision surface. The response is cryptographically bound to the exact action shown to the user, is idempotent, expires predictably, and cannot grant a broader scope than the harness offered.

{
  "aais": "1.0",
  "type": "approval.requested",
  "id": "evt_01JQ8QH80E4M7KJ6J7J7Y2RKSC",
  "occurred_at": "2026-08-30T18:00:00Z",
  "sequence": 41,
  "request": {
    "id": "apr_01JQ8QH80E4M7KJ6J7J7Y2RKSC",
    "created_at": "2026-08-30T18:00:00Z",
    "expires_at": "2026-08-30T18:10:00Z",
    "status": "pending",
    "origin": {"harness": "example", "session_id": "s-1", "run_id": "r-7"},
    "action": {
      "kind": "tool.call",
      "name": "shell.exec",
      "summary": "Run the JavaScript syntax check",
      "arguments": {"command": "node --check script.js"}
    },
    "action_digest": "sha256:...",
    "risk": {"level": "medium", "reasons": ["executes a local process"]},
    "choices": [
      {"decision": "approve", "scope": "once", "label": "Allow once"},
      {"decision": "approve", "scope": "session", "label": "Allow for this session",
       "scope_constraints": {"action_name": "shell.exec"}},
      {"decision": "deny", "scope": "once", "label": "Deny"}
    ]
  }
}

Scope

AAIS standardizes the authority-bearing boundary only:

  • exact-action requests, human-readable presentation, risk, and provenance;
  • explicit approve, deny, and cancel decisions with bounded scopes;
  • action digests, expiry, idempotency, stale-decision rejection, and receipts;
  • durable snapshots and ordered events for reconnecting clients;
  • adapter mappings for AG-UI interrupts, MCP hosts, HTTP/SSE, WebSocket, and stdio.

It does not define chat messages, model reasoning, tool discovery, agent profiles, workflow graphs, authentication, or a network transport. Those remain the responsibility of AG-UI, MCP, OAP, AGS, the host application, or another runtime protocol.

Support libraries

The repository contains release-candidate libraries with a shared API and conformance corpus for Python, TypeScript, Go, Rust, and Java. Each library can:

  • validate AAIS envelopes;
  • compute RFC 8785 / SHA-256 action digests;
  • create approval requests and decisions;
  • maintain a fail-closed, replay-safe pending-approval store;
  • emit and restore durable snapshots.

The Python library adds aais.store.FileApprovalStore in 0.2.0. It is a stdlib-only approval authority that several processes can share through one JSON file. It locks whole transactions across processes, writes atomically with fsync, quarantines corrupt state instead of reading it as empty, compacts resolved history with an explicit replay-gap signal, and tracks owners by PID, start time, and host so that PID reuse cannot keep a stopped owner alive. Storage is pluggable: ApprovalAuthority accepts any backend that implements the aais.backends protocols, and aais.testing provides a conformance kit for third-party backends. See the Python durable file store guide.

Published packages:

See release preparation for coordinates and verification.

Repository layout

Path Contents
spec/v1/ Normative specification, security, and conformance rules
schema/v1/ JSON Schema Draft 2020-12 envelope schema
conformance/ Shared valid and invalid fixtures
python/ Python 3.10+ support package
typescript/ Node.js 20+ TypeScript package
go/ Go 1.23+ module
rust/ Rust 1.85+ crate
java/ Java 17+ Maven library

Design principles

  1. The harness remains the authority. A UI conveys a decision; the harness revalidates it against current policy and current action state.
  2. Approval is exact by default. Every approval carries the digest of the canonical action reviewed by the user.
  3. Scopes are offered, never invented. A client may select only a choice present in the request.
  4. Reconnect is normal. Pending approvals are durable state, not a terminal prompt waiting on stdin.
  5. No hidden reasoning is required. AAIS carries concise activity, provenance, and risk explanations—not private chain-of-thought.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for agent-approval-interchange 0.2.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 agent-approval-interchange 0.2.0
File Size Uploaded
agent_approval_interchange-0.2.0.tar.gz 93.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-approval-interchange 0.2.0
File Interpreter ABI Platform
agent_approval_interchange-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 136.3 kB

Release files / agent_approval_interchange-0.2.0.tar.gz

Download URL agent_approval_interchange-0.2.0.tar.gz
Size 93.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bf4700b599b6aebd0b508a7d258f40fe973597f1171d60e1ed3c015d40e864cc
BLAKE2b-256 checksum
How to use checksums
8ac64fb07fb576dae4f0b4bcfa525dc772954c56218b3f8914b52c1903e93b7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / agent_approval_interchange-0.2.0-py3-none-any.whl

Download URL agent_approval_interchange-0.2.0-py3-none-any.whl
Size 42.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47eb4cf14cf28dae989991f46b5ef296de7b5569e57c2f374240400626a54d20
BLAKE2b-256 checksum
How to use checksums
65435e9e308a6ac31dc0cda73ec2c5c0de89c06f78d959359fa3ad4566d1e6e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

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