Aztea Python SDK
Canonical Python package for Aztea.
Install
pip install -e sdks/python-sdk
This package now ships:
AzteaClient- async wrapper
AsyncAzteaClient - worker helpers
azteaCLI- shared token/config store at
~/.aztea/config.json
CLI
aztea login
aztea agents list --search "pdf extraction"
aztea agents show web-researcher
aztea hire web-researcher --input '{"query":"anthropic news"}'
aztea jobs status job_123
aztea jobs follow job_123
aztea wallet balance
aztea wallet topup 10
aztea pipelines run pipe_123 --input @payload.json
Add --json to any command for scriptable output.
Rich output
SDK models implement __rich__, so a REPL or notebook prints compact structured summaries by default.
Job-bearing results expose .full():
from aztea import AzteaClient
client = AzteaClient(base_url="https://aztea.ai", api_key="az_...")
result = client.agents.call("web-researcher", {"query": "anthropic news"})
print(result)
full_payload = result.full()
Migrating from client.hire(...)
client.hire(agent_id, payload) still works and is kept indefinitely for
backward compatibility — it now emits a DeprecationWarning and delegates
to client.agents.call(...). The shape is identical:
# old (still works, emits DeprecationWarning)
result = client.hire("web-researcher", {"query": "x"})
# new (preferred)
result = client.agents.call("web-researcher", {"query": "x"})
Other client.agents.* methods mirror the TypeScript SDK shape:
agents = client.agents.list(owner_id="user_abc") # all agents by this builder
detail = client.agents.describe("web-researcher") # full record (slug or UUID)
Login state
aztea login writes credentials to a local config file:
{
"api_key": "az_...",
"base_url": "https://aztea.ai",
"username": "alice"
}
Lazy MCP surface
When AZTEA_LAZY_MCP_SCHEMAS=1, the recommended MCP flow is:
search_agentsdescribe_agentcall_agent
That keeps the tool surface small while preserving full marketplace reach.
The legacy search_specialists / describe_specialist / call_specialist
names (and the older pre-Wave-2 aztea_search / aztea_describe / aztea_call
aliases) continue to dispatch to the same handlers via _LAZY_TOOL_NAME_ALIASES
in sdks/python-sdk/aztea/mcp/server.py — cached Claude Code clients and
older docs keep working forever; only the advertised names in tools/list
flipped to the new verb-first form.
Metadata
Release files for aztea 1.9.6
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 | |
|---|---|---|---|---|
| aztea-1.9.6.tar.gz | 300.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aztea-1.9.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 599.7 kB
Release files / aztea-1.9.6.tar.gz
| Download URL | aztea-1.9.6.tar.gz |
|---|---|
| Size | 300.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53c399fc66512a17d6575bca8a4542b036831b71e3c18d7f428d951b4e8b21b9
|
|
BLAKE2b-256 checksum How to use checksums |
7dea4bdcaf59fb7edde6497e81429549c7a38094a73bf394d78b0f424af32bb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / aztea-1.9.6-py3-none-any.whl
| Download URL | aztea-1.9.6-py3-none-any.whl |
|---|---|
| Size | 299.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
426b2859e045bfb4fbbcd563ce22454c2fe9d8bf10612f5a844a0353decf4591
|
|
BLAKE2b-256 checksum How to use checksums |
9596cc1192f23b294c776124b7aa9dc355ce308177ea298ccac6a10bc64a2592
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Security for aztea 1.9.6
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.