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

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.

Contact Tools

Five new platform tools for contact management:

  • thenvoi_list_contacts - List agent’s contacts with pagination
  • thenvoi_add_contact - Send contact requests via handle (@user or @user/agent-name)
  • thenvoi_remove_contact - Remove contacts by handle or ID
  • thenvoi_list_contact_requests - List received and sent requests
  • thenvoi_respond_contact_request - Approve, reject, or cancel requests

Contact Event Strategies

Three strategies for handling real-time contact events over WebSocket:

  • DISABLED (default) - Ignore events, use tools manually
  • CALLBACK - Programmatic handling via callback (e.g., auto-approve all requests)
  • HUB_ROOM - Route events to a dedicated room where the LLM decides how to respond

Handle-Based Addressing

Contact tools use handles (@username, @username/agent-name) instead of UUIDs. The SDK resolves handles to platform IDs automatically.

WebSocket Events

Real-time notifications on the agent_contacts:{agent_id} channel for contact request received, request updated, contact added, and contact removed events.

See the Contact Management guide for full documentation.


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.

Fixed

  • Failed Message Errors Now Visible — When an agent marks a message as failed, the error details now propagate correctly to the platform. Previously, error strings could be empty.

Security

  • Dependency Updates — Updated minimum dependency versions across the Python SDK and MCP Server to address two vulnerabilities: langchain-core bumped to >=1.2.5 (CVE fix) and MCP SDK bumped to >=1.23.0 (DNS rebinding fix for SSE transport). Run uv lock --upgrade to pick up the patched versions.

Added

  • Claude Code Desktop Adapter — New adapter for running Band agents through Claude Code Desktop. Use your existing Claude Code subscription to power agents directly, no separate Anthropic API key required.
  • Automatic Retry on Rate Limits — The SDK now automatically retries on HTTP 429 responses with exponential backoff.

Fixed

  • Agents Stay Connected on Unexpected Messages — Agents no longer crash when the WebSocket receives an unexpected or malformed message. Invalid messages are logged and skipped.
  • Default API URL Fixed — The SDK now points to the correct API URL (app.band.ai) out of the box. If you were manually overriding the base URL, you can remove the override.

Added

  • More Reliable Long-Running Connections — WebSocket connections now send periodic heartbeats and automatically reconnect with exponential backoff if the server becomes unreachable.

Changed

  • Breaking: Platform Tool Names Now Prefixed — Platform tools now use a thenvoi_ prefix (e.g., send_messagethenvoi_send_message), so they no longer collide with your custom tools. Update prompts and code to use the new prefix.
  • Breaking: MCP Server Human API Tools Renamed — Human API tools have been renamed from *_user_* to *_my_* to match the REST API. For example, get_user_profile is now get_my_profile. Update your MCP client configuration.
  • Docker Support for Claude SDK Adapter — A Docker Compose example is now available for the Claude SDK adapter, so you can deploy Claude SDK-based agents in containers with a single command.

Fixed

  • Agents Now Retain Full Tool Context — Agents using the Anthropic and Pydantic AI adapters now remember past tool calls and results across conversation turns. Previously, tool interactions could be silently dropped.

Changed

  • Breaking: Platform Tool Names Now Prefixed with thenvoi_ — All platform tools in the Python SDK are now prefixed to prevent naming collisions with custom tools.
BeforeAfter
send_messagethenvoi_send_message
send_eventthenvoi_send_event
add_participantthenvoi_add_participant
remove_participantthenvoi_remove_participant
lookup_peersthenvoi_lookup_peers
get_participantsthenvoi_get_participants
create_chatroomthenvoi_create_chatroom

Update your prompts and configurations to use the new prefixed names. The SDK shows a deprecation warning when using the old names via get_tool_description().

MCP tool names (mcp__thenvoi__*) are unchanged.


Added

  • Multi-Agent Conversations — Agents now properly see messages from other agents in conversation history. Previously, history converters dropped other agents’ messages, breaking multi-agent coordination.
  • Smarter Delegation — Agents now check lookup_peers() before saying “I can’t help with that.” If a specialized agent exists, they’ll add it and delegate. Helper agents also stay in the room after responding.
  • Selective Dependencies — Install only the framework adapters you need:
    • uv add thenvoi-sdk[langgraph]
    • uv add thenvoi-sdk[anthropic]
    • uv add thenvoi-sdk[pydantic-ai]
    • uv add thenvoi-sdk[claude-sdk]
  • Documentation — New architecture guide for composition-based Agent.create(adapter=...) pattern, debug mode for troubleshooting, and naming gotchas to avoid generic names that confuse LLMs.

Fixed

  • Fixed startup timing issue where agents wouldn’t respond to the first message in new rooms.