Google ADK 2.14: A2A Goes Stable, Teams Runner Ships

Google shipped Agent Development Kit 2.14.0 on November 7, 2026. The headline is that the A2A integration, execution environments, evaluation and core runtime modules all leave experimental status, alongside 26 modules and 16 toolset features promoted to stable. It also breaks three APIs in ways that will bite upgrades if you are not reading the notes.
- Release and date — Version 2.14.0 of the Python Agent Development Kit was published to PyPI on November 7, 2026, following 2.13.0 on October 23, 2026. The release notes are dated November 4, 2026.
- What graduated to stable — The release graduates execution environments and sandboxes, the A2A integration, evaluation, and core runtime modules out of experimental, along with 26 auth, environment, app, CLI and cache modules and 16 toolset and integration features.
- Breaking changes that need attention — Enum-annotated tool parameters now receive enum members instead of raw strings, VertexAiSessionService.create_session raises ValueError on extra keyword arguments, and RunSkillScriptTool no longer accepts a free-form command parameter.
- Vendor performance claim — Google states that a 30-node workflow's 200-turn run is 23 percent faster with 9 percent lower peak memory. The release notes publish no baseline hardware, no second benchmark, and no comparison against a named prior ADK version.
What graduating from experimental actually changes
Related guide: Anthropic: Multi-Agent Teams Often Underperform One Agent
In ADK, an experimental module emits warnings, and its API can change without a deprecation path. Stable APIs do not. In 2.14.0 the promoted surface includes BaseEnvironment, LocalEnvironment, EnvironmentToolset, DaytonaEnvironment and E2BEnvironment, which means sandboxed execution across local, E2B and Daytona backends is now something you can build a production service on. The A2A integration is stable too, with adk generate_agent_card building an Agent Card from the command line.
The evaluation stack graduating matters just as much in practice. MultiRunConfig lets you run each eval case multiple times concurrently and combine scores or pass rates across runs — the difference between an agent that passed one test and an agent that passes consistently. ToolArgsMatcher compares tool-call arguments using exact, case-insensitive, numeric-tolerance or LLM-backed semantic checks, and AgentEvaluator now accepts a BaseNode or App built at runtime rather than only a static agent directory.
The three breaking changes worth reading twice
Related guide: AI Proves a 2008 Quantum Conjecture in Three Days
Google's release notes list three breaking changes, and the third is the one with security implications.
Enum tool arguments arrive as members. A FunctionTool parameter annotated with Enum, Optional[Enum] or list[Enum] now receives enum members rather than the raw strings the model sent. String equality checks, string-keyed dictionary lookups, match statements on strings and json.dumps on those values stop working. For a (str, Enum) union, f-strings render Cls.MEMBER rather than the value. The fix is to compare against members, use .value, or switch to StrEnum. A callable require_confirmation still receives raw values unless FUNCTION_TOOL_ARG_VALIDATION is enabled.
Session creation is stricter. VertexAiSessionService.create_session now accepts only display_name, ttl, expire_time and labels plus camelCase aliases. Passing http_options, session_state, sessionId or wait_for_completion raises ValueError — and returns HTTP 400 when the same keys are sent as session options to adk api_server. Use state= and session_id= for state and identifiers.
Skill scripts no longer take a free-form command. With a SkillToolset environment, RunSkillScriptTool now takes args, short_options and positional_args instead of a free-form shell command. Scripts run from the skill directory rather than the environment's working directory, and only .py, .sh and .bash scripts are supported — anything else returns UNSUPPORTED_SCRIPT_TYPE. Calls, eval sets or prompts that still pass command return INVALID_ARGUMENTS. Google describes this as closing a hole that let a prompt-injected model run arbitrary shell commands. If you run agents with skills and a prompt-injection surface, this is the change that matters most.
New integrations and memory
Related guide: IBM and Microsoft Launch Imagine Enterprise Agent Platform
Two integrations stand out. TeamsRunner connects an ADK agent to Microsoft Teams chats and channels, which is the shortest credible path from a Google-built agent into an enterprise chat surface. OpenAIDecisionsClassifier classifies workflow and tool-gating questions with the OpenAI Decisions API, giving ADK a typed predicate for "should this action proceed" instead of a free-text check. A new google-adk[openai] extra and the move of OpenAI models to google.adk.integrations.openai accompany it.
MongoDbMemoryService gains vector-search retrieval via retrieval_mode="vector" or "auto", plus TTL expiration through memory_ttl_days. For anyone running long-lived agents on MongoDB, automatic expiry of stale session memory is a small feature that removes a real class of bug.
The performance claim, and how to treat it
Related guide: Businesses in ChatGPT: Business Hub and Business Agents
Google states that "a 30-node workflow's 200-turn run is 23 percent faster with 9 percent lower peak memory". That is a specific, narrow claim — a 30-node, 200-turn workflow — which makes it more useful than a vague "faster", and it points at the shape of work ADK is aimed at: long multi-turn orchestrations rather than single tool calls. The caveats are equally specific: the release notes publish no baseline hardware, no second benchmark and no comparison against a named prior ADK version, so the figure cannot be reproduced from the notes alone. Treat it as a vendor claim about one workload class, and benchmark your own workflow before assuming the win applies to you.
Why the A2A graduation matters beyond ADK
Related guide: One robots.txt Line for AI Training Opt-Outs: What Four AI Labs Agreed To
The A2A integration graduating inside ADK is a bigger signal than an ADK changelog entry. The A2A Protocol specification's latest released version is 1.0.0, and it defines a common language for independent, potentially opaque agent systems built on different frameworks, languages or vendors — tasks, streaming, multi-turn conversations, push notifications, and an Agent Card for discovery.
The practical effect of a stable ADK A2A integration is that exposing one of your agents to another team's agent stops being a research project. You publish an Agent Card, your counterpart sends messages and polls tasks, and both sides stay on a published protocol rather than a private integration. That is the difference between a demo and something you can put in a contract. If you are evaluating agent frameworks right now, the A2A support is worth more on the checklist than another set of convenience tools — and you can read more in our guide to agent frameworks and self-hosting.
What to do on upgrade
Related guide: Microsoft Copilot's 2026 Overhaul: Inside Home, Code, and Persistent Autopilot
Before upgrading a production ADK deployment to 2.14.0, run three checks. Grep for tool parameters annotated with Enum and fix any code that treats them as strings. Grep for create_session calls passing extra keyword arguments and move state and identifiers to the supported parameters. Grep for command= passed to RunSkillScriptTool and restructure those calls around validated script paths and arguments. The first two break loudly; the third returns an argument error, which is louder still. The reverse migration — rolling back after a Firestore session written by 2.14.0 — is the one that fails quietly, since those sessions cannot be read by 2.13.0 or earlier, so pin your version before you write new state.
Frequently asked questions
Release and date
Version 2.14.0 of the Python Agent Development Kit was published to PyPI on November 7, 2026, following 2.13.0 on October 23, 2026. The release notes are dated November 4, 2026.
What graduated to stable
The release graduates execution environments and sandboxes, the A2A integration, evaluation, and core runtime modules out of experimental, along with 26 auth, environment, app, CLI and cache modules and 16 toolset and integration features.
Breaking changes that need attention
Enum-annotated tool parameters now receive enum members instead of raw strings, VertexAiSessionService.create_session raises ValueError on extra keyword arguments, and RunSkillScriptTool no longer accepts a free-form command parameter.
Vendor performance claim
Google states that a 30-node workflow's 200-turn run is 23 percent faster with 9 percent lower peak memory. The release notes publish no baseline hardware, no second benchmark, and no comparison against a named prior ADK version.
Prices and benchmark figures are standard published rates as of November 9, 2026 and can change without notice. Some outbound links may be affiliate links — see our disclosure. Found an error? Tell us and we'll correct it in public.