2.6.0 (2026-07-29)
Features
- a2a: support per-invocation auth headers when fetching agent cards (3dd1156)
- add --extra_packages option to
adk deploy agent_engine(93db97d), closes #3936 - Add ADK evaluation samples: shared home-automation agent (6ba41ef)
- add agent identity auth manager finalize endpoint for 3 legged OAuth flow with auth manager (8d2ded3)
- Add basic_criteria ADK eval sample (fdebd9d)
- Add bigquery-graph skill to ADK BigQuery tools (f1a0a14)
- add capability to log commands run in CLI (a58220c)
- Add custom_metric ADK eval sample (f71d9df)
- Add llm_judge_match ADK eval sample (0f0fa6b)
- add metadata extraction symmetry to A2A converters (3127f36)
- add opt-in final_response_tool_names to BigQueryAgentAnalyticsPlugin (07455ee)
- Add ReflectAndRetryModelPlugin for self-healing model errors (322f455)
- Add rubric_criteria ADK eval sample (852a66a)
- add state_delta support to LiveRequest for live mode (8219774), closes #4220
- add telemetry consent check, status commands, and interrupt safety to CLI (6bab08f)
- Add telemetry consent configuration endpoints and local writing utility (26f3d45)
- add telemetry metrics collection for ADK CLI execution (2280f1c)
- Add test_file_vs_evalset ADK eval sample (57a34ba)
- Add user_simulation ADK eval sample (481fe21)
- agents: add instruction field to ManagedAgent (720af3d)
- agents: forward ManagedAgent instruction as system_instruction (49fdc26)
- eval: Make live and audio evals reachable via public entrypoints (5091f0a)
- eventarc: add Eventarc Advanced toolset for ADK (217a90a)
- eventarc: add Eventarc Advanced toolset for ADK (d4f157d)
- forward the OAuth2 nonce to the authorization request (79cc1f2), closes #2067
- integrations: add OCI Generative AI provider (625ef1a), closes #5069
- make agent evaluation compatible with pre-loaded artifacts (02e32a4), closes #2075
- make EventsCompactionConfig sliding-window fields optional (ec42cfa), closes #6398
- Publish companion constraints-3.11.txt and constraints-3.12.txt file for transitive dependency protection (4 day buffer to protect from supply chain attack) (75c773e)
- refresh expired OAuth2 tokens in OpenAPI credential exchanger (b3c9783)
- samples: add ManagedAgent create-and-use custom-agent sample (d86ae20)
- support audio generation user simulator (327afeb)
- support serving a to_a2a agent under a path prefix (1ae292f), closes #4448
- support user labels in RunConfig (13bef9c)
- telemetry: add request-driven metric export for Agent Engine (8930d9b)
- telemetry: derive gen_ai error.type from provider status code (b956d15)
- Update agent_registry to handle mTLS endpoints internally (66cf08d)
Bug Fixes
- a2a: honor task cancellation instead of raising NotImplementedError (fb55d4a)
- agents: await cancelled tasks in pre-3.11 ParallelAgent merge (bc55099), closes #5297
- agents: skip output_key processing on intermediate conversational text in task-mode LlmAgent (54344ed)
- allow http_options.extra_body in generate_content_config (4c6f22e)
- allow invocation-level rubrics (67ab27f)
- artifacts: namespace file artifacts by app (f72f0db)
- assemble only the current turn (c328cec)
- bound integration HTTP waits (bf4143a)
- bypass Protobuf Gencode/Runtime version check in antigravity integration (91038f2)
- caching: prevent prompt cache invalidation when using dynamic tools (509be09), closes #3227
- Call mtls.should_use_mtls_endpoint with client_cert_available argument (b315b00)
- canonicalize context cache fingerprint for stable hashing (425dda1)
- ci: mark imported PRs as merged even if already closed (2eca8b1)
- cli: treat agent folder with subfolders as single agent in adk web (40cf97b)
- close A2A response stream when the caller stops consuming (31392ba)
- close AsyncDaytona client in DaytonaEnvironment.close (ecf6d13)
- collect all tools so native tools aren't dropped (c429d75), closes #6091
- derive an SDK-conforming Antigravity conversation id (64b758a)
- do not mount a cluster credential into the GKE code sandbox (8207880)
- emit only new artifact parts on streaming artifact updates (088be86), closes #6343
- emit resumability checkpoints from workflow graph nodes (cecc1f9)
- eval: support
get_agent_asyncinadk eval(ebaef9f) - evaluation: support non-English responses in ROUGE-1 matching (8200fae)
- guard multimodal tool results plugin against empty contents (5a248de)
- handle Windows paths in
adk eval(6f6106f), closes #6415 - harden A2A metadata serialization and parser type validation (eee700a)
- include credential failure details (13c7272)
- isolate delegated task branches (95feafa), closes #6457
- let httpx set the multipart boundary Content-Type (3367b5b)
- make InvocationEvent.content optional so the Web UI can save eval cases (b549ab4), closes #6336
- make ParallelWorker concurrent failure exceptions deterministic (d31b5e7)
- match rubric verdicts by echoed id so paraphrased rubrics are not dropped (0b7355b), closes #6171
- memory: honor Vertex RAG top-k configuration (d4d2f6e)
- memory: make Vertex RAG uploads async-safe (80a05b7)
- migrate v0 event timestamps as local time, not UTC (6f1efe7)
- models: capture Anthropic thinking-block signatures during streaming (bb56aa5)
- models: guard Gemini.client_kwargs against missing-field AttributeError (df02689)
- models: populate finish_reason on AnthropicLlm responses (716be89)
- narrow broad except in agent identity credential providers (0598c9b)
- percent-encode context id fields so ids with separators round-trip (fab5347)
- pin third-party github actions to commit shas (4e16855)
- plugins: complete BigQuery Agent Analytics privacy and shutdown hardening (9adf011)
- plugins: correct lazy import path for ReflectAndRetryModelPlugin (c59fd0e)
- plugins: harden BigQuery agent analytics against fail-open privacy, GCS concurrency, and startup-loss gaps (2919bf5)
- plugins: restore failure counter properties on retry tool plugin (66a7233)
- populate finish_reason on Anthropic LLM responses (802a079)
- populate function name in FunctionResponse parts (540cfdf)
- present client certificate and use mTLS endpoint for API Hub calls (2cf5433)
- preserve ADK behavior on Windows (6e9895c)
- preserve explicit false and zero OpenAPI query parameters (b3abcb2), closes #6287
- preserve metadata in A2A artifact updates (2316b83)
- Prevent
adk deployfrom uploading.adk/session.dbfile (dab351b) - Prevent continuation forgery in tool confirmation (4b002c4)
- prevent transfer_to_agent loop on resumable invocation replay (19df9b9)
- propagate custom metadata from RunConfig to InvocationContext (79ba5af)
- raise SessionNotFoundError when appending to a missing session (0a70337)
- register custom metrics from eval config in LocalEvalSampler (79a879f), closes #6177
- reject base_url and extra_body in generate_content_config (472e463)
- reject incomplete evaluation inputs (8ca9128)
- require patched async LangGraph runtime (551372b)
- resolve tool confirmation resumption failure in production (c427020)
- respect A2A Message.role in inbound event conversion (968845f), closes #5186
- return empty list from _get_required_fields when no properties (1890557), closes #5920
- scope replay sequence to the current invocation (455853b), closes #6497
- scope the tool thread pool to its event loop (a1792a7)
- send the bare input_schema payload from AgentTool again (ba17367)
- serialize eval criteria as their concrete subclass (623da49)
- serialize raw bytes as base64 in A2A converters (e6604e1)
- sessions: apply after_timestamp and num_recent_events together in VertexAiSessionService (021f6f6)
- share one event id across the partial chunks of a streaming response (8f98bcd), closes #1006
- single-flight Discovery Engine mode detection (3a9a88c), closes #6101
- stop automatic function calling from failing on Vertex AI return types (268815d), closes #3543
- stop tracing credentials passed via config.http_options (761f1ac)
- strip markdown code fences before validating output_schema JSON (28c649a)
- support nested agent paths in dot_adk_folder resolution (d33ca5f)
- surface sub-agent RPC errors from AgentTool (e737f22)
- tolerate a malformed traceparent header in the span processor (de2e66e)
- tools: bind JSONDecodeError in ToolConnectionAnalyzer.analyze (a60d5b9)
- treat GitHub content as untrusted in the adk_team sample agents (f4979b5)
- wait for in-flight BigQuery writes (6e43800)
- workflow: fix task agent resumption in nested workflows (fd006db)
- wrap input_schema payload in ReAct prompt and propagate tool_choice to LiteLLM (550189c)
Performance Improvements
- avoid quadratic text/audio accumulation in streaming (7fd8760)
- cache the FunctionTool declaration across LLM calls (57f3af2)
- import: lazy-load heavy dependencies (88b388e)
- tools: avoid double Schema serialization in Optional/Union dedup (6264576)
Documentation
- Add developer unit guide for ReflectAndRetryToolPlugin (94832a5)
- agents: add system-instruction sample and guide section (597fac3)
- document creating and using a custom managed agent (52c3e9e)
- document workflow resumability model and direction (d4804e2)
- explain how an accepted pull request lands (b6c2575)
- fix broken relative links in documentation (096ecfc)