unstale

npm / @google/adk

@google/adk

What changed in @google/adk 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

4 breaking1 security1 deprecations12 new APIs and options4 behavior and defaults32 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@google/adk 254 changes

Breaking changes 4

  • Code executors now run client-side code by default and match adk-python output.

    2.3.0release notes

  • Implicit Google API authentication now requires HTTPS.

    2.3.0release notes

  • Boolean nodes in JSON Schema are converted to object schemas.

    2.3.0release notes

  • Boolean branches in anyOf are converted to object schemas.

    2.2.0release notes

Security 1

  • Fetched agent card RPC URLs are pinned to the origin from which the card was fetched.

    2.3.0release notes

Deprecations 1

  • Custom metadata keys prefixed with __adk_internal_ are reserved for ADK; developers should avoid using them.

    2.2.1release notesrelease notes

New APIs and options 12

  • Adds opt-in automatic session creation in the runner.

    2.3.0release notes

  • Adds DebugLoggingPlugin with full Python parity for developers who want debug logging through a plugin.

    2.3.0release notes

  • Adds ToolCallIntegrityPlugin with adk-python parity.

    2.2.1release notesrelease notes

  • The code-execution skill is published on the agent card.

    2.2.0release notes

  • Ports the BasePlanner planner API.

    2.2.0release notes

  • Ports the BuiltInPlanner planner API.

    2.2.0release notes

  • customMetadata is declared for memory entries.

    2.2.0release notes

  • LlmAgent gains planner support, allowing developers to configure an agent with a planner.

    2.2.0release notes

  • The logger facade is exported from the @google/adk public API.

    2.2.0release notes

  • Ports the PlanReActPlanner planner API.

    2.2.0release notes

  • Adds a module aliasing ToolContext to Context.

    2.2.0release notes

  • Adds a toolset for Chrome WebMCP document.modelContext tools.

    2.2.0release notes

Behavior and default changes 4

  • ExampleTool examples are validated when the tool is constructed, surfacing invalid examples earlier.

    2.3.0release notes

  • Session metadata is attached to task, working, and input-required events.

    2.2.0release notes

  • ADK tracking headers are sent on MCP HTTP requests.

    2.2.0release notes

  • MemoryEntry.id is forwarded as the Vertex memoryId.

    2.2.0release notes

Fixes and other changes 32

  • Aborted invocations are sealed in session history.

    2.3.0release notes

  • Tool responses are normalized before afterToolCallback runs.

    2.3.0release notes

  • Base64 is decoded as UTF-8 in the browser.

    2.3.0release notes

  • In-memory artifact versions now have canonicalUri populated.

    2.3.0release notes

  • The sandbox name is persisted in the code execution context state delta.

    2.3.0release notes

  • Instruction strings containing ${...} and escaped braces are kept as literal text.

    2.3.0release notes

  • Planners now keep all leading parallel function calls.

    2.3.0release notes

  • llmRequest.model is set to the selected route model.

    2.3.0release notes

  • RoutedLlm.generateContentAsync now forwards abortSignal.

    2.3.0release notes

  • The call_llm span is ended in a finally block when runAsync exits early.

    2.3.0release notes

  • Runner now prefers an explicit appName over app.name.

    2.3.0release notes

  • VertexAiSessionService now gives Session.state a null prototype.

    2.3.0release notes

  • Partial chunks of a streamed response now share one event ID.

    2.3.0release notes

  • Falsy tool errors are preserved.

    2.3.0release notes

  • In SSE mode, the parent step loop stops after transfer_to_agent.

    2.3.0release notes

  • An explicit vertexai: false is respected even when enterprise environment variables are set.

    2.3.0release notes

  • Event listing now follows nextPageToken when retrieving a session.

    2.3.0release notes

  • Numeric log levels are mapped to Winston names.

    2.3.0release notes

  • Closes the Chrome reply envelope and prevents it from being shown.

    2.2.0release notes

  • An empty text part is rendered when a code execution result has no output.

    2.2.0release notes

  • Stringifies customMetadata values in GcsArtifactService.

    2.2.0release notes

  • Routes Gemini 3.x live audio by model family rather than the '-flash-live' spelling.

    2.2.0release notes

  • Emits one input transcription on Gemini 3.x Live.

    2.2.0release notes

  • Gemini 3.5 Live Translate is excluded from Gemini 3.x Live routing.

    2.2.0release notes

  • Keeps tool and code execution events in Memory Bank writes.

    2.2.0release notes

  • Fixes nested artifacts leaking versions into their parent.

    2.2.0release notes

  • Emits the body argument for a schema-less media type.

    2.2.0release notes

  • Scans every 2xx media type for the return schema.

    2.2.0release notes

  • Makes safeStringify total.

    2.2.0release notes

  • Closes the skill registry when the skill toolset closes.

    2.2.0release notes

  • Drops a null member from an enum when converting with toGeminiSchema.

    2.2.0release notes

  • Boolean branches in type arrays are converted to object schemas.

    2.2.0release notes