All notable changes to the ChatBotKit Python SDK are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Packaging only: releases are now published to PyPI through GitHub Actions Trusted Publishing (OIDC), replacing the previous API-token flow. There are no changes to the SDK's public API or behaviour since 0.5.0.
- Agent cancellation.
agent.execute(...)andagent.complete(...)now accept anabort_signal(asyncio.Event); setting it stops the loop from the outside (timeout, shutdown, user stop) and exits with code1at the next event boundary. The built-inaborttool'shard=Trueoption now cancels the in-flight iteration immediately instead of being a no-op, bringing the Python agent to parity with the Node and Go SDKs.
- The agent system instruction now includes the "Be Responsive" guideline (prioritise new user input mid-run), matching the Node and Go SDKs.
- Secret token minting and request proxying.
client.secret.mint(...)/client.contact.secret.mint(...)mint a usable token from a secret (oauth/jwtsecrets only; owner-only) and return{ token, expiresAt }.client.secret.proxy(...)/client.contact.secret.proxy(...)proxy a request through a secret — the credential is injected server-side (it never leaves the platform) and the upstreamhttpx.Responseis returned as-is, success or error. AuthorizationRequiredError(exported fromchatbotkit; a subclass ofAPIError) carrying theurlthe user must visit to authorize. It is raised when a secret or connection has not been authenticated yet (409 authorization_required) — bymint, by any normal route, and byproxy(which otherwise passes every genuine upstream response through untouched).APIErrornow also carriesstatus_codeand the parseddatabody.
statelifecycle field on the skillset and ability resources, backed by the newResourceStateenum (enabled/disabled). A skillset or ability can now be toggled off without deleting it. Available on the create, update, fetch, and list types.
skill_serverintegration client (client.integration.skill_server) withlist,fetch,create,update, anddelete. The Skill Server integration exposes a skillset's abilities as a text-first HTTP API.siteclient underspace(client.space.site) withlist,fetch,create,update, anddelete, keyed by the parent space ID. A space site binds a<label>.chatbotkit.spacesubdomain to static content served from a space's storage.
- Re-generated types from the latest API spec, including the
aliasfield now present across integration create/update requests.
- Initial release of the async Python SDK for ChatBotKit.