Commit Graph

1137 Commits

Author SHA1 Message Date
Zyan 1389dd0f82 Rename advanced-mcp-tools.md to mcp-tools-advanced.md 2026-08-26 14:15:34 -06:00
Zyan 8dae29b8cb Update advanced-mcp-tools.md 2026-08-12 11:00:03 -06:00
Zyan ebb3cb30d9 Update advanced-mcp-tools.md
This PR introduces the new **Advanced MCP Configuration Guide** (`docs/tools-custom/advanced-mcp-tools.md`), extracting advanced integration patterns, low-level lifecycle hooks, and production deployment architectures into a dedicated reference. This complements the core MCP guide ([#2081](https://github.com/google/adk-docs/pull/2081)) by keeping the quickstart focused while providing enterprise patterns for advanced developers.

---

## Key Improvements & Information Architecture

### 1. Developer Decision Matrix
- Added a lookup table at the top that maps common engineering requirements (multi-tenant auth, destructive tool safety, progress bars, containerization) to specific ADK APIs.

### 2. Prioritization by Real-World Frequency
The guide is structured progressively from high-demand configurations to specialized edge cases:
1. **Dynamic Authentication & Per-User Headers (`header_provider`)** — Multi-tenant token injection using `ReadonlyContext`.
2. **Human-in-the-Loop & Tool Confirmations (`require_confirmation`)** — Guardrails for destructive database/file operations.
3. **Real-Time Progress Tracking (`progress_callback`)** — Both global functions and context-aware session factories (`ProgressCallbackFactory`).
4. **Standalone Runner Execution (Outside `adk web`)** — Embedding agents into FastAPI/CLI backends with graceful `await toolset.close()` teardown.
5. **Enterprise Cloud Deployment Architectures** — Cloud Run stateless services (`StreamableHTTPConnectionParams`), GKE Pod Sidecars, and Vertex AI Agent Runtime.
6. **Tool Namespacing & Disambiguation (`tool_name_prefix`)** — Resolving naming collisions when combining multiple MCP servers.
7. **Bi-directional Protocol Hooks** — Handlers for server-initiated sampling (`sampling_callback`) and authentication challenges (`elicitation_callback`).
8. **Diagnostic Logging (`errlog`)** — Subprocess STDERR redirection for troubleshooting.

---

## Technical Verification Report against `google/adk-python`

All code examples, class imports, and parameter signatures in this PR were verified against the latest `google/adk-python` codebase:

| Feature / Snippet | Verification in `google/adk-python` | Verification Status |
| :--- | :--- | :--- |
| **`header_provider`** | [`mcp_toolset.py:L113-L119`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L113-L119) & [`L346-L352`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L346-L352) | Verified: Accepts `Callable[[ReadonlyContext], dict[str, str] \| Awaitable[dict[str, str]]]` and injects headers dynamically on each session call. |
| **`require_confirmation`** | [`mcp_toolset.py:L112`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L112) & [`function_tool.py:L278-L340`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/function_tool.py#L278-L340) | Verified: Supports both boolean flags and callable predicates receiving tool arguments. |
| **`progress_callback` & Factory** | [`mcp_toolset.py:L120`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L120) & [`mcp_tool.py:L496-L515`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_tool.py#L496-L515) | Verified: Supports standard `ProgressFnT` as well as `ProgressCallbackFactory` for modifying `ToolContext.state`. |
| **`Runner` Lifecycle Teardown** | [`mcp_toolset.py:L487-L499`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L487-L499) | Verified: `await toolset.close()` safely terminates the underlying `MCPSessionManager` and closes open subprocesses/streams. |
| **`StreamableHTTPConnectionParams`** | [`mcp_session_manager.py:L312-L339`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_session_manager.py#L312-L339) | Verified: Matches Pydantic model definition with `url`, `headers`, `timeout`, and `sse_read_timeout`. |
| **`tool_name_prefix`** | [`mcp_toolset.py:L108`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L108) | Verified: Passed through to `BaseToolset` to prefix all tool declarations and prevent namespace collisions. |
| **`sampling_callback` & `elicitation_callback`** | [`mcp_toolset.py:L122-L125`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/tools/mcp_tool/mcp_toolset.py#L122-L125) | Verified: Forwarded to `MCPSessionManager` for bi-directional protocol handling. |
| **CLI Deployment Commands** | [`cli_tools_click.py:L2229-L2770`](file:///usr/local/google/home/zyanya/.gemini/jetski/scratch/adk_review/adk-python/src/google/adk/cli/cli_tools_click.py#L2229-L2770) | Verified: Commands use active flags and omit deprecated arguments (such as `--staging_bucket`). |

---

## Verification Checklist

- [x] Code snippets follow canonical `from google.adk.agents import LlmAgent` imports.
- [x] Code blocks include multi-language tabs (Python, TypeScript, Java) where applicable.
- [x] All parameters match current Pydantic models in `google-adk` v2.x.
- [x] Tested markdown rendering, tables, and code block formatting.
2026-08-11 17:00:50 -06:00
Zyan ee7309ca94 Create advanced-mcp-tools page 2026-08-11 15:37:35 -06:00
adk-bot 60b802ed32 ADK_SUPPRESS_A2A_EXPERIMENTAL_FEATURE_WARNINGS #1521 - 25 (#1533)
* Update ADK doc according to issue #1521 - 25

* Document suppression of experimental feature warnings

Added instructions to suppress experimental feature warnings in logs in a note, whole section deleted

* Document suppression of experimental warnings

Added information on suppressing experimental feature warnings in logs.

* Update quickstart-exposing.md

---------

Co-authored-by: Juan Carlos Gonzalez Resendiz <juancarlosgon@google.com>
Co-authored-by: Zyan <zyanya@google.com>
2026-08-10 14:30:12 -06:00
Shahin Saadati d94dc2cd1b Add Kotlin snippet for context caching configuration (#2091)
* Add Kotlin snippet for context caching configuration

The context caching page showed Python and Java only. `ContextCacheConfig` and
the `App`-level wiring are available in adk-kotlin as of 0.7.0, so add a Kotlin
tab and advertise Kotlin support in the page badge.

The snippet is inline rather than transcluded to match the Python and Java tabs
on this page. It opts in at file level via `ExperimentalContextCachingFeature`,
which the API still requires, and uses `kotlin.time` durations so the TTL reads
as `10.minutes` rather than a `Duration.ofMinutes` call.

* Fix broken links to adk-python plugin samples

The three plugin sample links 404. adk-python renamed
`contributing/samples/plugin/` to `contributing/samples/plugins/`; the
directory contents are otherwise unchanged, so only the path segment moves.

This is what the repo-wide `link-check` job has been failing on. It is
unrelated to the 0.7.0 upgrade in this PR, but the check gates the merge and
the fix is confined to the three URLs.

Verified all three targets return 200.

* Use a minTokens value that actually has an effect

The snippet carried Python's `minTokens = 2048`. The 0.7.0 KDoc is explicit
that "Gemini enforces a hard 4096-token minimum that always applies, so values
below 4096 have no additional effect" -- so as written the line was inert and
the comment implied otherwise. Use a value above the floor and say where the
floor comes from.
2026-08-10 09:57:20 -07:00
Shahin Saadati 12c70c7106 Add Kotlin snippets for Memory Bank and RAG memory (#2089)
* Upgrade Kotlin examples to adk-kotlin 0.7.0

The Kotlin examples were pinned to adk-kotlin 0.5.0, which predates the
context caching, Vertex AI memory, and RAG retrieval APIs. Bump the pin to
0.7.0 so snippets for those features can be added.

Three consequences of the bump are handled here:

- `ExperimentalResumabilityFeature` was removed in 0.7.0, so RunConfigExample
  no longer opts into it. The annotation class is gone, not merely deprecated,
  so this is a hard compile break rather than a warning that could be deferred.
- The Vertex AI session and memory services expose Ktor's `HttpClient` as a
  defaulted constructor parameter, so any snippet naming them needs Ktor on the
  compile classpath, not just at runtime.
- The `resolutionStrategy` block forcing kotlin-stdlib 2.1.20 is now dead. It
  worked around 0.5.0 publishing a stdlib newer than this project's compiler;
  0.6.0 fixed that upstream. Verified that the highest stdlib on the compile
  classpath is still 2.1.20 without it.

Also fixes two unrelated snags found while validating the above:

- `check_kotlin_snippets.sh` walked `examples/kotlin` without pruning build
  output, so after any local build it reported every generated KSP file as an
  unregistered snippet. CI only ever ran it against a clean checkout, so the
  bug was invisible there.
- A transclusion path in logging.md was split across two lines, so the include
  never resolved and the code block rendered empty.

* Fix broken links to adk-python plugin samples

The three plugin sample links 404. adk-python renamed
`contributing/samples/plugin/` to `contributing/samples/plugins/`; the
directory contents are otherwise unchanged, so only the path segment moves.

This is what the repo-wide `link-check` job has been failing on. It is
unrelated to the 0.7.0 upgrade in this PR, but the check gates the merge and
the fix is confined to the three URLs.

Verified all three targets return 200.

* Add Kotlin snippets for Memory Bank and RAG memory

The memory page documented `VertexAiMemoryBankService` and
`VertexAiRagMemoryService` for Python and Java only; the Kotlin tab stopped at
the in-memory service. Both are available in adk-kotlin as of 0.7.0, so add
the two missing tabs.

Both services declare an `internal` primary constructor, so the snippets use
the public secondary one that takes project/location plus the engine or corpus
id -- reading the primary signature alone gives a constructor callers cannot
invoke.

The page's language-support badge stays at Kotlin v0.1.0: it marks when Kotlin
support for the page was introduced, and the other six Kotlin snippets on it
have worked since then.

The remaining diff in MemoryExample.kt is ktlint bringing pre-existing lines
into line with the repo style, which the linter now gates on because the file
is touched here.

* Correct the ragCorpus contract and wire both services to a Runner

Three fixes from review:

- The `rag_memory` KDoc claimed `ragCorpus` accepts a bare id or a full
  resource name. It is the opposite: `normalizeCorpusName` does
  `require(!ragCorpus.startsWith("projects/"))` and throws on a full name. The
  Python tab directly above this snippet passes a full resource name, so a
  reader switching tabs would have hit an IllegalArgumentException with a
  comment telling them it was fine. The note now states the bare-id rule and
  calls out the divergence from Python explicitly.
- Dropped "the primary constructor is internal" from the rendered snippet. It
  is a note for reviewers, not for readers, who cannot see that constructor.
  It stays in the PR description.
- Both snippets stopped at a factory function while the surrounding prose says
  "instantiating the service and passing it to the Runner" and the Python tab
  shows exactly that. They now build the service and pass it to a Runner.
2026-08-10 08:29:26 -07:00
Shahin Saadati 34d4ec2921 Add Kotlin snippet for the Knowledge Engine retrieval tool (#2090)
* Upgrade Kotlin examples to adk-kotlin 0.7.0

The Kotlin examples were pinned to adk-kotlin 0.5.0, which predates the
context caching, Vertex AI memory, and RAG retrieval APIs. Bump the pin to
0.7.0 so snippets for those features can be added.

Three consequences of the bump are handled here:

- `ExperimentalResumabilityFeature` was removed in 0.7.0, so RunConfigExample
  no longer opts into it. The annotation class is gone, not merely deprecated,
  so this is a hard compile break rather than a warning that could be deferred.
- The Vertex AI session and memory services expose Ktor's `HttpClient` as a
  defaulted constructor parameter, so any snippet naming them needs Ktor on the
  compile classpath, not just at runtime.
- The `resolutionStrategy` block forcing kotlin-stdlib 2.1.20 is now dead. It
  worked around 0.5.0 publishing a stdlib newer than this project's compiler;
  0.6.0 fixed that upstream. Verified that the highest stdlib on the compile
  classpath is still 2.1.20 without it.

Also fixes two unrelated snags found while validating the above:

- `check_kotlin_snippets.sh` walked `examples/kotlin` without pruning build
  output, so after any local build it reported every generated KSP file as an
  unregistered snippet. CI only ever ran it against a clean checkout, so the
  bug was invisible there.
- A transclusion path in logging.md was split across two lines, so the include
  never resolved and the code block rendered empty.

* Fix broken links to adk-python plugin samples

The three plugin sample links 404. adk-python renamed
`contributing/samples/plugin/` to `contributing/samples/plugins/`; the
directory contents are otherwise unchanged, so only the path segment moves.

This is what the repo-wide `link-check` job has been failing on. It is
unrelated to the 0.7.0 upgrade in this PR, but the check gates the merge and
the fix is confined to the three URLs.

Verified all three targets return 200.

* Add Kotlin snippet for the Knowledge Engine retrieval tool

The Knowledge Engine integration page only showed Python. `VertexAiRagRetrieval`
landed in adk-kotlin 0.7.0, so add a Kotlin tab and advertise Kotlin support in
the page badge.

Retrieval runs inside the model through the Gemini-native `vertexRagStore` kind
rather than as a locally executed tool, so the snippet configures the corpus via
`VertexRagStoreRagResource` and leaves invocation to the model.

Registers the new file in files_to_test.txt so it stays in the compile
regression suite.

* Use the conventional package for the RAG retrieval snippet

RagEngine.kt declared `package integrations`. Every other snippet in the tree
uses `com.google.adk.kt.examples.<area>`. It compiled either way because the
source root is `snippets/` and Kotlin does not require the directory to match
the package, so nothing would have caught it.

Also worth flagging for anyone reading this alongside the memory snippets: the
two APIs take opposite corpus formats. `VertexAiRagRetrieval` here wants the
full `projects/.../ragCorpora/...` resource name, while
`VertexAiRagMemoryService` wants a bare corpus id and rejects the full name.
That is the library's doing, not a docs inconsistency.
2026-08-10 08:22:15 -07:00
Milen Kovachev ab749867b0 docs(eventarc): Address technical verification report feedback (#2074)
- Add pip install "google-adk[gcp]" step to Eventarc Prerequisites.
- Clarify datacontenttype inference defaults and specify application/json in snippet prompt.
- Update Runtime Lambda table entry to use ctx.session_id and note support for payload and Context.
- Update OMIT table entry to list all mandatory attributes (type, source, bus, id, specversion).

Addresses feedback in https://github.com/google/adk-docs/pull/2045#issuecomment-5184438669

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-07 20:30:29 +00:00
Shahin Saadati b1b2eaa102 Upgrade Kotlin examples to adk-kotlin 0.7.0 (#2088)
* Upgrade Kotlin examples to adk-kotlin 0.7.0

The Kotlin examples were pinned to adk-kotlin 0.5.0, which predates the
context caching, Vertex AI memory, and RAG retrieval APIs. Bump the pin to
0.7.0 so snippets for those features can be added.

Three consequences of the bump are handled here:

- `ExperimentalResumabilityFeature` was removed in 0.7.0, so RunConfigExample
  no longer opts into it. The annotation class is gone, not merely deprecated,
  so this is a hard compile break rather than a warning that could be deferred.
- The Vertex AI session and memory services expose Ktor's `HttpClient` as a
  defaulted constructor parameter, so any snippet naming them needs Ktor on the
  compile classpath, not just at runtime.
- The `resolutionStrategy` block forcing kotlin-stdlib 2.1.20 is now dead. It
  worked around 0.5.0 publishing a stdlib newer than this project's compiler;
  0.6.0 fixed that upstream. Verified that the highest stdlib on the compile
  classpath is still 2.1.20 without it.

Also fixes two unrelated snags found while validating the above:

- `check_kotlin_snippets.sh` walked `examples/kotlin` without pruning build
  output, so after any local build it reported every generated KSP file as an
  unregistered snippet. CI only ever ran it against a clean checkout, so the
  bug was invisible there.
- A transclusion path in logging.md was split across two lines, so the include
  never resolved and the code block rendered empty.

* Fix broken links to adk-python plugin samples

The three plugin sample links 404. adk-python renamed
`contributing/samples/plugin/` to `contributing/samples/plugins/`; the
directory contents are otherwise unchanged, so only the path segment moves.

This is what the repo-wide `link-check` job has been failing on. It is
unrelated to the 0.7.0 upgrade in this PR, but the check gates the merge and
the fix is confined to the three URLs.

Verified all three targets return 200.
2026-08-07 13:24:29 -07:00
George Weale 839e898fcf docs(tutorials): fix ToolContext, output_key and persistence claims (#2032)
* docs(tutorials): fix ToolContext, output_key and persistence claims

* Update agent-team.md

* docs: address review — revert get-started changes, move streaming note

Reverts docs/get-started/python.md entirely and drops the edit to the
retired quickstart-streaming.md page. The corrected streaming caveat now
lands on docs/live/get-started/streaming-python.md, scoped to the
run_async path and naming SequentialAgent as the only workflow agent
with live support.

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-07 13:15:39 -07:00
Lucas Kang 88dbd90cae docs: add telemetry disclosure notices to Web UI and CLI docs (#2092)
* docs: add telemetry consent notice to Web UI docs

* docs: add telemetry consent notice to CLI docs

* Update index.md

* Update command-line.md

* Update index.md

* Update command-line.md

* Update command-line.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-07 10:55:21 -07:00
George Weale ab2d035e0d docs(observability): correct metric names, span attributes, logger names (#2013)
* docs(observability): correct metric names, span attributes, logger names

* docs(observability): restore otel_to_cloud metrics recipe, fix log-level fallback

* Update logging.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-07 10:28:30 -07:00
George Weale 80bdb8d0af docs(a2a): fix unresolvable imports, wrong kwargs and sample paths (#2014)
* docs(a2a): fix unresolvable imports, wrong kwargs and sample paths

* docs(a2a): correct port/agent_card semantics and the a2a_basic sample

* Update quickstart-consuming.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-07 17:08:47 +00:00
Zyan e25527b1dd Create enterprise web search integration page per issue #1113 - 3 (#2058)
* Create enterprise-web-search.md

Rendered page:
Logo's PR: #2057 
Agent's PR: #1121 and #1122 
Original Issue: #1113 

--

This PR adds the official documentation for the new EnterpriseWebSearchTool.

Key additions:

- Overview & Use Cases: Explains enterprise compliance, controlled web access, and regulated workflows.
- Code Examples checked against repositories: Provides initialization snippets for both Python (google-adk) and TypeScript (@google/adk).

* Update enterprise-web-search.md

* Update enterprise-web-search.md
2026-08-06 17:00:24 -06:00
Zyan 135350b340 Logo for Enterprise Web Search integration page (#2057) 2026-08-06 16:57:20 -06:00
Zyan 4453bcd1f6 Add allow_origins flag to cloud run page per issue #1113 - 1 (#2064)
* Add allow_origins flag to cloud run page per issue #1113 - 1

Rendered page: 
Agent's PR: #1118 
Original Issue: #1113 

--

This PR updates the deployment documentation to include --allow_origins flag (with regex support).

While the original draft suggested updating multiple pages, a review of the live site confirmed that this feature is already documented in the main CLI reference for the api_server and web commands.

Additional format changes:

- Fixed Markdown rendering bugs: Repaired broken code blocks in the Environment variables and Cloud Build permissions sections, fixed the misplaced Secret command, and corrected the malformed numbered list under Prerequisites.
- Style changes.

* Update cloud-run.md

* Update cloud-run.md
2026-08-06 16:54:48 -06:00
Zyan 2af8fdeea0 Update GlobalInstructionPlugin per issue #1227 - 10 (#2065)
Rendered page:
Agent's PR: #1244 
Original Issue: #1227 

--

The formal deprecation note for the old global_instruction parameter is already in the source code and API documentation (https://adk.dev/api-reference/python/google-adk.html) (https://adk.dev/plugins/).

Additionally I added a note here to explain it.
2026-08-06 19:12:50 +00:00
Zyan c07062e153 Add optimization section in agent index per issue #1227 - 12 (#2059)
* Add optimization section in agent index per issue #1227 - 12

Rendered page:
Agent's PR: #1248 
Original Issue: #1227

* Update index.md
2026-08-06 13:12:07 -06:00
Kristopher Overholt d5ad625366 Add July 2026 ADK Community Call recording (#2073)
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-05 23:32:16 +00:00
Amaad Martin c75e61f5f3 docs: normalize Typescript to TypeScript across the site (#2079)
The site rendered one language under two names. Tab labels were split
137 `TypeScript` / 53 `Typescript`, with three pages carrying both
spellings at once (custom-agents.md 7/7, patterns.md 1/7,
function-tools.md 4/1), and the language-support badges were split 67/18
the same way. Because pymdownx.tabbed slugifies tab labels to lowercase,
both variants rendered and linked fine, so no link check or build warning
ever flagged it -- it was visible only to readers, as two names for one
SDK.

Every user-visible occurrence is normalized to `TypeScript`, plus the two
inconsistencies that turned up while doing it. 80 changed lines, accounted
for exactly:

  53  tab label       === "Typescript"            -> === "TypeScript"
  18  badge span      lst-typescript">Typescript  -> TypeScript
   3  prose mention   cloud-run.md, mcp-tools.md, workflows/patterns.md
   2  api-reference/index.md card heading and link text
   1  badge div attr  title="...Python and Typescript."
   1  mkdocs.yml nav  Typescript ADK              -> TypeScript ADK
   1  code fence      ```javascript -> ```typescript on a .ts include
   1  artifacts/index.md closing summary sentence
  ---
  80

The first six rows are pure casing: 78 lines that differ from their
originals by nothing but `Typescript` -> `TypeScript`. The last two are
not, and are the reason this is not a `sed`:

llm-agents.md:872 fenced `--8<-- ".../capital_agent.ts"` as ```javascript.
It was the only javascript-fenced `.ts` include in docs/ (the other 189
TypeScript fences are correct), and it cost that one snippet its
TypeScript highlighting.

artifacts/index.md:1084 closed the page by naming languages and got the
list wrong. It described reaching the artifact methods "using Python's
context objects or directly interacting with the `BaseArtifactService` in
Java" -- a two-language enumeration at the end of a page that carries
Python, TypeScript, Go, Java and Kotlin tabs (11/10/10/10/11), and one
that contradicts :556, which correctly names four of them. The
enumeration is dropped rather than extended: the sentence now describes
the two ways to reach these methods -- through the context object, or
through `BaseArtifactService` -- which is what the page actually teaches
and does not rot when a sixth language is added.

docs/api-reference/index.md is included even though the rest of
docs/api-reference/ is generated output that must not be touched. That
tree holds 3,140 generated HTML files and exactly one hand-authored page:
this one. It is Markdown, it is the only api-reference entry mkdocs.yml
lists as `.md` rather than `index.html` (:272, :441), it uses Material
`grid cards` and `:fontawesome-*:` shortcodes, and it carries a
`CONTRIBUTORS:` note citing issues #1716 and #1717. Its TypeScript card
already said "TypeScript" twice in its body text while its heading and
link text said "Typescript"; those two are now consistent with the body.
No generated file is modified.

Not in this change: the broken `SseConnectionParams` sample in
mcp-tools.md (docs-ts/p6c-mcp-ts-sample) and the `@google/adk` example
version bumps (docs-ts/p6b-example-versions). Only the casing of the
prose line above that sample is touched here.

Verified: `mkdocs build` exits 0 with an empty warning set on both main
and this branch, and the two warning sets are identical. A rendered
before/after diff of the whole site shows every `__tabbed_*` id, every
tab radio id and every heading anchor unchanged. Zero `=== "Typescript"`
and zero `lst-typescript">Typescript` remain anywhere in the repo.

Co-authored-by: Amaad Martin <amaadmartin@google.com>
2026-08-05 15:58:49 -07:00
Haiyuan Cao 0fba5aa6f0 Enhance BigQuery Agent Analytics documentation (#2028)
* Enhance BigQuery Agent Analytics documentation

Updated documentation to clarify Java and Python plugin differences, added details on dropped-event observability, and improved explanations of event types and attributes.

* Address review: use language support tags and a single drop-reasons table

- Replace the inline Java version callouts in prose with language-support-tag
  blocks on the relevant sections (Built-in redaction, Dropped-event
  observability; ADK 2.0 workflow events already carried one).
- Collapse the duplicated 'Drop reasons (Python)' / 'Drop reasons (Java)'
  tables into a single table with a per-language column.
- Trim the duplicated Java scope prose in the intro and the ADK 2.0 note.

---------

Co-authored-by: Kristopher Overholt <koverholt@google.com>
2026-08-05 08:50:09 -05:00
Joe Fernandez 1d8a608348 docs(live): Refactor streaming docs, move streaming/ to live/ directory (#2063)
Co-authored-by: Shahin Saadati <happyhuman@users.noreply.github.com>
2026-08-04 16:09:24 -07:00
Milen Kovachev 9f1ae0d3f0 docs: add Eventarc tool integration page and code snippets (#2045)
* docs: add Eventarc tool integration page and code snippets

- Document general-purpose EventarcToolset and publish_message tool
- Document domain-specific create_publish_tool with static, dynamic, and runtime lambda attribute bindings
- Add complete, runnable Python code snippets for both built-in tool and domain-specific publishing
- Add Eventarc icon asset

* Improve the documentation after running integration-review script.

* Update eventarc.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-04 20:48:26 +00:00
George Weale 71dc8b0b61 docs(models): fix unparseable snippets and stale Claude setup steps (#2012)
* docs(models): fix unparseable snippets and stale Claude setup steps

* docs(models): correct apigee retry claim, LlmResponse.text, McpToolset spelling

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-08-03 16:38:17 -07:00
Zyan 308c783180 Update slack integration page tag to connectors (#2049) 2026-07-31 18:18:26 -05:00
Kristopher Overholt 3246d98ffb Dedupe discovered modules and auto-derive extras in the Python API reference generator (#2043)
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-31 17:59:42 -05:00
Joe Fernandez 9dae39408d docs (python): Python API Reference docs v2.6.0 (#2039)
- generated using https://github.com/google/adk-docs/tree/main/tools/python-api-docs
2026-07-31 13:51:30 -07:00
Zyan e62aa9b2d3 Create slack runner integration page #1521 - 4 (#2035)
* Create slack runner integration page #1521 - 4

Adds the official integration documentation for `SlackRunner`. 

- Created `docs/integrations/slack.md` following the Plugin template.
- Added Socket Mode installation and initialization instructions (`google-adk[slack]`).
- Checked against the integration-review and integration-create instructions.

* Update slack.md

* Update slack.md

Worked on feedback
2026-07-31 14:23:17 -06:00
dependabot[bot] 960b9a9d38 chore(deps): bump org.postgresql:postgresql (#2044)
Bumps the maven group with 1 update in the /examples/java/demos/patent-search-agent/src/main/java/tools/CloudRunFunction directory: [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc).


Updates `org.postgresql:postgresql` from 42.7.11 to 42.7.12
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.11...REL42.7.12)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.12
  dependency-type: direct:production
  dependency-group: maven
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-31 15:08:56 -05:00
Mikalai Senkevich f58f09c0df docs: add documentation for OpenAI model support in ADK agents (#2000)
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-31 18:29:21 +00:00
Kristopher Overholt bc749667a7 Update API reference docs for ADK TypeScript 1.5.0 (#2040) 2026-07-31 18:21:37 +00:00
Joe Fernandez 3e4a9ea715 docs: Update REST API reference to 2.6.0 (#2042)
* git

* docs: Update REST API reference to 2.6.0
2026-07-31 11:20:00 -07:00
Joe Fernandez c7827b6335 git (#2041) 2026-07-31 11:19:06 -07:00
Zyan cd66bc5128 Update propagate grounding metadata as per Issue #1587 - 6 (#2033)
* Update propagate grounding metadata as per Issue #1587 - 6

Rendered view
PR #1598 
Original Issue #1587 

--

- Improved explanation of original ask bot draft
- Added code example

* Update function-tools.md

* Update function-tools.md

* Update function-tools.md
2026-07-31 12:11:57 -06:00
Kristopher Overholt b0f0e12680 Add TypeScript API reference generation script; update API audit skill (#2038)
* Add script in tools/ to generate ADK TS API reference documentation

* Update API ref audit skill to reflect new ADK TS API ref generation script
2026-07-31 12:53:00 -05:00
Shivansh Sharma 0e1d6094e9 docs: document new RunConfig parameters (#2006)
Co-authored-by: SHAI-shivansh-sharma <SHAI-shivansh-sharma@users.noreply.github.com>
2026-07-31 15:45:42 +00:00
Shobhit Singh de510f8059 docs: remove experimental banner from data agent tools (#2037)
* docs: remove experimental banner from data agent tools

* Update data-agent.md

also remove "Experimental" tag subheader

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-31 08:15:21 -07:00
Zyan b0c2f1665a Slack logo (#2036)
Uploading png image for Slack logo
2026-07-30 20:56:41 -06:00
Zyan 7f1ce79a6f Update custom_metadata per Issue 1292 - 8 (#1983)
* Update custom_metadata per Issue 1292 - 8

Rendered page:
Agent PR: #1306 
Original Issue: #1292 

-Polished the explanation of how and why custom_metadata works. It now clearly outlines how developers can pass service-specific configurations (like ttl and revision_ttl) directly to the underlying Agent Platform.
- I found that the add_events_to_memory(events=...) section that the agent was proposing was already documented in the site.

* Update memory.md

Worked on feedback. Updated the custom metadata documentation to use a generic BaseMemoryService example instead of platform-specific services. The code snippet was also revised to use generic key-value pairs rather than prescriptive TTL keys.
2026-07-30 20:49:29 -06:00
Umer Ali b30cf33cd4 docs: fix missing imports in custom agents and graph routes examples (#1995)
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-30 23:03:54 +00:00
Ali Adnan 882165a8b2 Fix route key mismatch in conditional-routing.py workflow example (#1996)
* Update conditional-routing.py

* Update tools_and_agent.py

* Update tools_and_agent.py

* Update tools_and_agent.py

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-30 22:48:11 +00:00
Joe Fernandez c2c5359807 Update code-exec-agent-runtime.md (#2034) 2026-07-30 15:29:08 -07:00
Zyan 890af7cf79 Add Spanner Admin Toolset per issue #1521 - 6 (#1998)
* Update Spanner Toolset per issue #1521 - 6

Rendered page:
PR: #1525 
Original Issue #1521 

---

- Updated the page to add the Spanner admin toolset info with examples.
- Added configuration details for environment variables.
- Added alias for gemini-flash-latest to the bot's original snippet.
- Added contextual system instruction for the agent.

* Update spanner.md
2026-07-29 12:42:44 -06:00
adk-bot 23ea009dfc Update ADK doc according to issue #1256 - 4 - McpToolset Progress Updates (#1263)
* docs: Add section on Handling Progress Updates for McpToolset

* Update mcp-tools.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-28 19:26:39 -07:00
Joe Fernandez 84c5364d3b docs(session): refactor the session docs for better usability (#2027)
* Update index.md

* navigation and page title renaming
2026-07-28 23:44:24 +00:00
Josh Zhang 131a92e1d0 docs(integrations): refresh e2a page for the hosted-only MCP server (#2026)
* docs(integrations): refresh e2a page for the hosted-only MCP server

The e2a integration page has drifted from the service since it landed in
May. Corrections:

- Drop both Local MCP Server tabs. The `@e2a/mcp-server` npm package is
  retired and the current server has no stdio transport, so `npx -y
  @e2a/mcp-server` installs an abandoned build.
- Point the remote examples at `https://api.e2a.dev/mcp`, the endpoint
  published in the MCP Registry, instead of the older `mcp.e2a.dev`.
- Remove `E2A_AGENT_EMAIL`, which no longer exists; `whoami` takes no
  inputs and resolves identity from the credential.
- Remove the `E2A_BASE_URL` config table (renamed, and unused now that
  the page is hosted-only).
- Fix the held-send status: `pending_review`, not `pending_approval`.
- Drop the `agent_mode: local|cloud` guidance. There is no delivery mode
  to choose; inbound is available by polling or webhook subscription.
- Refresh the tool surface (~60 tools, was 18) and group it by credential
  scope, since an agent-scoped key sees only the runtime tools.
- Update repository links for the tokencanopy org rename.

* docs(integrations): recommend the e2a SDK for production ADK agents

The MCP toolset gives the model the inbox, which is the wrong layer for
the deterministic parts of a deployment: webhook signature verification,
at-least-once delivery handling, and idempotent sends. Add a section
recommending the SDK own that boundary, with the MCP toolset kept for
model-driven actions inside a turn, and point at the working example.

* docs(integrations): add WebSocket delivery and future-proof the tool count

Two corrections after checking the page against the running service:

- Receiving mail listed only polling and webhooks. WebSocket delivery via
  the SDK's listen() needs no public URL, which makes it the practical
  choice while developing an ADK agent or for a long-running agent that
  isn't a web service.
- The tool surface grows; state 60+ rather than a number that dates.

* docs(integrations): restructure e2a page to the integration template

Address review feedback. Drop the four added top-level sections ('For
production', 'Key scope', 'Receiving mail', 'Sending and review holds')
and fold only the load-bearing facts back into the template's existing
shape:

- Key scope becomes two sentences introducing Available tools, since an
  agent-scoped key genuinely cannot see the admin tools listed there.
- The SDK recommendation becomes a short tip after the code sample,
  keeping the inline links.
- Delivery options and OAuth become one sentence each in Configuration.
- accepted/pending_review moves into the send_message table row.

Additional resources trimmed to four: dropped the MCP Registry link (a
raw JSON API) and the two SDK links, which remain linked inline.

Page is now intro / use cases / prerequisites / one sample / tools /
configuration / resources, 186 lines.

---------

Co-authored-by: Kristopher Overholt <koverholt@google.com>
2026-07-28 17:48:35 -05:00
Zyan 342e36d8ee Update OpenAPI tool execution section per Issue #1227 - 11 (#1991)
* OpenAPI tool execution section per Issue #1227 - 11

Rendered view
PRs> #1245 #1246 
Original Issue> #1227 

---

- Updated the execution section of the OpenAPI tool and improved language.
- Did minor edits to format and headers

* Update openapi-tools.md
2026-07-28 16:39:51 -06:00
Zyan 0a9cc3a7db Update include_plugins per Issue #1173 - 9 (#1990)
* Update include_plugins per Issue #1173 - 9

Rendered page>
PRs> #1190  #1192 
Original Issue> #1173 

- Changed the proposed note format into a bullet point.
- Made the explanation shorter and more direct so it matches Google's writing style guide.
- Fixed and replaced the undefined agent variable with a concrete MyImageAgent placeholder class to make the Python snippet self-contained.
- Added comments inside the code to explain exactly what happens when you turn plugins on or off (like how it affects things like tracing and events).
- Did light formatting in the rest of the page

* Update function-tools.md

* Update function-tools.md

fixed rendering mistakes

* Update function-tools.md

Adding a bullet did not work, I created a sub topic to stop the snippet from breaking in the rendering.

* Update function-tools.md
2026-07-28 16:30:37 -06:00
George Weale 98556ba5ad docs(deploy): correct adk deploy CLI options for Cloud Run and GKE (#2011)
* docs(deploy): correct adk deploy CLI options for Cloud Run and GKE

* Update python.md

---------

Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
2026-07-28 20:19:26 +00:00