Skip to main content

EasyRemote

easynet-run-axon

Python SDK for EasyNet Axon — the Capability Control Plane for agent-native distributed execution.


What is this?

This is the Python surface for Axon, a protocol-level control plane that treats agent capabilities as first-class network objects — not raw RPC endpoints. Every ability you expose carries its own schema, trust posture, scheduling contract, and tenant isolation rules, enforced atomically at invocation time.

Why this matters: In traditional architectures, policy evaluation, node selection, rate limiting, and concurrency admission happen in separate systems with separate state. That creates a race window — OPA approves a call against nodes {A,B,C}, but the load balancer routes to Node D added between decisions. Axon collapses all six checks (tenant isolation, rate limit, policy, node selection, concurrency, circuit breaker) into a single atomic decision against the same state snapshot.

Note: The wheel is platform-tagged (not any) because it ships a native Dendrite bridge binary — the same C ABI that powers protocol-complete Axon gRPC calls without reimplementing protobuf encoding or streaming semantics in Python.

Install

pip install easynet-run-axon

Platform / Native Bundle Notes

The Python wheel contains native runtime + bridge payload and is therefore target-specific.

  • Wheels are published to PyPI per target. pip install on a host automatically selects the matching wheel.
  • For explicit cross-target workflows (CI + dev), use matching GitHub Release packs:
    • sdk-packs-aarch64-apple-darwin.tar.gz
    • sdk-packs-aarch64-apple-ios.tar.gz
    • sdk-packs-x86_64-apple-ios.tar.gz
    • sdk-packs-x86_64-unknown-linux-gnu.tar.gz
    • sdk-packs-aarch64-unknown-linux-gnu.tar.gz
    • sdk-packs-aarch64-linux-android.tar.gz
    • sdk-packs-x86_64-pc-windows-msvc.tar.gz
    • sdk-packs-x86_64-apple-darwin.tar.gz
  • If auto selection is not available (e.g., offline/air-gapped), install from pack file directly:
pip install /path/to/dist/sdk-packs/<version>/python/easynet_run_axon-<version>-cp*.whl
  • CI/source cross-target hints:
    • SDK_VERSION=<version> (optional; resolver checks this value and then falls back to 0.1.0)
    • EASYNET_DENDRITE_BRIDGE_PLATFORM=ios|android|linux|windows|macos
    • EASYNET_DENDRITE_BRIDGE_LIB=/abs/path/libaxon_dendrite_bridge.<ext>
    • EASYNET_DENDRITE_BRIDGE_HOME=/path/to/sdk-packs-<target>.tar.gz/extracted/package(例如 dist/sdk-packs/<version>/python 或其父级的统一目录)
    • EASYNET_DENDRITE_BRIDGE_SOURCE=local to auto-bind from source-tree release output (core/runtime-rs/dendrite-bridge/target/...) when running from repository checkout.

Quick Start

Expose an ability

from easynet_axon import ability, serve

@ability("easynet:///r/org/reg/agent.quote-bot/abilities/order.quote@1?tenant_id=tenant-test")
def quote(ctx, sku: str, qty: int = 1):
    return {"sku": sku, "price": 19.9 * qty}

serve("agent.quote-bot")

Invoke an ability

from easynet_axon import client

res = (
    client()
    .tenant("tenant-test")
    .ability("easynet:///r/org/reg/agent.quote-bot/abilities/order.quote@1?tenant_id=tenant-test")
    .call({"sku": "A1", "qty": 2})
)

Bootstrap a local runtime behind NAT

No public IP required. The SDK spawns a local Axon runtime that joins a federation Hub over outbound gRPC only:

from easynet_axon import start_server

srv = start_server(
    hub="axon://hub.easynet.run:50084",
    hub_tenant="tenant-test",
    hub_label="alice-macbook",
)

Capabilities

Core Protocol

  • Fluent builders — .tenant() → .principal() → .ability() → .call() are immutable and chainable.
  • Native Dendrite bridge — DendriteBridge loads the platform C ABI via ctypes; all Axon gRPC shapes (unary, server-stream, client-stream, bidi-stream) are available without gRPC codegen.
  • Semantic DSL — SemanticBridge and @ability_call decorator for ergonomic protocol invocation.
  • Subject binding — .principal(...) scopes invocation to a subject identity with automatic URI visibility mapping (pub/prv/org).

Ability Lifecycle

Full lifecycle management — not just invocation:

  • build_ability_descriptor() / export_ability() — define and register abilities with schemas
  • deploy_to_node() — install + activate on target nodes
  • list_abilities() / invoke_ability() / uninstall_ability()
  • forget_all() — bulk removal of all deployed abilities

