Found docs updates needed from ADK python release v2.5.0 to v2.6.1
- Dominant language
- Shell
- Stars
- 1.5k
- Forks
- 1.3k
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 34
Description
https://github.com/google/adk-python/compare/v2.5.0...v2.6.1
### 1. **Document `card_request_interceptors` in A2aRemoteAgentConfig**
**Doc file**: docs/a2a/quickstart-consuming.md
**Current state**:
> * **`before_request`**: Executed before the agent starts processing. You can modify the `A2AMessage`, or return an ADK `Event` to immediately abort the request and return that event to the caller.
> * **`after_request`**: Executed after the agent has processed the request. You can modify the resulting ADK `Event`, or return `None` to filter out and drop the event entirely.
>
> #### Request Parameters Configuration
**Proposed Change**:
> * **`before_request`**: Executed before the agent starts processing. You can modify the `A2AMessage`, or return an ADK `Event` to immediately abort the request and return that event to the caller.
> * **`after_request`**: Executed after the agent has processed the request. You can modify the resulting ADK `Event`, or return `None` to filter out and drop the event entirely.
>
> #### Card Request Interceptors
>
> You can inject `card_request_interceptors` into the configuration to dynamically provide headers when fetching the agent card via an HTTP(S) URL.
>
> * **`before_request`**: An async hook executed before fetching the card over HTTP(S). It returns an `A2aCardRequestConfig` containing `headers` (e.g., an authorization token retrieved from the session state). This is ignored for static `AgentCard` sources or local file paths.
>
> #### Request Parameters Configuration
**Reasoning**:
The `A2aRemoteAgentConfig` has been updated to include a `card_request_interceptors` field, which allows developers to pass interceptors that modify the HTTP fetch request for an Agent Card (for example, injecting dynamic headers like auth tokens). This capability needs to be documented alongside the existing request interceptors so developers know how to dynamically authenticate remote agent card fetching.
**Reference**: src/google/adk/a2a/agent/config.py
### 2. **Document support for extended metadata mapping when converting A2A messages/tasks to ADK Events**
**Doc file**: docs/a2a/converters.md
**Current state**:
> (Missing or lacks mention of new metadata fields)
**Proposed Change**:
> Add documentation detailing that A2A conversions now preserve and extract `grounding_metadata`, `custom_metadata`, `usage_metadata`, `error_code`, and `citation_metadata` into the resulting ADK Events.
**Reasoning**:
Developers relying on rich telemetry, usage tracking, or grounding metadata from models via A2A need to know these fields are now fully passed through and converted correctly into ADK Events.
**Reference**: src/google/adk/a2a/converters/to_adk_event.py
### 3. **Document task cancellation support in A2A Agent Executor**
**Doc file**: docs/a2a/executor.md
**Current state**:
> (Missing or mentions cancellation is unsupported)
**Proposed Change**:
> Describe that the A2A Agent Executor now natively supports cancellation requests by gracefully enqueuing a canceled task event instead of throwing an unsupported error.
**Reasoning**:
Consumers of the `A2aAgentExecutor` should be aware they can now safely invoke `cancel()` during long-running tasks and expect a clean exit.
**Reference**: src/google/adk/a2a/executor/a2a_agent_executor.py
### 4. **Document that `ManagedAgent` now supports dynamic system instructions**
**Doc file**: docs/agents/managed-agent.md
**Current state**:
> (ManagedAgent documentation missing `instruction` property details)
**Proposed Change**:
> Add documentation for the `instruction` property on `ManagedAgent`. Explain it accepts a plain string (with `{var}` or `{artifact.name}` placeholders for automatic session state injection) or an `InstructionProvider` callable.
**Reasoning**:
Brings `ManagedAgent` inline with `LlmAgent` instruction capabilities, enabling developers to customize system instructions for remote interactions.
**Reference**: src/google/adk/agents/_managed_agent.py
### 5. **Document the `rpc_path` parameter for custom A2A path prefixing**
**Doc file**: docs/a2a/serving.md
**Current state**:
> (Missing mention of customizing the serving path in to_a2a)
**Proposed Change**:
> Document the new `rpc_path` parameter in `to_a2a()`. Explain that it optionally mounts the JSON-RPC route and agent-card route under a specified path prefix (e.g., `rpc_path="my-agent"` -> `/my-agent/`). Note that if a pre-built agent card is provided with a conflicting advertised URL, a warning will be logged.
**Reasoning**:
Developers running multiple agents behind a single domain, reverse proxy, or ingress controller will need this to route traffic to the correct agent endpoints.
**Reference**: src/google/adk/a2a/utils/agent_to_a2a.py
### 6. **Document `LangGraphAgent` checkpointer strict msgpack requirement and async execution**
**Doc file**: docs/agents/langgraph-agent.md
**Current state**:
> (Missing environment variable instructions for persistent checkpointers)
**Proposed Change**:
> Update `LangGraphAgent` documentation to emphasize that when using a persistent checkpointer, developers must set `LANGGRAPH_STRICT_MSGPACK=true` before compiling the graph. Also update any usage examples to reflect that it now relies on the `CompiledStateGraph` and uses async APIs (`ainvoke`, `aget_state`).
**Reasoning**:
Ensures developers avoid deserialization issues or vulnerabilities when persisting multi-turn LangGraph state, and highlights the shift to native async execution.
**Reference**: src/google/adk/agents/langgraph_agent.py
### 7. **Document `state_delta` support in `LiveRequest` for Live Agents**
**Doc file**: docs/agents/live-agent.md
**Current state**:
> (Missing state_delta property documentation)
**Proposed Change**:
> Document that developers can now pass `state_delta: dict[str, Any]` in a `LiveRequest` to update session state variables without needing to send an actual message or audio content turn.
**Reasoning**:
Provides developers with a mechanism to cleanly push state changes into an ongoing bidirectional realtime session.
**Reference**: src/google/adk/agents/live_request_queue.py
### 8. **Document that setting base URL on LlmAgent config is disallowed**
**Doc file**: docs/agents/llm-agent.md
**Current state**:
> (Allows or doesn't mention restrictions on setting base_url via generate_content_config HTTP options)
**Proposed Change**:
> Clarify that developers must configure the `base_url` via the model or client initialization directly, not via the agent's `generate_content_config.http_options` (which will now raise a ValueError).
**Reasoning**:
Prevent runtime ValueError failures when users try to override transport-level properties at the invocation level instead of the client level.
**Reference**: src/google/adk/agents/llm_agent.py
### 9. **Document that RemoteA2aAgent now natively outputs text in workflow nodes**
**Doc file**: docs/agents/remote-a2a-agent.md
**Current state**:
> (Might mention limitations when using RemoteA2aAgent in a JoinNode or Workflow)
**Proposed Change**:
> Mention that `RemoteA2aAgent` correctly promotes its terminal textual response to the workflow node's output. This means it works seamlessly inside a `JoinNode` or `Workflow`, unlike before where responses might have been dropped as intermediate events.
**Reasoning**:
Developers using A2A agents inside Workflows need to know the textual output will correctly aggregate and propagate downstream.
**Reference**: src/google/adk/agents/remote_a2a_agent.py
### 10. **Document the new `labels` field in `RunConfig`**
**Doc file**: docs/agents/run-config.md
**Current state**:
> (Missing labels field documentation)
**Proposed Change**:
> Add `labels` (`dict[str, str]`) to the documented properties of `RunConfig`. Note it is useful for billing, usage attribution, or internal tracking on a per-invocation basis.
**Reasoning**:
Allows developers to attach metadata needed for FinOps or attribution to specific agent invocations.
**Reference**: src/google/adk/agents/run_config.py
### 11. **Document the required pairings and validation rules for `EventsCompactionConfig`**
**Doc file**: docs/apps/configs.md
**Current state**:
> (Missing validation rules for compaction triggers)
**Proposed Change**:
> Document that developers configuring `EventsCompactionConfig` must provide either the token-threshold pair (`token_threshold` + `event_retention_size`) or the sliding-window pair (`compaction_interval` + `overlap_size`), and that fields within each pair must be set together.
**Reasoning**:
Prevents runtime `ValueError` when developers partially configure a compaction trigger.
**Reference**: src/google/adk/apps/_configs.py
### 12. **Document the API signature changes to `FileArtifactService` methods for app-scoping**
**Doc file**: docs/artifacts/file-artifact-service.md
**Current state**:
> Methods like `save_artifact` take `user_id`, `filename`, etc.
**Proposed Change**:
> Update the documentation to reflect that all core `FileArtifactService` methods (like `save_artifact`, `load_artifact`, `delete_artifact`, etc.) now require an `app_name: str` parameter. Mention that storage layout is migrated to an app-scoped structure, with read-fallback to the old paths for backwards compatibility.
**Reasoning**:
Developers calling `FileArtifactService` directly will encounter `TypeError` for missing positional arguments if they don't supply `app_name`.
**Reference**: src/google/adk/artifacts/file_artifact_service.py
### 13. **Document `nonce` support in OAuth2 authentication**
**Doc file**: docs/auth/oauth2.md
**Current state**:
> (Missing mention of nonce support in OAuth2 parameters)
**Proposed Change**:
> Mention that `nonce` can now be provided in the `auth_credential.oauth2` configuration and will be passed through to the OAuth provider during authorization.
**Reasoning**:
Allows developers to use OIDC/OAuth2 flows that strictly require a nonce for security verification.
**Reference**: src/google/adk/auth/auth_handler.py
### 14. **Document that cloud metrics are now enabled by default**
**Doc file**: docs/telemetry/gcp.md
**Current state**:
> (Missing or mentions cloud metrics are disabled/experimental)
**Proposed Change**:
> Update the documentation to indicate that `enable_cloud_metrics` is now set to `True` by default when setting up GCP telemetry.
**Reasoning**:
Developers using GCP telemetry will now start seeing metrics exported to Cloud Monitoring and should be aware of this change in default behavior.
**Reference**: src/google/adk/cli/api_server.py
### 15. **Document the new `/agent-identity/finalize` endpoint for 3LO consent flow**
**Doc file**: docs/auth/agent-identity.md
**Current state**:
> (Missing documentation for the `/agent-identity/finalize` API server endpoint)
**Proposed Change**:
> Document that the API server now provides an `/agent-identity/finalize` endpoint to complete the OAuth exchange for Agent Identity connectors (3LO). It takes a `FinalizeAgentIdentityCredentialsRequest` containing the `connector_name`, `user_id`, `user_id_validation_state`, and `consent_nonce`.
**Reasoning**:
Developers building custom web clients or UI that rely on the API server for Agent Identity 3LO flows need to know how to finalize the user consent handshake.
**Reference**: src/google/adk/cli/api_server.py
### 16. **Document the `--extra_packages` flag for `adk deploy agent-engine`**
**Doc file**: docs/cli/deploy.md
**Current state**:
> (Missing `--extra_packages` option in deployment docs)
**Proposed Change**:
> Document that developers can use the `--extra_packages` flag when deploying to Agent Engine to specify additional local files or directories to be staged and deployed alongside the agent (e.g., custom local dependencies).
**Reasoning**:
Provides developers with a native way to bundle custom local packages without manually editing the Dockerfile.
**Reference**: src/google/adk/cli/cli_deploy.py
### 17. **Document the CLI commands for managing telemetry consent**
**Doc file**: docs/cli/reference.md
**Current state**:
> (Missing telemetry management commands)
**Proposed Change**:
> Add documentation for the `adk telemetry enable`, `adk telemetry disable`, and `adk telemetry status` commands. Mention that telemetry is OFF by default.
**Reasoning**:
Users need to know how to manage their data privacy and CLI telemetry tracking preferences.
**Reference**: src/google/adk/cli/cli_tools_click.py
### 18. **Document that the Dev Server API now accepts `live_model_config` and `user_simulator_config` for evaluation requests**
**Doc file**: docs/evaluation/dev-server.md
**Current state**:
> (RunEvalRequest documentation missing these fields)
**Proposed Change**:
> Document the new `live_model_config` and `user_simulator_config` properties in `RunEvalRequest` for API-driven evaluations.
**Reasoning**:
Allows developers integrating custom web UIs or CI systems with the ADK dev server to properly trigger audio/live evaluations and user simulation.
**Reference**: src/google/adk/cli/dev_server.py
### 19. **Document that the evaluation CLI now supports async agent initialization via `get_agent_async()`**
**Doc file**: docs/evaluation/quickstart.md
**Current state**:
> (May state that eval modules must export a `root_agent` property)
**Proposed Change**:
> Clarify that the agent module provided to `adk eval` can now export a `get_agent_async()` coroutine to initialize the root agent asynchronously, mirroring the behavior supported by `adk run` and `adk web`.
**Reasoning**:
Unifies the agent initialization interface across all CLI commands.
**Reference**: src/google/adk/cli/cli_eval.py
### 20. **Document the security enhancement for `GkeCodeExecutor` regarding service account tokens**
**Doc file**: docs/code-execution/gke.md
**Current state**:
> (Missing mention of service account token mounting behavior)
**Proposed Change**:
> Mention that `GkeCodeExecutor` now explicitly disables `automount_service_account_token` on the execution pods.
**Reasoning**:
Provides developers and security teams assurance that the model-generated code running in the sandbox cannot inadvertently access the GKE cluster credentials.
**Reference**: src/google/adk/code_executors/gke_code_executor.py
### 21. **Document the new `session_id` field in `SessionInput` for evaluations**
**Doc file**: docs/evaluation/eval-case.md
**Current state**:
> (Missing `session_id` field documentation in SessionInput)
**Proposed Change**:
> Document that developers can now provide a fixed `session_id` in `SessionInput`. Explain that doing so allows the eval case to reuse an existing session or access pre-loaded session-scoped artifacts.
**Reasoning**:
Allows developers to test multi-turn statefulness or artifact processing more accurately in their eval cases.
**Reference**: src/google/adk/evaluation/eval_case.py
### 22. **Document the ability to pass an `artifact_service` to `AgentEvaluator`**
**Doc file**: docs/evaluation/agent-evaluator.md
**Current state**:
> (Missing mention of artifact_service parameter)
**Proposed Change**:
> Document that `AgentEvaluator.evaluate()` and `evaluate_eval_set()` now accept an `artifact_service` parameter. Explain this is useful for pre-loading artifacts that eval cases can access by pinning `SessionInput.session_id`.
**Reasoning**:
Developers testing agents that rely on files/artifacts need a way to mock or provide those artifacts during evaluations.
**Reference**: src/google/adk/evaluation/agent_evaluator.py
### 23. **Document the new audio resampling utilities for evaluation**
**Doc file**: docs/evaluation/audio.md
**Current state**:
> (Missing documentation on audio utilities)
**Proposed Change**:
> Document the new audio utility functions, particularly `to_live_input` which resamples synthesized audio to the 16 kHz PCM format required by the Live API.
**Reasoning**:
Developers building custom audio simulation flows for live agent testing need to know how to properly resample TTS outputs to avoid pitch distortion.
**Reference**: src/google/adk/evaluation/_audio_utils.py
### 24. **Document new properties in `EvalConfig` for Live APIs and User Simulators**
**Doc file**: docs/evaluation/eval-config.md
**Current state**:
> (Missing documentation for live_model_config and simulator types)
**Proposed Change**:
> Document that `EvalConfig` now includes `live_model_config` (`LiveModelConfig`) to configure timeouts and parameters when evaluating a model in Live (bidirectional streaming) mode. Additionally, `user_simulator_config` now accepts multiple simulator types using a `type` discriminator (e.g., `{"type": "llm_audio", ...}` and `{"type": "llm_backed", ...}`).
**Reasoning**:
Essential for users who want to evaluate Live API models and need to specify exact simulator types (including audio simulation) in their eval configs.
**Reference**: src/google/adk/evaluation/eval_config.py
### 25. **Document Unicode support in the `final_response_match_v1` metric**
**Doc file**: docs/evaluation/metrics.md
**Current state**:
> (May not mention language limitations or assumes English text)
**Proposed Change**:
> Update the documentation for the `final_response_match_v1` metric (ROUGE-1) to highlight that it now natively supports CJK (Chinese, Japanese, Korean) and non-spaced scripts (like Thai). Note that for these languages, ROUGE-1 evaluates at the character or grapheme cluster level rather than full word granularity.
**Reasoning**:
Users evaluating agents in non-Latin languages will see accurate scores instead of 0, and should be aware of how the matching is tokenized.
**Reference**: src/google/adk/evaluation/final_response_match_v1.py
### 26. **Document the new Eventarc integration, including the toolset and domain-specific publisher**
**Doc file**: docs/integrations/eventarc.md
**Current state**:
> (Missing documentation for Eventarc integration)
**Proposed Change**:
> Add documentation describing the new `EventarcToolset`. Explain how to use the generic `publish_message` tool to publish CloudEvents to Eventarc Advanced buses. Furthermore, detail how to create domain-specific publish tools using `EventarcToolset.create_publish_tool()` with `CloudEventAttributesBinding` and `AgentProvided` to restrict or dynamically bind CloudEvent attributes like `bus`, `type`, and `source` based on structured payload schemas.
**Reasoning**:
Provides developers with the information needed to integrate ADK agents with Event-Driven Architectures using GCP Eventarc Advanced, which is a major capability added in this release.
**Reference**: src/google/adk/integrations/eventarc/_eventarc_toolset.py
### 27. **Document the new OCI GenAI integration for LLMs**
**Doc file**: docs/integrations/oci.md
**Current state**:
> (Missing documentation for OCI GenAI)
**Proposed Change**:
> Document `OCIGenAILlm` which allows using models hosted on Oracle Cloud Infrastructure Generative AI service (e.g., Llama, Gemini, Cohere). Detail the configuration options like `endpoint_id`, `compartment_id`, `auth_type`, and `reasoning_effort`.
**Reasoning**:
Major new integration capability added in this release.
**Reference**: src/google/adk/integrations/oci/_oci_genai_llm.py
### 28. **Document that `VertexAiRagMemoryService` now uses async I/O**
**Doc file**: docs/memory/vertex-ai-rag.md
**Current state**:
> (Missing or implies synchronous blocking operations)
**Proposed Change**:
> Mention that `VertexAiRagMemoryService` operations are now fully asynchronous, preventing event loop blocking during memory additions and searches.
**Reasoning**:
Assures developers building high-concurrency or live agents that the Vertex RAG memory service will not cause event loop stalls.
**Reference**: src/google/adk/memory/vertex_ai_rag_memory_service.py
### 29. **Document the new `ReflectAndRetryModelPlugin`**
**Doc file**: docs/plugins/reflect-retry.md
**Current state**:
> (Missing documentation for reflect and retry model plugin)
**Proposed Change**:
> Document `ReflectAndRetryModelPlugin`, which provides self-healing, concurrent-safe error recovery for model failures. Explain how to configure `max_retries`, `throw_exception_if_retry_exceeded`, `tracking_scope`, and `on_model_errors` (e.g., `MALFORMED_FUNCTION_CALL`). Show how to attach it to an agent to allow the LLM to reflect and correct its own errors.
**Reasoning**:
This is a major new capability for improving agent reliability through self-reflection.
**Reference**: src/google/adk/plugins/_reflect_retry_model_plugin.py
### 30. **Document the new `BigQueryAgentAnalyticsPlugin`**
**Doc file**: docs/plugins/bigquery-analytics.md
**Current state**:
> (Missing documentation for BigQuery Agent Analytics Plugin)
**Proposed Change**:
> Document the `BigQueryAgentAnalyticsPlugin` which exports agent execution data and analytics directly to BigQuery. Detail how to configure the dataset, table schema, and attach the plugin to the agent lifecycle.
**Reasoning**:
Significant new plugin introduced in the release for agent observability and analytics.
**Reference**: src/google/adk/plugins/bigquery_agent_analytics_plugin.py
### 31. **Document the new BigQuery Graph Skills capabilities**
**Doc file**: docs/tools/bigquery.md
**Current state**:
> (Missing documentation for BigQuery graph skills)
**Proposed Change**:
> Add a section detailing the new BigQuery Graph Skills. Explain that the BigQuery agent/toolset now includes built-in reference guides and skills for graph schema DDL (best practices, reference, feature parity, advisor) and semantic queries. This enables the agent to natively understand and generate BigQuery property graph queries and schemas.
**Reasoning**:
Developers using the BigQuery capabilities need to be aware that the agent now has specialized knowledge for working with BigQuery Graph capabilities natively.
**Reference**: src/google/adk/tools/bigquery/skills/bigquery-graph/SKILL.md
Contributor guide
Research direction
Start with the linked v2.5.0 to v2.6.1 comparison, then inspect each named documentation file alongside its referenced Python source file. Update all listed sections to match the release behavior across A2A, agents, authentication, telemetry, artifacts, and CLI deployment, and verify that every requested option or behavior is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100