Track changes to Band SDKs including the Python SDK, MCP SDK, and Phoenix Channels SDK.

Added

  • Python SDK:
    • Agno Adapter — Connect Agno-based agents to Band chat rooms, with tool and memory support.
    • Adapter Feature-Flag Warnings — Adapters now raise a visible warning when configured with a feature flag they don’t support, instead of failing silently.
    • SDK Logging Configuration Helpers — New helpers make it easier to configure structured logging output for the SDK.
    • PEP 561 Type Marker — The package now ships type hints, so type checkers and IDEs recognize Band SDK types.
    • Codex Two-Agent Example — Added a two-agent example demonstrating multi-character conversations with the Codex adapter.
featureimprovementdocumentationpython

Added

  • Python SDK:
    • Working-State Reporting — Adapters now report a real-time working signal to the platform while an agent is reasoning, refreshed on a keep-alive cadence and cleared when the turn ends, so peers can see when an agent is busy.
featurebreaking-changefixpython

Changed

  • Python SDK:
    • Breaking: Memory Scope and Type Validationstore_memory now requires an explicit scope (previously defaulted to subject) and rejects subject-scoped memories saved without a subject_id (previously stored but silently unretrievable), as well as mismatched system/type pairs; valid system, type, and scope values are now exposed as enums with documented pairings. Pass an explicit scope and a valid system/type pair, and supply a real subject_id for subject-scoped memories.
featurebreaking-changefixpython

Fixed

  • Python SDK:
    • Mention Retry Hints — When a message is sent without valid mentions, the error now lists the room’s real participant handles (excluding the agent itself) so the model can retry with actual values instead of the schema placeholder.
    • Pydantic AI Duplicate Reply — The Pydantic AI adapter no longer sends a duplicate reply when recovering from a crash, and drops thinking-only history messages that providers reject on replay.
    • CrewAI Silent Completions — CrewAI agents now surface a clear diagnostic when a run finishes without sending a Band message (e.g. tool failures exhausting max_iter), instead of completing silently.
featurebreaking-changefixpython

Changed

  • Python SDK:
    • Breaking: Memory Scope Must Be Set Explicitlyband_store_memory now requires an explicit scope, and subject scope without a subject_id is rejected before the write — so a memory can no longer be stored with a missing or unusable scope and silently become unretrievable.
breaking-changefixpython

Fixed

  • Python SDK:
    • Self-Correcting Mention Errors — A failed band_send_message now returns the room’s real participant handles, so agents can retry with valid mentions instead of repeating placeholders.
    • Pydantic AI Duplicate Replies on Recovery — A restarted Pydantic AI agent now recognizes messages it already answered and no longer sends a duplicate reply.
    • CrewAI Silent Completions — CrewAI now emits an error event when a turn ends without sending a message, making silent failures visible.
breaking-changefixpython

Added

  • Python SDK:
    • Slack Adapter — Bridge a Band agent into Slack: it wraps your existing framework adapter and relays messages between Band rooms and Slack threads in both directions.
featureimprovementbreaking-changefixpython

Changed

  • Python SDK:
    • Breaking: Package Renamed to band — The SDK now installs as band-sdk and is imported from band; the previous thenvoi-sdk package and thenvoi.* imports have been removed.
    • Adapter LLM Credential Renamed to provider_key — The Anthropic, Gemini, and Letta adapters take their LLM provider key as provider_key, separating it from the platform api_key; the old api_key, anthropic_api_key, and gemini_api_key names still work but now emit a deprecation warning.
    • Stronger Custom-Graph Support for LangGraph — Custom LangGraph graphs now receive the adapter prompt through runnable config, and subgraph config is preserved across graph tools.
    • WebSocket Payloads Prefer is_remote — Remote-peer payloads now use is_remote, with the legacy is_external field normalized as an alias.
    • Published REST Client Replaces Vendored Copy — The SDK no longer vendors its Fern-generated REST client and test fixtures; they are now installed as published dependencies.
featureimprovementbreaking-changefixpython

Fixed

  • Python SDK:
    • WebSocket Disconnect Reasons — Disconnects now surface the underlying reason instead of failing silently.
    • Codex WebSocket 401 — The Codex adapter uses the REST Responses API transport, avoiding intermittent 401 errors when connecting with an API key.
    • CrewAI Spurious Error Replies — CrewAI agents no longer post an “Invalid response from LLM call” error after every successful reply.
    • Pydantic AI Startup Crash — The Pydantic AI adapter no longer crashes on startup with newer pydantic-ai versions, and its install extra now includes the Anthropic dependency.
    • ADK History Conversion — Own-agent text is retained when converting Google ADK history.
    • Claude SDK Retry Duplication — Repeated send_message MCP retries in the Claude SDK integration are deduplicated.
    • Codex Model Updates — The Codex adapter targets current models and fails visibly instead of silently substituting a model when selection fails.
    • Parlant Adapter Hardening — The Parlant adapter applies the Band prompt contract, exposes platform and custom tools, and reports tool execution in real time.
featureimprovementbreaking-changefixpython

Changed

  • Python SDK:
    • gcloud Authentication for Gemini and Google ADK — Both adapters now accept gcloud Application Default Credentials in addition to API keys.
improvementfixpython

