1. Install
2. Start with a Plain LangGraph Graph
Createagent.py:
3. Configure aion.yaml
4. Optional: Add Control Plane Credentials to .env
.env only when running outside Aion-hosted deployments or when testing
local control plane connectivity. For more information, see
Environment Variables.
5. Start Services
6. Optional: Validate Endpoints
The proxy prints its address on startup — by default the first free port from8000:
7. Test Interactively
8. Optional: Reach for aion.langgraph.authoring
The graph above runs behind Aion as a plain LangGraph graph. Reach into
aion.langgraph.authoring when you want deeper Aion-aware protocol integration
in your graph code — request-scoped runtime context, fluent messaging helpers,
custom stream events, structured response authoring. It ships with
[langgraph-server], so it is already importable.
9. Choose an Authoring Mode
There are three useful ways to write LangGraph agents behind Aion:- Plain LangGraph
Use
state.messagesand let Aion infer the reply from normal LangGraph output. - Hybrid A2A
Read
a2a_inboxand seta2a_outboxwhen you want direct protocol control. - SDK-aware LangGraph
Use the
aion.langgraph.authoringruntime context, event router, fluent messaging helpers, model-service helpers, and MCP tool loading.
10. Introduce AionRuntimeContext When Needed
Theaion.langgraph.authoring authoring surface is designed to live in
LangGraph’s invocation-scoped runtime context instead of forcing transport
metadata into your graph state:
state.messages while Aion-specific routing, history, and outbound buffering
stay request-scoped.
11. Understand Message Mapping
Once the graph is running, Aion will:- accept inbound A2A requests from clients or distributions
- map conversational text into
state.messages - optionally expose request-scoped Aion context through LangGraph runtime context and hybrid A2A surfaces
- use the SDK response buffer first, then
a2a_outbox, then framework-native fallback to determine the outbound reply - return the final A2A response to the caller or distribution