Governance-native runtime for AI agents β open-source core.
curl -sSf https://install.ai-agent-assembly.dev | shThis downloads and installs the aasm binary to ~/.local/bin. Requires a
published release.
The installer script lives at scripts/install-cli.sh.
# Pin a specific version
AASM_VERSION=v0.1.0 curl -sSf https://install.ai-agent-assembly.dev | sh
# Custom install directory
AASM_INSTALL_DIR=/usr/local/bin curl -sSf https://install.ai-agent-assembly.dev | shagent-assembly is the core runtime that brings governance to AI agents at
scale. It provides a three-layer interception model β eBPF kernel hooks, a
sidecar proxy, and an SDK shim β backed by a policy engine and audit trail.
The Cargo workspace declares 14 members in the top-level Cargo.toml. Two additional eBPF-target crates live alongside but are intentionally outside the workspace because they compile for the bpfel-unknown-none target.
| Crate | Role |
|---|---|
aa-core |
Pure logic, no_std-compatible domain types and traits |
aa-proto |
Protobuf message types β single source of truth for the wire format |
aa-runtime |
Tokio async runtime wrapper and agent lifecycle |
aa-ebpf |
eBPF orchestrator (loads probes/programs via aya-build) |
aa-ebpf-common |
Shared types between user-space and eBPF programs |
aa-proxy |
Sidecar HTTPS interception proxy (MitM with per-host CA) |
aa-ffi-python |
Python FFI bindings via PyO3 |
aa-ffi-node |
Node.js FFI bindings via napi-rs |
aa-ffi-go |
Go FFI bindings via cgo |
aa-wasm |
WebAssembly target via wasm-bindgen |
aa-gateway |
Control plane β policy enforcement, agent registry, budget tracking |
aa-api |
HTTP presentation layer with OpenAPI spec generation (utoipa) |
aa-cli |
aasm command-line tool |
conformance |
Cross-SDK protocol conformance test harness |
These two are built by aa-ebpf/build.rs (via aya-build) for the BPF target β they are not part of the host workspace and cannot be selected with cargo -p:
| Crate | Role |
|---|---|
aa-ebpf-probes |
Userspace probe loaders (uprobes for SSL libraries) |
aa-ebpf-programs |
eBPF programs compiled to BPF bytecode (bpfel-unknown-none) |
π§ Alpha β v0.0.1 β API is not stable. Do not use in production.
- Rust stable (β₯ 1.75)
protocβ Protocol Buffers compiler (brew install protobufon macOS,apt-get install protobuf-compileron Debian/Ubuntu); required byaa-protoandaa-gatewaybuild scripts- cargo-nextest for running tests
- cargo-deny for dependency checks
- Lefthook for git hooks
- Linux only:
pkg-configandlibssl-dev(oropenssl-develon RHEL-family) for native TLS inaa-proxy; eBPF crates additionally require a recent kernel with BTF and a nightly Rust toolchain (seeaa-ebpf/README.md)
Demo recording:
asciinema play docs/quickstart.castPrefer Codespaces?
The
.devcontainer/config installs all dependencies automatically.
Get from a fresh clone to a verified local environment in under 10 minutes.
git clone https://github.com/AI-agent-assembly/agent-assembly.git
cd agent-assemblymake dev-setupInstalls required toolchains, clones the SDK polyrepos as siblings, installs git hooks, and builds the workspace. Expected output (abbreviated):
Cloning python-sdk ...
Cloning node-sdk ...
Cloning go-sdk ...
pre-commit installed at .git/hooks/pre-commit
Compiling aa-core v0.0.1 ...
Finished `dev` profile target(s) in 167s
dev-setup complete. Run 'make dev-verify' to validate.
make dev-verifyRuns smoke tests across all SDK repos in parallel then checks gateway health. Expected output:
dev-verify: running SDK smoke tests in parallel ...
[1/4] python smoke ... OK (2s)
[2/4] node smoke ... OK (18s)
[3/4] go smoke ... SKIP (internal/smoke/ not found in go-sdk)
[4/4] gateway health ... OK (1s)
dev-verify passed (22s total)
Timing: ~4 minutes on a 2024 MacBook Pro M3 (first run; subsequent runs skip already-installed tools).
- SDK documentation β Python, Node.js, and Go SDK guides
- Architecture Overview β three-layer interception model
- Policy examples β reference governance policies
Run aa-runtime as a sidecar against a placeholder agent using the
examples/docker-compose stack:
# 1. Build the workspace (first time only)
cargo build --workspace --exclude aa-ebpf
# 2. Launch the sidecar + a stub agent container
cd examples/docker-compose
AA_API_KEY=dev-local-key docker compose upThe sidecar exposes:
- The agent IPC socket at
/tmp/aa-runtime-my-agent-001.sock - Readiness probe at
http://localhost:8080/ready
To run only the governance gateway (without Docker), point it at one of the bundled YAML policies:
# Listens on 127.0.0.1:50051 by default; SDK shims and aa-proxy connect over gRPC.
cargo run -p aa-gateway -- --policy policy-examples/low-risk.yamlpolicy-examples/{low,medium,high}-risk.yaml are reference policies β pick one
or write your own following the same schema.
Replace the agent-stub service in
examples/docker-compose/docker-compose.yml with your own SDK-based agent
image once python-sdk, node-sdk, or go-sdk is wired into your project.
agent-assembly/
βββ aa-core/ # Domain types (no_std)
βββ aa-proto/ # Protobuf message types (wire format)
βββ aa-runtime/ # Async runtime + agent lifecycle
βββ aa-ebpf/ # eBPF orchestrator (workspace member)
βββ aa-ebpf-common/ # Shared user/kernel types (workspace member)
βββ aa-ebpf-probes/ # Userspace probe loaders (out-of-workspace, BPF target)
βββ aa-ebpf-programs/ # eBPF programs (out-of-workspace, BPF target)
βββ aa-proxy/ # Sidecar HTTPS proxy
βββ aa-ffi-python/ # Python bindings (PyO3)
βββ aa-ffi-node/ # Node bindings (napi-rs)
βββ aa-ffi-go/ # Go bindings (cgo)
βββ aa-wasm/ # WASM target
βββ aa-gateway/ # Control plane (policy, registry, budget)
βββ aa-api/ # HTTP API + OpenAPI
βββ aa-cli/ # CLI tool (aasm)
βββ conformance/ # Protocol conformance test harness
βββ proto/ # Protobuf source (.proto files)
βββ openapi/ # Generated OpenAPI v1 spec
βββ schemas/ # JSON schemas (compatibility matrix)
βββ dashboard/ # Community web UI (React + TypeScript)
βββ docs/ # mdBook contributor documentation
βββ policy-examples/ # Reference governance policies
The contributor-facing documentation is published as an mdBook. Sources live under docs/src/. Build it locally with:
cargo install --locked --version 0.5.2 mdbook
cargo install --locked --version 0.17.0 mdbook-mermaid
mdbook serve docs --open| Chapter | Description |
|---|---|
| Introduction | Book overview and audience |
| Architecture Overview | Crate dependency graph, three-layer interception, IPC, sidecar lifecycle, policy evaluation |
| API Reference | rustdoc generation flow and per-crate API surface map |
| Compatibility Matrix | Which aa-runtime versions work with which SDK versions |
| Versioning Policy | Protocol semver rules, breaking-change classification, deprecation lifecycle |
| Protocol Changelog | Wire-protocol change log |
| Migration Template | Guidance for moving between protocol versions |
| Benchmarks β Baseline | Performance baseline numbers |
| Benchmarks β Policy Check p99 | Latency SLA evidence |
Licensed under the Apache License, Version 2.0.