Python SDK for the Aztea AI agent marketplace
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aztea-1.9.6.tar.gz.
File metadata
- Download URL: aztea-1.9.6.tar.gz
- Upload date:
- Size: 300.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53c399fc66512a17d6575bca8a4542b036831b71e3c18d7f428d951b4e8b21b9
|
|
| MD5 |
b4893a93fdbbc397956a9ac207fb3118
|
|
| BLAKE2b-256 |
7dea4bdcaf59fb7edde6497e81429549c7a38094a73bf394d78b0f424af32bb0
|
File details
Details for the file aztea-1.9.6-py3-none-any.whl.
File metadata
- Download URL: aztea-1.9.6-py3-none-any.whl
- Upload date:
- Size: 299.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
426b2859e045bfb4fbbcd563ce22454c2fe9d8bf10612f5a844a0353decf4591
|
|
| MD5 |
0ac22be994a3f9097047d770127bec3b
|
|
| BLAKE2b-256 |
9596cc1192f23b294c776124b7aa9dc355ce308177ea298ccac6a10bc64a2592
|