Releases

What's new in AgentOS

What changed in the AgentOS platform and its TypeScript and Python SDKs, newest first. RSS

  1. 0.4.0

    Python SDK22 September 2026

    Added

    • Control plane. Every workspace operation as a typed method with keyword arguments: aos.agents, aos.runs, aos.approvals, aos.evals, aos.schedules, aos.resources, aos.alerts, aos.reports, aos.tools, aos.folders, aos.conversations, aos.members, aos.api_keys, aos.notifications, aos.integrations, aos.marketplace, aos.fleet and aos.workspaces (56 methods). Generated from the server's schemas; see the reference.
    • workspace argument and AGENTOS_WORKSPACE, for control-plane calls with a personal key.

    Changed

    • The README is rewritten as a complete guide.
  2. 0.3.0

    Python SDK22 September 2026

    Breaking

    • invoke() returns an InvokeResult (run_id, status, output, duration_ms, session_id, approval_id, input_request) instead of a dict. status is "completed", "awaiting_approval" or "awaiting_input"; a paused run used to look like a success with an empty output.
    • emit_llm_response() takes token counts as usage= (was token_usage=).
    • The LangChain handler records a span tree instead of tasks and events.
    • Licence is MIT (was Apache-2.0), matching the TypeScript SDK.

    Added

    • Configuration from the environment: AGENTOS_API_KEY, AGENTOS_AGENT_ID, AGENTOS_BASE_URL, AGENTOS_DISABLED. agent_id is optional and can be passed per call, for workspace keys.
    • invoke_stream(), reply(), and the full invoke API: session_id, start_session, history, external_user_id, parent_run_id, test.
    • Run is a context manager: completed when the block ends, failed with the traceback if it raises.
    • run.cancel(), run.complete(usage=...) for token counts, and span.fail().
    • client.flush() and client.shutdown(). Queued events are also sent automatically at interpreter exit.
    • Retries with backoff for transient failures; a 429's Retry-After is honoured. Invokes are only retried on 429, since the agent may already be running.
    • AgentOSTransientError, AgentOSConfigError, status on every error, and retry_after on AgentOSRateLimitError.
    • Options: max_queue_size, max_retries, on_error, http_client.
    • start_run(parent_run_id=...).
    • invoke_stream() yields typed events (InvokeStreamEvent) and skips event types it doesn't know.
    • Ships py.typed, so type-checkers use the SDK's type hints.

    Fixed

    • invoke() timed out after 10 s, while hosted runs can take 300 s.
    • emit() could send a batch synchronously on the caller's thread. Sending now always happens in the background.
    • Events were lost silently when a send failed. Transient failures now stay queued and retry; rejected batches are dropped and counted in run.dropped_events.
    • The event queue is bounded. When it fills, debug and info events are dropped before warnings and errors.
    • Payloads with values JSON can't encode (datetimes, SDK objects) are sent as text instead of failing.
    • A span with no parent or no kind sent those fields as null, which the server rejects, so the whole batch of events was lost. They are now left out.
    • The LangChain handler reported every model as "llm" and every tool as "tool", and made a network call on each chain step.
  3. 0.2.1

    Python SDK13 May 2026
    • Prompt variables and parent run ids on invoke().