Compatibility

Any framework. Any protocol. One runtime you own.

Aarmos brokers the protocol your framework already emits.

You do not rewrite your agent, install an Aarmos-flavored fork of your framework, or import a framework-specific SDK. Aarmos sits below the framework, at the protocol layer, and enforces policy + writes a signed AVAR receipt on the way out.

Why protocol-first, not framework-first

  • Zero-line enrolment. Point a framework at eval "$(aarmos env)" and every outbound call runs under Aarmos policy. No import. No wrapper.
  • Runtime-invariant. The moat is the runtime, not the SDK. A per-framework SDK for every framework is a hedonic treadmill — the protocol set is finite.
  • No hosted request path. The proxy binds 127.0.0.1 and forwards to the client's original destination. No Aarmos-hosted service ever proxies or sees agent data.

Framework → protocol → on-ramp

FrameworkEmitsAarmos on-ramp
LangChain / LangGraphHTTP · OpenAI-compatible endpointaarmos proxy (zero code) · openapi adapter
AutoGenHTTP · OpenAI-compatible endpoint · Docker execaarmos proxy (zero code) · openapi adapter
CrewAIHTTP · OpenAI-compatible endpointaarmos proxy (zero code) · openapi adapter
OpenAI Swarm / AssistantsHTTP · OpenAI-compatible endpointaarmos proxy (zero code)
MCP client (any)Model Context Protocolmcp adapter
Custom scripts, cron, shell agentsHTTP · webhooks · URL schemesaarmos proxy · deeplink adapter

Aarmos ships no framework-specific package — @aarmos/langchain, @aarmos/autogen, @aarmos/crewai, @aarmos/swarm are explicitly banned as headline features. Zero lines beats three.

Zero-code on-ramp

# 1. Start the transparent local proxy
aarmos proxy

# 2. Point your framework at it — any framework
eval "$(aarmos env)"   # authenticated HTTPS_PROXY + HTTP_PROXY
# ...or, for OpenAI-compatible clients:
export OPENAI_BASE_URL=http://127.0.0.1:7681/v1   # default port; change with --port

# 3. Run your agent unchanged
python my_langchain_agent.py

▸ tool: openapi://api.openai.com/v1/chat  (adapter: proxy)  ✓ scoped
▸ tool: openapi://api.slack.com/post      (adapter: proxy)  ✓ scoped, confirm

✓ AVAR receipt: .aarmos/avar/9a4b…c1.avar
  verify: avar verify .aarmos/avar/9a4b…c1.avar

The proxy forwards to the ORIGINAL destination. It never routes through an Aarmos-hosted service, and it never phones home on the request path.