AGNT5 Python SDK
Build reliable AI agents and durable workflows in Python. The AGNT5 SDK provides typed components, workflow checkpoints, retries, streaming, tools, human-in-the-loop coordination, evaluation, and runtime observability.
Requirements
- Python 3.11 or newer
- An AGNT5 runtime for deployed execution
Installation
pip install agnt5
Quick start
Define a function. Type hints are used to derive its input and output schema.
from agnt5 import FunctionContext, function
@function(retries=3, backoff="exponential")
async def greet(ctx: FunctionContext, name: str) -> dict[str, str]:
ctx.logger.info("greeting user", extra={"name": name})
return {"message": f"Hello, {name}!"}
Register application components with a worker for runtime-backed execution:
import asyncio
from agnt5 import Worker
async def main() -> None:
worker = Worker(service_name="hello-python")
await worker.run()
asyncio.run(main())
Decorated functions, workflows, agents, tools, and scorers are registered when
their modules are imported. See examples/app.py for a
complete application entrypoint.
Invoke a deployed component
from agnt5 import Client
client = Client(
gateway_url="https://gw.agnt5.com",
api_key="agnt5_sk_...",
deployment_id="deployment-id",
)
result = client.run("greet", {"name": "Ada"})
print(result)
Client also supports asynchronous submission, status and result polling,
streaming events, batches, cancellation, workflow resume, chat, and evaluation.
Configuration can be supplied explicitly or through AGNT5_GATEWAY_URL,
AGNT5_API_KEY, and AGNT5_DEPLOYMENT_ID.
Core APIs
| API | Purpose |
|---|---|
@function |
Typed, retryable units of work |
@workflow |
Durable multi-step orchestration and checkpointing |
Agent and @agent |
Model and tool orchestration |
@tool |
Typed tools with generated schemas |
ctx.state |
Durable workflow and component state |
ctx.memory |
Conversation and application memory |
Client / AsyncClient |
Invoke and observe deployed components |
Worker |
Register components and serve runtime dispatch |
In async workflows, use await ctx.state.set_async(key, value) and
await ctx.state.delete_async(key). These await the runtime's durable
acknowledgment while allowing other workflows to run. Reads remain local via
ctx.state.get(key). The existing synchronous set and delete methods remain
supported, but block their calling thread while waiting for persistence.
The shared Rust runtime foundation lives in
agnt5dev/sdk-core. Vendor sandbox
adapters live in
agnt5dev/sdk-integrations.
Examples and documentation
examples/contains functions, workflows, agents, tools, streaming, HITL, MCP, chat, and evaluation examples.docs/contains SDK-specific guides.- AGNT5 documentation covers platform concepts and deployment.
Development
uv sync --all-groups
uv run ruff check src tests
uv run pytest tests/unit -q
uv build --sdist
Development builds use a sibling checkout of
sdk-core.
Contributing
See CONTRIBUTING.md. Report security issues according to SECURITY.md.
License
Licensed under the Apache License 2.0.
Response wait
Run and stream calls wait up to 5 minutes by default. Set the per-call wait to any value from zero to 24 hours. Zero returns a pending receipt immediately after acceptance. This controls response waiting, not the workflow execution deadline: accepted work continues when the wait expires or the client disconnects.
result = client.run("process_order", order, component_type="workflow", wait_timeout=60)
for event in client.stream_events("process_order", order, component_type="workflow", wait_timeout=60):
print(event.event_type, event.run_id)
wait_timeout uses seconds and also applies to async run and stream_events.
Run calls return 202 pending receipts directly, without additional polling.
Event streams emit stream.wait_expired when the wait expires, or
stream.detached for a 202 receipt. Use the run ID to read status/results.
Chunk-only stream raises RunError with the run ID when waiting ends.
The default HTTP timeout allows at least the wait plus 10 seconds, or the client
timeout if longer. Pass timeout=75 to set it explicitly. Python's HTTP timeout
limits individual network operations; wait_timeout bounds the gateway wait.
Release files for agnt5 0.13.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agnt5-0.13.5.tar.gz | 899.1 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agnt5-0.13.5-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| agnt5-0.13.5-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| agnt5-0.13.5-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 55.2 MB
Release files / agnt5-0.13.5.tar.gz
| Download URL | agnt5-0.13.5.tar.gz |
|---|---|
| Size | 899.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
513148c1cf5351454c0b7f43b14da0125c11311127934e921d27abcb05f16455
|
|
BLAKE2b-256 checksum How to use checksums |
912e34d71446bf61480bb78ce0098f08b22309d80b1a9d7080b780a93ddf4991
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / agnt5-0.13.5-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | agnt5-0.13.5-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 18.4 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a64cfc4ad6ef20adf98e55014ee0765cb0cd75f4415cd12c723aa106ae919268
|
|
BLAKE2b-256 checksum How to use checksums |
97226c48cb8d7d477219d8fcd3512044c0964e5a938d71ed5998f71707a23e0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / agnt5-0.13.5-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | agnt5-0.13.5-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 19.4 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
1278fdadf73d0afa78c665362a5ea27b8926160dde47ed49258b44bded334450
|
|
BLAKE2b-256 checksum How to use checksums |
cf28273a487a036a9cc802a0f83dcbb67292352504f73e2b9da47ab022572284
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / agnt5-0.13.5-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | agnt5-0.13.5-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 16.6 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
26a8b13c952f5dac0418bffa6eb7e5fd56d3dd594082440378cd9e09bb53e00d
|
|
BLAKE2b-256 checksum How to use checksums |
ceebd99bbfdd30f1ac8c818ba1f76ae9b569f8fdd3e5a52aea0b0e6db29e84f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|