Adapter Guides
14 built-in adapters with versioned capability declarations, explicit lossiness, and signed proof of what is effective for this agent now.
How Adapters Work
Lease minted
A short-lived, scoped lease token is automatically created for the session.
Env vars injected
Compatibility environment variables are set (base URL + lease token) so your agent routes through AMC.
Traffic proxied
All model traffic flows through the AMC gateway, which signs and logs every interaction.
Evidence captured
The base path records process start, redacted stdout/stderr, and exit. Model events require verified gateway routing. Provider-native action events and decisions require a verified hook mode.
Tokens redacted
Lease tokens are automatically redacted from logs — no credential leakage.
Quick Setup
# Initialize adapter configuration
amc adapters init
# See available adapters
amc adapters list
# Detect which adapter runtimes are installed
amc adapters detect
# Prove what is declared and effective for one agent
amc adapters capabilities --agent my-agent --adapter generic-cli --json
Signed Capability Receipts
amc.adapter-capability-receipt.v1 binds the authoritative registry declaration to the adapter definition version, runtime/version probe, signed per-agent adapter selection, provider-hook state, effective event/control projection, known lossiness, verification result, SHA-256 receipt hash, and auditor signature.
amc adapters capabilities \
--agent my-agent \
--adapter claude-cli \
--out adapter-capabilities.json \
--json
verified means AMC-owned declaration evidence and the inspected proof inputs are valid for this subject. partial records a host/shell-only version probe or an absent/observe-only optional hook. fail_closed records missing runtime/version, invalid signed config, unverified or publisher-only plugin metadata, or hook drift. Plugins cannot self-certify; partner certification remains a separate lane. A valid partial receipt is proof of a limitation, not a green badge.
The receipt never includes prompts, tool arguments, model/tool output, stdout/stderr content, cwd, transcript paths, raw session identifiers, lease tokens, or secrets. The same contract is available from POST /api/v1/adapters/capability-receipts.
LangChain
Install
pip install langchain langchain-openai
Configure & Run
# Set your agent's adapter
amc adapters configure --agent my-langchain --adapter langchain-python --route /openai --model gpt-4o --mode SUPERVISE
# Run with evidence capture
amc adapters run --agent my-langchain --adapter langchain-python -- python my_chain.py
AMC injects OPENAI_API_BASE to route LangChain's OpenAI calls through the gateway. Works with any LangChain chain, agent, or tool.
LangGraph
Install
pip install langgraph langchain-openai
Configure & Run
amc adapters configure --agent my-graph --adapter langgraph-python --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-graph --adapter langgraph-python -- python my_graph.py
Captures state transitions, node executions, and tool calls across the graph. Same routing mechanism as LangChain — all OpenAI-compatible calls go through AMC.
CrewAI
Install
pip install crewai
Configure & Run
amc adapters configure --agent my-crew --adapter crewai-cli --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-crew --adapter crewai-cli -- python my_crew.py
Captures multi-agent crew interactions, task delegation patterns, and tool usage across all crew members.
AutoGen
Install
pip install pyautogen
Configure & Run
amc adapters configure --agent my-autogen --adapter autogen-cli --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-autogen --adapter autogen-cli -- python my_autogen.py
Works with AutoGen's multi-agent conversations, code execution, and group chat patterns.
OpenAI Agents SDK
Install
pip install openai-agents # Python
npm install openai # Node.js
Configure & Run
amc adapters configure --agent my-oai --adapter openai-agents-sdk --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-oai --adapter openai-agents-sdk -- node my_agent.mjs
Routes OpenAI Agents SDK calls through the AMC gateway. Captures function calling, tool outputs, and structured responses.
LlamaIndex
Install
pip install llama-index
Configure & Run
amc adapters configure --agent my-llama --adapter llamaindex-python --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-llama --adapter llamaindex-python -- python my_index.py
Captures query engine interactions, retrieval calls, and response synthesis from LlamaIndex agents and query pipelines.
Semantic Kernel
Install
dotnet add package Microsoft.SemanticKernel # C#
pip install semantic-kernel # Python
Configure & Run
amc adapters configure --agent my-sk --adapter semantic-kernel --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-sk --adapter semantic-kernel -- node my-agent.mjs
Routes Semantic Kernel's OpenAI/Azure OpenAI calls through the gateway. Works with plugins, planners, and memory.
Claude Code
Install
npm install -g @anthropic-ai/claude-code
Configure & Run
amc adapters configure --agent my-claude --adapter claude-cli --route /anthropic --model claude-sonnet-4-6
# Run with evidence capture
amc adapters run --agent my-claude --adapter claude-cli -- claude --model claude-sonnet-4-6
Gateway model events are conditional on the signed route. Provider-native tool requests and allow/deny/ask/corrective-steer outcomes require a verified control hook. Steer blocks the current call, returns bounded correction, performs no input rewrite, and requires a new fully governed action for retry. Check the signed capability receipt instead of inferring coverage.
Or use the quick wrap command:
amc wrap claude -- claude "analyze this codebase"
Gemini
Install
npm install -g @google/gemini-cli
Configure & Run
amc adapters configure --agent my-gemini --adapter gemini-cli --route /gemini --model gemini-flash --mode SUPERVISE
amc adapters run --agent my-gemini --adapter gemini-cli -- gemini --model gemini-flash
Gateway model events are conditional on the signed route. Provider-native pre-tool observation and allow/deny require a verified hook. Gemini has no verified native ask or corrective-steer result in the pinned contract, so AMC records the loss, denies either request, and never reports effective steer. Or wrap directly:
amc wrap gemini -- gemini chat
OpenClaw
Configure & Run
amc adapters run --agent my-openclaw --adapter openclaw-cli -- openclaw run
Or configure OpenClaw to route all sessions through the AMC gateway permanently for continuous evidence capture.
OpenHands
Configure & Run
amc adapters configure --agent my-openhands --adapter openhands-cli --route /openai --model gpt-4o --mode SUPERVISE
amc adapters run --agent my-openhands --adapter openhands-cli -- openhands
The base adapter path records process evidence and conditionally routed model traffic. It does not claim provider-native file/tool lifecycle coverage.
Python AMC SDK
Install
pip install agent-maturity-compass
Programmatic Integration
from amc import wrap_fetch, log_trace
# Option 1: Wrap fetch for automatic capture
fetch = wrap_fetch(original_fetch, {
"agent_id": "my-agent",
"gateway_base_url": "http://localhost:3210/openai",
})
# Option 2: Manual trace logging
log_trace({
"agent_id": "my-agent",
"type": "tool_call",
"data": {"tool": "read_file"}
})
Generic CLI Agent
Works with any command-line agent in any language:
# Node.js agent
amc adapters run --agent my-bot --adapter generic-cli -- node my-agent.js
# Python agent
amc adapters run --agent my-bot --adapter generic-cli -- python bot.py
# Custom binary
amc adapters run --agent my-bot --adapter generic-cli -- ./my-custom-agent
# Or use wrap for quick capture
amc wrap any -- python bot.py
OpenAI-Compatible API
For any agent that talks to an OpenAI-compatible API endpoint (vLLM, Ollama, Azure OpenAI, Together AI, etc.):
amc adapters configure --agent my-agent --adapter generic-cli --route /openai --model local-model --mode SUPERVISE
amc adapters run --agent my-agent --adapter generic-cli -- python my_agent.py
AMC injects the appropriate base URL environment variable so your agent's API calls route through the gateway.
Provider-Neutral Action Hooks
For Claude Code or Gemini CLI, install a project-local observer without hand-editing provider configuration:
# Preview exact files, then install
amc connect hooks install --provider claude-code --agent my-agent --dry-run
amc connect hooks install --provider claude-code --agent my-agent
# Verify or remove it
amc connect hooks status --provider claude-code
amc connect hooks health --provider claude-code
amc connect hooks lifecycle --agent my-agent --action <action-id>
amc connect hooks remove --provider claude-code
# Gemini CLI uses the same lifecycle
amc connect hooks install --provider gemini-cli --agent my-agent
hook:observe lease out of provider config with mode 0600, and removes only its own handlers and ignore block. Hook health separates an intact installation awaiting its first event from the latest receipt-verified event and fail-closed drift, expiry, malformed metadata, tamper, or unavailable encrypted evidence. A locked Vault requires amc vault unlock or AMC_VAULT_PASSPHRASE in non-interactive use. Last-observed time is historical context, not a current-liveness claim. The lifecycle view verifies immutable receipts under one stable action ID; missing, ambiguous, conflicting, cross-agent, out-of-order, or tampered evidence must fail closed. Raw tool input, output, error messages, cwd, transcript paths, and session IDs are not retained. Observation does not allow, deny, or steer actions.
In control mode, supported shell calls receive a compound-command blast-radius review across every bounded segment. Existing signed controls decide each step and the most restrictive outcome wins. Unsupported expansion, malformed syntax, or untrusted authority fails closed without partial policy output. The signed review records bounded canonical names, action classes, outcomes, reason codes, and counts; the raw command and argument values are not retained.
Opt-in signed control
With the local Studio/Bridge running, switch the same reversible installation to explicit control mode:
amc up
amc connect hooks install --provider claude-code --mode control --agent my-agent
allow, deny, and ask. Gemini CLI does not support ask, so AMC denies that outcome explicitly. Multi-user AMC quorum is never weakened to one provider-local prompt.
For a custom runtime that already emits a canonical action envelope, call the Bridge ingress directly:
# Mint a least-privilege observation lease
LEASE="$(amc lease issue --agent hook-agent --ttl 30m \
--scopes hook:observe --routes /hooks --models '*' --rpm 60)"
EVENT_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
curl -sS http://127.0.0.1:3212/bridge/hooks/aep/0.1/events \
-H "authorization: Bearer $LEASE" \
-H "content-type: application/json" \
--data "{\"aep_version\":\"0.1\",\"id\":\"evt-amc-001\",\"type\":\"action.requested\",\"time\":\"${EVENT_TIME}\",\"agent\":{\"slug\":\"example-agent\"},\"action\":{\"type\":\"tool_call\",\"id\":\"action-amc-001\"},\"tool\":{\"type\":\"native\",\"name\":\"Shell\"}}"
2583cff9380f8f0a459d52c7112b6105c46496ed. Observation remains separate from the opt-in AMC-owned control route; neither is an AEP conformance claim. Codex, Cursor, OpenCode, and other providers are not advertised until their per-tool hook contracts are pinned and fixture-tested. Raw observation bodies are hashed and discarded; encrypted redacted projections and signed receipts appear in Watch.
SDK Integration (Node.js)
For programmatic control in Node.js, use wrapFetch:
import { wrapFetch } from "agent-maturity-compass";
const fetchWithAmc = wrapFetch(globalThis.fetch, {
agentId: "my-openai-agent",
gatewayBaseUrl: "http://localhost:3210/openai",
forceBaseUrl: true,
});
// All OpenAI calls now flow through AMC
const response = await fetchWithAmc("https://api.openai.com/v1/chat/completions", {
method: "POST",
body: JSON.stringify({
model: "gpt-4o",
messages: [{ role: "user", content: "hello" }],
}),
});
Evidence Types Captured
| Evidence Event | Description | Trust Tier |
|---|---|---|
agent_process_started | Agent session initiated with adapter config | OBSERVED |
llm_request | Full LLM API request (model, tokens, messages) | OBSERVED |
llm_response | LLM response with token counts and latency | OBSERVED |
tool_call | Tool/function call with arguments | OBSERVED |
tool_result | Tool execution result | OBSERVED |
stdout | Agent standard output | OBSERVED |
stderr | Agent standard error | OBSERVED |
agent_process_exited | Agent session ended with exit code | OBSERVED |
amc score evidence-ingest --format openai-evals