Feature
Agents SDK v0.7.0: Observability rewrite, keepAlive, and waitForMcpConnections
The latest release of the Agents SDK rewrites observability from scratch with diagnostics_channel, adds keepAlive() to prevent Durable Object eviction during long-running work, and introduces waitForMcpConnections so MCP tools are always available when onChatMessage runs.
Observability rewrite
The previous observability system used console.log() with a custom Observability.emit() interface. v0.7.0 replaces it with structured events published to diagnostics channels — silent by default, zero overhead when nobody is listening.
Every event has a type, payload, and timestamp. Events are routed to seven named channels:
Channel · Event types
agents:state · state:update
agents:rpc · rpc, rpc:error
agents:message · message:request, message:response, message:clear, message:cancel, message:error, tool:result, tool:approval
agents:schedule · schedule:create, schedule:execute, schedule:cancel, schedule:retry, schedule:error, queue:retry, queue:error
agents:lifecycle · connect, destroy
agents:workflow · workflow:start, workflow:event, workflow:approved, workflow:rejected, workflow:terminated, workflow:paused, workflow:resumed, workflow:restarted
agents:mcp · mcp:client:preconnect, mcp:client:connect, mcp:client:authorize, mcp:client:discover
Use the typed subscribe() helper from agents/observability for type-safe access:
import { subscribe } from "agents/observability"; const unsub = subscribe("rpc", (event) => { if (event.type === "rpc") { console.log(`RPC call: ${event.payload.method}`); } if (event.type === "rpc:error") { console.error( `RPC failed: ${event.payload.method} — ${event.payload.error}`, ); } }); // Clean up when done unsub();
import { subscribe } from "agents/observability"; const unsub = subscribe("rpc", (event) => { if (event.type === "rpc") { console.log(`RPC call: ${event.payload.method}`); } if (event.type === "rpc:error") { console.error( `RPC failed: ${event.payload.method} — ${event.payload.error}`, ); } }); // Clean up when done unsub();
In production, all diagnostics channel messages are automatically forwarded to
Read the original announcement