MCP & A2A Protocols

  • MCP server — StdioMcpServer hosts JSON-RPC 2.0 tool endpoints over stdio.
  • MCP operations — deploy_mcp_list_dir(), list_mcp_tools(), call_mcp_tool_with_args(), update_mcp_list_dir()
  • A2A agent protocol — list_a2a_agents(), get_a2a_agent_card(), send_a2a_task() for inter-agent task dispatch.
  • Tool adapter — AbilityToolAdapter converts Axon abilities to OpenAI/Anthropic tool definitions with local handler registration.

Voice & Media Signaling

First-class voice call lifecycle and transport negotiation:

  • Call management: create, join, leave, end, watch events, report metrics
  • Transport sessions: create, set description, add ICE candidates, refresh lease
  • Codec profile negotiation

Federation

  • start_server() spawns a local Axon runtime and joins the Hub — all traffic is outbound.
  • FederationCaseKit for cross-network orchestration workflows.
  • Federated node discovery, heartbeat, and invocation dispatch.
  • Preset status: FederationCaseKit is currently the only first-party high-level federation preset helper; other SDKs expose federation through lower-level runtime/client surfaces only.

Remote Control & Orchestration

  • OrchestratorFactory / RemoteOrchestratorFactory for subprocess template building and capability deployment workflows.
  • Bundle reading, media persistence, CLI argument handling.

License

Apache-2.0 — see LICENSE.

Author

Silan Hu · silan.hu@u.nus.edu

Metadata

Release files for easynet-run-axon 0.43.3

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

Source distribution (sdist)

Source distribution for easynet-run-axon 0.43.3
File Size Uploaded
easynet_run_axon-0.43.3.tar.gz 6.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for easynet-run-axon 0.43.3
File
easynet_run_axon-0.43.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
easynet_run_axon-0.43.3-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
easynet_run_axon-0.43.3-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
easynet_run_axon-0.43.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
easynet_run_axon-0.43.3-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 61.9 MB

Release files / easynet_run_axon-0.43.3.tar.gz

Download URL easynet_run_axon-0.43.3.tar.gz
Size 6.9 MB
Tags Source
SHA-256 checksum
How to use checksums
3515da7d955eb1957924dfe2f5760bfd5335c1235122c0ce21b2be5c02a95363
BLAKE2b-256 checksum
How to use checksums
234d6c36453636738bc1bbd8b3a7b0bf646e8b39af167b32176917fb28dfe05d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / easynet_run_axon-0.43.3-py3-none-win_amd64.whl

Download URL easynet_run_axon-0.43.3-py3-none-win_amd64.whl
Size 6.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3ffd4a7047242193d245e8801f3a12db5e85313caf7c22c78038bce79ccdae1b
BLAKE2b-256 checksum
How to use checksums
fac1806f6f21eea4c6451f345c3dff2be7dc443bcfb808687081f61221d50403
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / easynet_run_axon-0.43.3-py3-none-manylinux_2_17_x86_64.whl

Download URL easynet_run_axon-0.43.3-py3-none-manylinux_2_17_x86_64.whl
Size 7.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
64a737efa6cd2a3c2931d6d6d3fe997279711014dc1cb98f02c929bb1f761066
BLAKE2b-256 checksum
How to use checksums
969d15a1796b684041a8594fe6beca29158c6686bc5a44e90ceb7af2fb094ef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / easynet_run_axon-0.43.3-py3-none-manylinux_2_17_aarch64.whl

Download URL easynet_run_axon-0.43.3-py3-none-manylinux_2_17_aarch64.whl
Size 7.5 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
898c27d9ad9203f02b1886ce59d15ce1cebaccc78672044197bf9a244364e481
BLAKE2b-256 checksum
How to use checksums
a7b62f0a4e6fbf2d1c3e16654d1afb5514e3350c1a0f202560ab37f0aa2e5ab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / easynet_run_axon-0.43.3-py3-none-macosx_11_0_arm64.whl

Download URL easynet_run_axon-0.43.3-py3-none-macosx_11_0_arm64.whl
Size 16.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7ad03ebff90f8acc7bba42c9ab7273756169b41cfdc9ca8254e81d2ef97d6702
BLAKE2b-256 checksum
How to use checksums
9634245ea4af90a58af53f2c1f78cd0cca9cd958c02eefa188cef0f465577889
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / easynet_run_axon-0.43.3-py3-none-macosx_10_9_x86_64.whl

Download URL easynet_run_axon-0.43.3-py3-none-macosx_10_9_x86_64.whl
Size 16.6 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2beadf03d9069a085908480794f569f839fffb7b9d07955a67bf0f3b936ab545
BLAKE2b-256 checksum
How to use checksums
1abc3bd9848b0a8e285f6a4db1a65930d9574abe14cc233c2881078bef205afb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.43.3 This release

6 release files

0.40.3

6 release files

0.36.9

4 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