This release is a pre-release and may not be stable for production use.
Aion Python SDK
A Python library that serves agents over the Agent-to-Agent (A2A) protocol and
runs them on the Aion platform. Bring a LangGraph or
Google ADK agent, point an aion.yaml at it, and run aion serve — you get an
A2A endpoint with an agent card, streaming and conversation state, plus a
terminal client to try it out.
✨ Features
- Framework agnostic: LangGraph and Google ADK agents get the same configuration and the same A2A surface.
- A2A protocol compliant: agent card, streaming and conversation state without writing protocol code.
- Four lines of configuration: an agent needs one field — where to find it. Everything else has a default.
- No account required: runs fully locally; add credentials to reach the Aion model service and MCP tools.
- Multi-agent: a built-in proxy fronts several agents behind one endpoint,
and
aion chattalks to any of them from the terminal.
🚀 Getting started
Prerequisites
- Python 3.12, 3.13 or 3.14
- Node.js 22+ — only for the bundled
aion chatclient
🔧 Installation
Install the SDK plus the extra for the framework you use.
| Feature | uv |
pip |
|---|---|---|
Core SDK — the aion CLI and client libraries |
uv add aionto-sdk |
pip install aionto-sdk |
| LangGraph agents | uv add "aionto-sdk[langgraph-server]" |
pip install "aionto-sdk[langgraph-server]" |
| Google ADK agents | uv add "aionto-sdk[adk-server]" |
pip install "aionto-sdk[adk-server]" |
| LangGraph authoring | uv add "aionto-sdk[langgraph-authoring]" |
pip install "aionto-sdk[langgraph-authoring]" |
| ADK authoring | uv add "aionto-sdk[adk-authoring]" |
pip install "aionto-sdk[adk-authoring]" |
The *-authoring extras are the toolkit on its own — Aion models, tools and
messaging inside your agent — for agents that something other than aion serve
runs.
💡 Example
A LangGraph agent, served over A2A, with four lines of configuration.
-
Write the agent. A plain LangGraph graph, returned uncompiled: Aion compiles it and attaches the checkpointer, so conversation state comes for free.
# agent.py from typing import Annotated, TypedDict from langchain_core.messages import AIMessage, AnyMessage from langgraph.graph import END, START, StateGraph from langgraph.graph.message import add_messages class State(TypedDict): messages: Annotated[list[AnyMessage], add_messages] def reply(state: State) -> dict: question = state["messages"][-1].content return {"messages": [AIMessage(content=f"Echo: {question}")]} def create_graph() -> StateGraph: workflow = StateGraph(State) workflow.add_node("reply", reply) workflow.add_edge(START, "reply") workflow.add_edge("reply", END) return workflow
-
Point Aion at it.
pathis the only field an agent needs.# aion.yaml aion: agents: support: path: "./agent.py:create_graph"
-
Serve it. The port is assigned automatically and printed on startup.
aion serve -
Talk to it from another terminal.
aion chat
That is a complete local run — no account, no credentials. To connect the agent
to the platform, add AION_CLIENT_ID and AION_CLIENT_SECRET to a .env
beside the configuration.
For Google ADK the configuration is the same — see the ADK quickstart.
📚 Documentation
Full documentation lives at docs.aion.to:
- LangGraph quickstart · Google ADK quickstart
aion.yamlreference · Environment variables- CLI reference · Multiple agents and the proxy
- Troubleshooting
🤝 Contributing
Contributions are welcome. For development setup and how to run the test suites, see the Development Guide.
📄 License
This project is licensed under the MIT License. See the LICENSE file for more details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aionto_sdk-0.1.0rc1.tar.gz.
File metadata
- Download URL: aionto_sdk-0.1.0rc1.tar.gz
- Upload date:
- Size: 899.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47fb53bc2637c9b3bd1587c7f304f67abb6a74b06646e9345facf1f632a54d40
|
|
| MD5 |
46131f74e3bd04cbe5273ebf7445da31
|
|
| BLAKE2b-256 |
4e763a116e243b1ec5ff097e450910fc8a289c42714496b6618267ed0892b4d4
|
Provenance
The following attestation bundles were made for aionto_sdk-0.1.0rc1.tar.gz:
Publisher:
publish-python.yml on Terminal-Research/aion-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aionto_sdk-0.1.0rc1.tar.gz -
Subject digest:
47fb53bc2637c9b3bd1587c7f304f67abb6a74b06646e9345facf1f632a54d40 - Sigstore transparency entry: 2714233553
- Sigstore integration time:
-
Permalink:
Terminal-Research/aion-python-sdk@7903eaccbd968c623ba32dbd5519b459bdfe1d61 -
Branch / Tag:
refs/tags/py-v0.1.0rc1 - Owner: https://github.com/Terminal-Research
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python.yml@7903eaccbd968c623ba32dbd5519b459bdfe1d61 -
Trigger Event:
release
-
Statement type:
File details
Details for the file aionto_sdk-0.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: aionto_sdk-0.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0a8577b4f679d97ce4216cee9c07743d7abef77046994bee80d04e3e5be36b9
|
|
| MD5 |
b315277ed9b3906691bd70f86c577619
|
|
| BLAKE2b-256 |
2a5dc42ff81371abc117c09d2c57c43102603fe009bd2e8062b915fcedbd4b0d
|
Provenance
The following attestation bundles were made for aionto_sdk-0.1.0rc1-py3-none-any.whl:
Publisher:
publish-python.yml on Terminal-Research/aion-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aionto_sdk-0.1.0rc1-py3-none-any.whl -
Subject digest:
d0a8577b4f679d97ce4216cee9c07743d7abef77046994bee80d04e3e5be36b9 - Sigstore transparency entry: 2714233862
- Sigstore integration time:
-
Permalink:
Terminal-Research/aion-python-sdk@7903eaccbd968c623ba32dbd5519b459bdfe1d61 -
Branch / Tag:
refs/tags/py-v0.1.0rc1 - Owner: https://github.com/Terminal-Research
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python.yml@7903eaccbd968c623ba32dbd5519b459bdfe1d61 -
Trigger Event:
release
-
Statement type: