Skip to main content

Production Python SDK for the Managed Agent API

Project description

Python SDK

Production Python SDK for the Managed Agent API.

Published on PyPI: cloudsway-agent (v1.0.6)

Install

pip install cloudsway-agent

For local development from this repository:

cd sdk/python
pip install -e .

Quick start

from agent_api import AgentAPI

client = AgentAPI(
    api_key="sk-...",
    base_url="https://api.agentsway.dev",
)

response = client.responses.create(
    preset="pro-search",
    input="What changed in AI this week?",
)
print(response["output_text"])
client.close()

Environment variables AGENT_API_KEY and AGENT_API_BASE_URL are used by default. The default base URL is https://api.agentsway.dev when neither argument nor env is set. AsyncAgentAPI is available for async integrations.

Package layout

src/agent_api/
  client.py            # synchronous AgentAPI
  async_client.py      # AsyncAgentAPI
  errors.py            # typed exceptions
  pagination.py          # cursor pagination
  streaming.py           # SSE parser
  _http.py               # retries, timeouts, User-Agent
  resources/             # responses, models, presets, tools, volumes, skills
  types/                 # TypedDict contracts

Resources

Resource Methods
client.responses / client.agent create, list, list_page, list_iterator, retrieve, cancel, list_children, list_events
client.models list
client.presets list
client.tools list
client.volumes list, create, retrieve, update, delete, list_entries, search_entries, read_file, write_file, delete_path, reconcile_usage, create_directory, download_archive, summarize, read_lines, patch_lines, grep
client.skills list, create, discover, focus, create_dev, update_file, retrieve, update, archive, delete, accept_dev, discard_dev, list_files, read_file, write_file, delete_file

Durable Volumes

volume = client.volumes.create(name="research-notes")

client.volumes.write_file(volume["volume_id"], "notes/summary.md", "# Summary\n")
file = client.volumes.read_file(volume["volume_id"], "notes/summary.md")
binary = client.volumes.read_file(volume["volume_id"], "assets/logo.png", format="raw")

response = client.agent.create(
    preset="pro-search",
    input="Use the attached workspace volume.",
    volume_id=volume["volume_id"],
)

Skills

from agent_api import local_skill_from_directory

skill = client.skills.create(name="research-helper")
client.skills.write_file(skill["skill_id"], "SKILL.md", "# Research helper\n")

local_skill = local_skill_from_directory("./skills/research-helper")
response = client.responses.create(
    input="Use the research helper.",
    skills=[{"skill_id": skill["skill_id"], "branch": "main"}],
    local_skills=[local_skill],
)

Production features

  • Retries: exponential backoff for network failures, 429, and 5xx (default 2 retries).
  • Timeouts: 10 minute default; 1 hour for streaming (override with timeout / stream_timeout).
  • Typed errors: AuthenticationError, RateLimitError, NotFoundError, etc.
  • Pagination: list_page() and list_iterator() for cursor-based history.
for item in client.responses.list_iterator(limit=20):
    print(item["id"], item["status"])

Model routing

response = client.responses.create(
    input="Compare two cloud providers for ML workloads.",
    model_routing="auto",
    routing_strategy="cost-effective",
    models=["openai/gpt-5.4", "google/gemini-3-flash-preview"],
)

Use model ids in vendor/model form (values from client.models.list()). Omit model_routing (or set "chain") for strict fallback order via model / models. routing_strategy is only valid when model_routing is "auto".

Streaming

for event in client.responses.create(
    preset="fast-search",
    input="Summarize today's AI news.",
    stream=True,
):
    if event["type"] == "response.output_text.delta":
        print(event.get("delta", ""), end="")

Client options

client = AgentAPI(
    api_key="sk-...",
    base_url="https://api.agentsway.dev",
    timeout=600.0,
    stream_timeout=3600.0,
    max_retries=2,
)

Tests

PYTHONPATH=src python -m unittest discover -s tests -p 'test_agent_api.py' -v
AGENT_API_INTEGRATION=1 AGENT_API_KEY=sk-... AGENT_API_BASE_URL=https://api.agentsway.dev \
  PYTHONPATH=src python -m unittest tests.test_integration -v

Scope

The SDK covers the public agent/Responses API, durable volume APIs, skill APIs, and discovery endpoints. Console auth, workspace administration, and internal audit records are intentionally out of scope.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudsway_agent-1.0.6.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloudsway_agent-1.0.6-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file cloudsway_agent-1.0.6.tar.gz.

File metadata

  • Download URL: cloudsway_agent-1.0.6.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cloudsway_agent-1.0.6.tar.gz
Algorithm Hash digest
SHA256 1abaa694d5d806b3d64fedfa2e9beed3dbd266f8b1c5de567727f65129e11a32
MD5 770da9145b4a369d6fe317876ca40405
BLAKE2b-256 1ec05f8414ba0a396d5c5f3bf8c9130f74584f3a5cfb95875ebceb35cd9f272e

See more details on using hashes here.

File details

Details for the file cloudsway_agent-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for cloudsway_agent-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c3e7b66cb2d5f131ea747b1b208e976edabcbef0aa8a8fb248f1002c37642764
MD5 8baf3c436fb5f5502d1f4ff14a6ed046
BLAKE2b-256 205408dfee3b210c27f0a3f2f8dab5f5a9747077abaac25f6690a2597daab5ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page