Skip to main content

scitrera-aether-ag2

ag2 (AutoGen 2) adapter for Scitrera Aether, the distributed control plane for multi-agent systems. Wrap any ConversableAgent, host it on Aether, and reach it from another process as if it were local — or let Aether spin it up on demand when a message arrives for an offline agent.

Install

# from the sdk/python-ag2 directory
pip install scitrera-aether-client   # Aether Python client
pip install -e ".[dev]"              # this package + dev deps

Build aetherlite

The examples and E2E tests need the aetherlite binary (a single-binary all-in-one Aether gateway for local development). You can get from the latest release, or build from source:

cd ../../server
go build -o aetherlite ./cmd/aetherlite

The binary is expected at server/aetherlite relative to the repo root. Override with AETHERLITE_BIN=/path/to/binary.

Quickstart

The two_agent_remote example spawns its own gateway, hosts an EchoAgent, and calls it over Aether in under 10 seconds:

cd sdk/python-ag2
./.venv/bin/python -m scitrera_aether_ag2.examples.two_agent_remote

Expected output:

Reply from remote agent: echo: hi

Source: scitrera_aether_ag2/examples/two_agent_remote.py

Concepts

  • AetherAgentHost — server side. Wraps a ConversableAgent, connects to Aether as an agent principal, and dispatches incoming RequestEnvelope messages to ag2's AgentService. Optionally persists conversation history via checkpoints and emits telemetry metrics.

  • AetherRemoteAgent — client side. Implements the ag2 Agent protocol locally; on a_receive() it serialises the conversation turn into a RequestEnvelope, sends it over Aether to the host, streams responses back, and handles tool-call continuations and HITL prompts.

  • AetherAg2Orchestrator — lazy spin-up. Extends the Python SDK's MultiprocessOrchestrator. When Aether's dispatcher sends a TaskAssignment for an offline agent, the orchestrator reads launch_params["factory"] (a module:callable string), builds an env dict, and calls spawn_module() to launch python -m scitrera_aether_ag2.host_entrypoint as a subprocess.

HITL, tool-calls, streaming

HITL: pass hitl_mode="sender" to AetherRemoteAgent to forward human-input prompts to sender.get_human_input(), or "auto_skip" to silently skip them. Default "raise" raises HITLRequired.

Tool calls: AetherRemoteAgent detects tool calls in the remote reply that name tools registered on the sender, executes them locally, and sends a continuation request automatically (up to max_continuations=8).

Streaming: set iostream_streaming=True (default) to forward streaming text chunks to ag2's IOStream as StreamEvents as they arrive.

Tests

# Unit tests only (no gateway needed):
cd sdk/python-ag2
./.venv/bin/python -m pytest

# Full E2E suite (spawns aetherlite):
AETHER_RUN_E2E=1 ./.venv/bin/python -m pytest -v

Status

Alpha. The v1 surface is stable enough for experimentation. Known gaps and deferred items are tracked in .slop/ag2-adapter-tech-debt.md.

Metadata

Release files for scitrera-aether-ag2 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scitrera-aether-ag2 0.0.2
File Size Uploaded
scitrera_aether_ag2-0.0.2.tar.gz 46.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scitrera-aether-ag2 0.0.2
File Interpreter ABI Platform
scitrera_aether_ag2-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 85.5 kB

Release files / scitrera_aether_ag2-0.0.2.tar.gz

Download URL scitrera_aether_ag2-0.0.2.tar.gz
Size 46.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e2cb2cc260279fe38f59716910e32653a4029e4d83af953cdb8351cc2b485c82
BLAKE2b-256 checksum
How to use checksums
5fc4abdcc2532dabdfb19f3d5cad4fcade17aadfbe6656f6cececb6df7721f54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Release files / scitrera_aether_ag2-0.0.2-py3-none-any.whl

Download URL scitrera_aether_ag2-0.0.2-py3-none-any.whl
Size 38.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06429c6a0f32ad80453e81b0d231feb28996bf107bbc4f6d4002c65461e9be3a
BLAKE2b-256 checksum
How to use checksums
dbc790cc7e61667da9c5da050ae25a57445e07ebb886bd7abbd919f1d25e271b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page