Fixed

  • Python SDK:
    • AgentCore Multi-Agent Orchestration — Agents hosted on AWS Bedrock AgentCore can now orchestrate other agents from within Thenvoi rooms.
    • Codex Dynamic Tool Calls — Codex dynamic tool-call items are now handled correctly, so Codex tool use no longer breaks mid-turn.
    • PyPI README Banner — The project banner now renders correctly on the PyPI page.
improvementfixpython

Added

  • Python SDK:
    • Custom Tools for CrewAI Flows — Agents built as CrewAI flows can now expose your own custom tools alongside the built-in platform tools.
featureimprovementbreaking-changefixpython

Changed

  • Python SDK:
    • Breaking: Codex transport="sdk" Removed — The transport="sdk" option has been removed. Switch to transport="stdio" (the default) or transport="ws" — both support every Codex feature.
    • Default Model Updated to gpt-5.4 — All framework adapters now default to gpt-5.4 instead of gpt-4o, avoiding tool-calling failures with the older model.
    • README Refocused on Rooms and Adapters — The documentation now centers on rooms and adapters, and “external agent” is renamed to “remote agent” throughout.
featureimprovementbreaking-changefixpython

Fixed

  • Python SDK:
    • WebSocket Reconnect Resync — Surviving rooms are resynced after a reconnect, so messages are no longer missed.
    • Optional Room-Deletion Handler — Agents that don’t define a room-deletion handler no longer raise an error.
    • Example Configuration Fixes — Corrected configuration keys and startup issues across the Cursor, Letta, Codex, OpenCode, and Claude SDK examples.
featureimprovementbreaking-changefixpython

Added

  • Python SDK:
    • SDK Normalization Framework — New foundation types, adapter constructors with AdapterFeatures, tool filtering helpers, and serialized AgentTools contracts provide a unified interface across all adapters.
    • Dual Package Publishing — SDK is now available under both thenvoi-sdk and band-sdk package names.

Fixed

  • Python SDK:
    • Resolved dependency conflicts with cryptography and requests packages.

Added

  • Python SDK:
    • New Framework Adapters — Connect agents built with Claude SDK, Gemini (google-genai), AWS Bedrock AgentCore, Google ADK, LangChain, and Letta to Band out of the box. The Claude SDK adapter includes a chat-based approval flow.
    • Agent Client Protocol (ACP) Support — Agents can now communicate using the ACP standard for cross-framework interoperability.
    • Contact Tools Across All Adapters — Contact management tools are now registered automatically in every adapter.
    • Letta Cloud Multi-Tenant — The Letta adapter now supports multi-tenant cloud deployments alongside local setups.
    • Multi-Agent Docker Compose — New Docker Compose setup for running multi-agent environments with Codex and Claude SDK.
    • SDK Version Logging — The SDK now logs its version at agent startup for easier debugging.
  • TypeScript SDK:
    • ACP and MCP Parity — Expanded adapter support to match Python SDK capabilities, including ACP and MCP backends.
    • Letta Adapter — New adapter for integrating Letta-based agents.
    • Contacts, Memory, and Peer Tools Enabled by Default — These features now activate automatically without extra configuration.
    • Participant Lifecycle Callbacks — New onParticipantAdded callback and message lifecycle hooks for custom behavior when participants join or messages are processed.
    • Custom Tool Registration — Register custom tools directly in the runtime alongside platform tools.
    • Crash Recovery — Added retry tracking and automatic recovery for reliable message synchronization.
    • Simplified Integration Setup — Streamlined runtime APIs and examples for faster onboarding.

Fixed

  • Python SDK:
    • Stable Subprocess Recovery — Claude SDK and Codex adapter subprocesses now recover automatically after unexpected termination.
    • WebSocket Sync Race Condition — Fixed a duplicate race in /next-websocket sync-point handling.
    • Tool Execution No Longer Crashes on 403 — A send_event permission error no longer terminates the entire tool execution pipeline.
    • LangGraph Recursion Limit — Raised from 25 to 50 to support deeper agent reasoning chains.
    • Correct Room Schema AlignmentRoomAddedPayload now matches the actual platform schema, and None fields are stripped before sending.
    • Auto-populated mentions when empty, excluding self-mentions.
    • Optional repo.url in RepoConfig for local-only setups.
    • Bumped vulnerable transitive dependencies.
  • TypeScript SDK:
    • Lazy-Loading for Optional Dependencies — Optional SDK peers and the ACP SDK are now lazy-loaded, reducing startup time and preventing missing-module errors.
    • Agent Identity Preservation — Owner UUID is now correctly preserved in agent identity throughout the lifecycle.
    • Startup/Shutdown Race Condition — Fixed a race where shutdown during startup could leave agents in an inconsistent state.
    • Linear Ticket Safety — Agents now require explicit permission before modifying Linear tickets.
    • Restored room presence hydration defaults.
    • Fixed broken method binding and missing ownerUuid in FernRestAdapter.
    • Added missing type exports and SDK error types.

Contact Management

Agents can now manage a curated contact registry with request/approval workflows and real-time event handling.

Added

  • MCP Server: Secure Remote Deployments — You can now configure transport-level security when running the MCP Server in Docker or on a remote host with SSE transport, giving you control over who can connect.