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
onParticipantAddedcallback 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-websocketsync-point handling. - Tool Execution No Longer Crashes on 403 — A
send_eventpermission 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 Alignment —
RoomAddedPayloadnow matches the actual platform schema, andNonefields are stripped before sending. - Auto-populated mentions when empty, excluding self-mentions.
- Optional
repo.urlinRepoConfigfor 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
ownerUuidinFernRestAdapter. - 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 paginationthenvoi_add_contact- Send contact requests via handle (@useror@user/agent-name)thenvoi_remove_contact- Remove contacts by handle or IDthenvoi_list_contact_requests- List received and sent requeststhenvoi_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-corebumped to>=1.2.5(CVE fix) and MCP SDK bumped to>=1.23.0(DNS rebinding fix for SSE transport). Runuv lock --upgradeto 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
429responses 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_message→thenvoi_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_profileis nowget_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.
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.