axme-sdk-python
Python SDK for AXME - send intents, listen for deliveries, resume workflows. Durable execution without polling or webhooks.
Quick Start · Docs · Examples
Install
pip install axme
Requires Python 3.11+.
Quick Start
from axme import AxmeClient, AxmeClientConfig
client = AxmeClient(AxmeClientConfig(api_key="axme_sa_..."))
# Send an intent - survives crashes, retries, timeouts
intent = client.create_intent({
"intent_type": "order.fulfillment.v1",
"to_agent": "agent://myorg/production/fulfillment-service",
"payload": {"order_id": "ord_123"},
}, idempotency_key="fulfill-ord-123-001")
# Wait for resolution - blocks until done, even across process restarts
result = client.wait_for(intent["intent_id"])
print(result["status"])
Connect an Agent
for delivery in client.listen("agent://myorg/production/my-agent"):
intent = client.get_intent(delivery["intent_id"])
result = process(intent["payload"])
client.resume_intent(delivery["intent_id"], result)
Human Approvals
intent = client.create_intent({
"intent_type": "intent.budget.approval.v1",
"to_agent": "agent://myorg/prod/agent_core",
"payload": {"amount": 32000},
"human_task": {
"task_type": "approval",
"notify_email": "approver@example.com",
"allowed_outcomes": ["approved", "rejected"],
},
})
result = client.wait_for(intent["intent_id"]) # waits until human acts
8 task types: approval, confirmation, review, assignment, form, clarification, manual_action, override. Full reference: axme-docs.
Observe Lifecycle Events
for event in client.observe(intent["intent_id"]):
print(event["event_type"], event["status"])
if event["status"] in {"RESOLVED", "CANCELLED", "EXPIRED"}:
break
Agent Mesh - Monitor and Govern
# Start heartbeat - agent appears in dashboard with live health
client.mesh.start_heartbeat() # background thread, every 30s
# Report metrics after each task
client.mesh.report_metric(success=True, latency_ms=230, cost_usd=0.02)
# List all agents with health status
agents = client.mesh.list_agents()
# Kill a misbehaving agent - blocks all intents instantly
client.mesh.kill(address_id="addr_...")
# Resume it
client.mesh.resume(address_id="addr_...")
Set action policies (allowlist/denylist intent types) and cost policies (intents/day, $/day limits) per agent via dashboard or API. Agent Mesh overview.
Open the live dashboard at mesh.axme.ai or run axme mesh dashboard from the CLI.
Examples
export AXME_API_KEY="axme_sa_..."
python examples/basic_submit.py
More: axme-examples
Development
python -m pip install -e ".[dev]"
pytest
Related
| axme-docs | API reference and integration guides |
| axme-examples | Runnable examples |
| axp-spec | Protocol specification |
| axme-cli | CLI tool |
| axme-conformance | Conformance suite |
Metadata
Release files for axme 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| axme-0.2.0.tar.gz | 26.8 kB | Without provenance | Details for axme-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| axme-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for axme-0.2.0-py3-none-any.whl |
Total release size: 42.7 kB
Release files / axme-0.2.0.tar.gz
| Download URL | axme-0.2.0.tar.gz |
|---|---|
| Size | 26.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b82cd33ac66201512df952552d4b21626c0ed8c5eaf25df2aa0ec6922c60b845
|
|
BLAKE2b-256 checksum How to use checksums |
474da0357688cdca6252f2253c54019bb0c41230b6421b6eb547034fd75d1c0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / axme-0.2.0-py3-none-any.whl
| Download URL | axme-0.2.0-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a245bb6b7b056bd425addd937b248ba14d3b8254799e7dca6ea09d473ef02eea
|
|
BLAKE2b-256 checksum How to use checksums |
03ea82ef9b44660ee52f5824bbccf5d90a7a2d2ea0029238b0c13bcc01fd4614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for axme 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.