* Move adk web Visual Builder page content into Runtime > adk web page
* Clarify Visual Builder in intro
* Fix casing for consistency
* More casing fixes
* Move Visual Builder page under Web Interface
* Fix link from runtime index page
* Keep Visual Builder file at original path, nest under Web Interface in nav
---------
Co-authored-by: Joe Fernandez <joefernandez@users.noreply.github.com>
* Add Kotlin to hero / front page
* Add quickstart page for Kotlin
* Complete Kotlin quickstart guide and fix hero code sample (#2)
* Replace GitHub repo links with language icons in header (#3)
* Fix header icon FOUC and homepage font weight regression (#4)
* Testing staging pipeline
* Revert test edit (for staging pipeline)
* Update language icon tooltips to indicate GitHub destination (#5)
* Add link to ADK Kotlin release notes (#7)
* Initial commit of ADK Kotlin API reference docs (#6)
* Add script to generate ADK Kotlin API reference docs (#8)
* Update links and link checker ignore list (temporarily) (#9)
* Add ADK Kotlin for Android getting started guide to Advanced setup page (#10)
* Add advanced setup page with steps to "Use ADK Kotlin in Android projects"
* Update temp link checker rules
* Add placeholder folder for adk-samples (#13)
* adding linter/compilation checks for kotlin snippets (#12)
* adding linter/compilation checks for kotlin snippets
* Add Kotlin validation scripts
* Initial commit of Kotlin sample agents for adk-samples (#15)
* Adding kotlin snippet for llm agents (#16)
* Adding kotlin snippets to Events (#17)
* Pull changes to docs/events/index.md from glaforge-kotlin-snippets
* fixing kotlin event timestamp and longRunningToolIds
* Fix language tags (#19)
* Fix language tags
* Update
* Fix wrapping
* Fix wrapping (again)
* Fix wrapping/format
* Fix language tag on integration page
* Enable check_paths in PyMdown Snippets Extension to make the build fail if a snippet can't be found (#20)
* Update mkdocs config (#21)
* Fix broken links, update URLs to adk.dev, and improve (temp) lychee config (#22)
* Add Kotlin/maven badge to README (#23)
* Adding Kotlin snippets for artifacts (#18)
* Pull Kotlin snippets for artifacts from glaforge-kotlin-snippets
* Add comprehensive Kotlin snippets for artifacts
* Refactor artifacts documentation to use external Kotlin snippets
* Update Kotlin model to gemini-flash-latest
* Fix GCS initialization in Kotlin artifact snippet
* afixi failing test with capital-agent added to files_to_check
* Fix snippet label syntax for MkDocs build
* Configure proper Gradle project for Kotlin snippets and fix dependencies
* Add KSP support and generated sources to Kotlin snippets build
* fixing capital_agent turnComplete
* Fix syntax error in build.gradle.kts by removing invalid placeholders (#25)
* Adding Kotlin snippets to google-gemini.md (#27)
Pulling kotlin changes to google-gemini.md from glaforge-kotlin-snippets
* Add a warning about not adding an api key to production code. (#28)
* Add a warning about not adding an api key to production code.
* Update note
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* Add ADK Demo App sample showcasing Gemini-powered agents (#29)
This sample demonstrates how to use the Google ADK (Agent Development Kit) in an Android application to create a chat interface powered by a Gemini-based "Fun Facts" agent. The implementation features:
* Integration with the Kotlin ADK core and processor libraries.
* A `FunFactsAgent` defined using `LlmAgent` and the Gemini model.
* A `ChatViewModel` utilizing `InMemoryRunner` for asynchronous message streaming.
* A modern UI built with Jetpack Compose and Material 3.
* Build configuration logic for secure API key management via environment variables or `local.properties`.
* Update Kotlin docs and samples to align with adk-kotlin API changes (#30)
Rename GeminiModel to Gemini, @AdkTool/@AdkParam to @Tool/@Param,
adkTools() to generatedTools(), replace DebugRunner with InMemoryRunner,
fix AgentLoader import path, use SingleAgentLoader, bump Kotlin to
2.3.21 and KSP to 2.3.7, and update Android minSdk from 24 to 26.
* adding kotlin info to READMEs (#14)
* Reorganize Android sample agent and add READMEs (#31)
* Move Android sample agent
* Update repo README, add Android README, update sample agent README
* Minor edit to language support tags (#32)
* Remove blog post link (#33)
Will re-add after it's published
* Remove examples link (#34)
* Adding Kotlin snippets for Sessions docs (#26)
* initial kotlins snippets additions to sessions docs
* Updating memory docs with kotlin snippets
* Adding kotlin snippets to session state docs.
* update model to gemini-flash-latest
* sessions examples clean-up
* fixing sessions snippet markers
* adding kotlin session snippets to files to test
* adding callback to memory_example
* Fixing capital agent snippet (#35)
Fixing file name
Updating adkTool > Tool
Updating GeminiModel > Gemini
* Adding kotlin snippets for tools docs (#36)
* adding function tool kotlin snippets
* adding function_tools snippets to files to test
* Adding kotlin snippets to observability docs (#37)
* initial kotlin observability updates
* adding observability snippets to file check (#38)
* Adding Kotlin snippets to Callbacks docs (#39)
* kotlin callbacks snippets
* adding callbacks snippets to file check
* Align Kotlin and KSP versions with published 0.1.0 artifacts (#40)
* switch CLI entry points from InMemoryRunner to ReplRunner (#41)
* Switch CLI entry points from InMemoryRunner to ReplRunner
* Fix wording
* Update API reference docs for Kotlin, 2026-05-18 (#42)
* Remove ADK on Android note until published (#43)
* Update Kotlin code samples (#44)
* Rename GeminiModel to Gemini in Kotlin snippets and docs
* Remove broken SessionKey call and use sessionId directly in AgentTool snippet
* Rewrite Go hero snippet to use llmagent API
* Use isFinalResponse with safe access in CapitalAgent snippet
* Use Role.USER constant instead of raw string in SetupExample
* Use full semver v0.1.0 in Kotlin language support tags
* Remove Android setup steps, moving to new property (#45)
* Tutorial Kotlin agent (#46)
* Adding multi-tool-agent snippet and updating tutorial
* Fixing Go language order on tutorial page
* adding multi tool agent example to files to test
* Inline Kotlin get-started code sample
* Kotlin Multi agents snippets (#47)
* Multi-agent kotlin snippets
* Fixing docs tags in multiagent example
* Fix Kotlin language support tags, code samples, and google-gemini.md cleanup (#48)
* Add Kotlin v0.1.0 to language support tags across docs
* Fix MultiToolAgent.kt model string and argument style
* Update MultiAgentExample.kt to use gemini-flash-latest model string
* Fix google-gemini.md: add Kotlin sample, remove unsupported Java tabs
* Remove explicit apiKey from CallbackBasic.kt for consistency
* Standardize Gemini() constructor to use named args in all snippets
* Remove adk-samples directory (moved to google/adk-samples#1969)
* Remove adk-samples directory (moved to google/adk-samples#1969) (#49)
* Update API reference docs for ADK Kotlin 0.1.0 (#50)
* Remove adk-samples directory (moved to google/adk-samples#1969)
* Update API reference docs for ADK Kotlin 0.1.0
* Remove kotlin lycheeignore config (#51)
* Remove adk-samples directory (moved to google/adk-samples#1969)
* Remove Kotlin .lycheeignore config links
---------
Co-authored-by: Toni Klopfenstein <2359976+ToniCorinne@users.noreply.github.com>
Co-authored-by: Jolanda Verhoef <JolandaVerhoef@users.noreply.github.com>
* Add e2a integration
e2a is an authenticated email gateway for AI agents — SPF/DKIM-verified
inbound, optional human-in-the-loop approval before outbound mail
ships. Distributed as an MCP stdio server via npx -y @e2a/mcp-server,
exposing 11 tools for inbox management, threaded replies, and HITL
approval flows.
Source: https://github.com/Mnexa-AI/e2a/tree/main/mcp
npm: https://www.npmjs.com/package/@e2a/mcp-server
* docs(e2a): shorten catalog_description per review feedback
* add agent-identity integration page link
* Refactor authentication documentation for clarity
Removed redundant information about OAuth tokens and streamlined the text regarding the Agent Identity Authentication Manager.
* test commit
* Enhance documentation with OAuth resource links
Added additional OAuth authentication resources for Google Cloud Agent Identity.
* remove extra new line
* Update authentication.md
---------
Co-authored-by: Joe Fernandez <joefernandez@users.noreply.github.com>
* Fix RunConfig docs: correct import path and add missing fields
The Python import was documented as `from google.genai.adk import
RunConfig, StreamingMode`, but the actual import path in adk-python is
`from google.adk.agents.run_config import RunConfig, StreamingMode`.
Corrected all four occurrences.
Synced the page against
https://github.com/google/adk-python/blob/main/src/google/adk/agents/run_config.py:
- Added 11 previously undocumented fields to the class definition, the
parameter table, and dedicated sections: avatar_config,
input_audio_transcription, realtime_input_config,
enable_affective_dialog, proactivity, session_resumption,
context_window_compression, save_live_blob, tool_thread_pool_config,
custom_metadata, get_session_config.
- Marked save_input_blobs_as_artifacts as deprecated and pointed readers
to SaveFilesAsArtifactsPlugin; removed it from the comprehensive
Python example.
- Corrected StreamingMode.BIDI description: it is not used by
run_async(); bidirectional streaming goes through runner.run_live().
- Fixed output_audio_transcription default in the table (the field uses
default_factory=AudioTranscriptionConfig, not None).
- Added a ToolThreadPoolConfig example with a GIL note and a
GetSessionConfig example.
* Rework RunConfig docs from per-field API ref duplication into a use-case-oriented guide with verified multi-language code samples
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* Fix command flag for GCP metrics export
* Additional related fixes for --otel_to_cloud flag
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* docs: add integration guide for Agent Identity Auth Manager
* docs: reformat agent-identity.md to match integration guidelines
* docs: update agent-identity.md based on review
* docs: add icon for agent identity integration
* docs: fix icon format for agent identity integration
* Edits to Agent Identity integration page for docs conventions
* Revise agent-identity.md for clarity and updates
Updated the documentation for the Agent Identity Auth Manager to clarify features and improve readability.
* Revise Agent Identity documentation for OAuth flow
Updated the Agent Identity documentation for clarity and added details on OAuth consent flow handling.
* Refactor agent-identity.md for clarity and formatting
Updated formatting and improved clarity in the documentation for the Agent Identity Auth Manager.
* Clarify OAuth consent flow and credential handling
Updated the OAuth consent flow section for clarity and added details on handling the continue URI and credential finalization.
* Refine text for clarity in agent-identity.md
Clarify language and improve readability in the Agent Identity documentation.
* Update Agent Identity auth provider configuration details
Revised instructions for configuring the Agent Identity auth provider and handling user consent flow, including code examples and clarifications.
* add proper spacing
* Updated card title and formatting
* Update agent-identity.md
---------
Co-authored-by: Prashant Patare <prashantpatare@google.com>
Co-authored-by: Kristopher Overholt <koverholt@google.com>
Co-authored-by: Joe Fernandez <joefernandez@users.noreply.github.com>
* Add Grafana Cloud MCP server integration
Add an integration page for the Grafana Cloud MCP server, which connects
ADK agents to Grafana Cloud observability data (Prometheus, Loki, Tempo,
dashboards, alerts, incidents, and more) via 60+ MCP tools.
Includes Python and TypeScript examples using StreamableHTTP transport
with OAuth 2.1 authorization.
* fix: clarify that users need access to a Grafana Cloud instance, not an account
* Fix docs URLs
* Update docs/integrations/grafana-cloud.md
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* docs(atlan): add Atlan integration page with updated copy and full tool list
Adds the Atlan MCP integration page for ADK. Positions Atlan as
the context layer for enterprise AI (not a data catalog), matching
the copy used in the VS Code and Cursor IDE extensions. Includes
the complete set of 28 tools exposed by the hosted MCP server,
organized by capability.
* Formatting edits
* Formatting in use case bullets
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* docs: add Atlan MCP integration page
Adds an integrations catalog entry for the Atlan data catalog MCP
server, covering semantic search, lineage traversal, governance, and
data quality tools. Mirrors the format used by the Atlassian MCP page.
* docs(atlan): expand tool list to match hosted MCP server
Adds tools that the hosted Atlan MCP server (mcp.atlan.com) exposes
but were missing from the table: get_asset_tool, resolve_metadata_tool,
get_groups_tool, search_atlan_docs_tool, manage_announcements_tool,
manage_asset_lifecycle_tool, the custom-metadata set/value tools
(create/delete/add/remove attributes, update/remove values), and the
Atlan tag tools (add/remove). Drops get_assets_by_dsl_tool, which is
not registered on the hosted server. Groups tools by capability for
readability.
* docs: document LoadArtifactsTool usage
* Add Go tab, rename heading, and drop Python-specific language
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
Documents mode="search_and_execute" shipped in stackone-adk 0.2.0 on the
StackOne integration page. Adds a new section between "Use with agent" and
"Available tools" with rationale (token overhead, payload limits, selection
accuracy), a runnable Python code sample, and an explanation of the
tool_search/tool_execute flow. Adds four rows to the Plugin parameters
table for mode, search, execute, and timeout.
Code sample verified end-to-end against a real StackOne account on
gemini-flash-latest.
* Add agent routing and model routing docs for RoutedAgent and RoutedLlm in ADK JS
* Update example code snippets
* Add renamed code sample files
* Update lychee link checker config
* Shorten docs and snippets paths and filenames
* Update titles
* Rework intros
* Rework intros
* Add notes about experimental status
* Move InMemoryRunner outside of code snippet regions since it's unused in rendered snippet
* docs: update Cloud Run deployment guide for compute service account to have permission to use Cloud Build.
* Update cloud-run.md
---------
Co-authored-by: Joe Fernandez <joefernandez@users.noreply.github.com>
* docs: add Markifact MCP integration
Adds the Markifact MCP server (https://api.markifact.com/mcp) as an ADK integration with both Local (mcp-remote OAuth) and Remote (Streamable HTTP + bearer) connection patterns for Python and TypeScript.
* Formatting and edits
* Markifact site is returning an error with our link checker CI
Rejected status code: 429 Too Many Requests (configurable with "accept" option)
* Remove unneeded URL that is also failing link checker
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* Update documentation for setting logging in ADK
* Added OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT to Python and ADK web
* Small formatting issue
* Fix logging docs: bugs, heading structure, and copy-paste errors
- Fix os.environ assignment crash: bool True to string "true"
- Fix two errors: "traces"/"metrics" changed to "logs"
- Fix heading hierarchy: Python and Go setup as sibling h3 sections
- Add intro text under Python and Go programmatic setup headings
- Restore Go launcher CLI example that was removed in restructure
- Remove TypeScript and Java from language tags
- Remove redundant sentences in intro and Python setup sections
* Improve logging docs formatting and trim debugging example
- Convert blockquote notes to MkDocs admonitions
- Remove horizontal rules between sections
- Trim debugging example: trim redundant steps and log output
- Clean up section headings
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* docs(memory): refresh against current adk-python APIs
The memory page has drifted from the implementation. The MultiMemoryAgent
example raises ValueError on construction (assigning to a Pydantic model
with extra="forbid"), the auto-save callback reaches into the private
_invocation_context attribute when public Context.add_session_to_memory()
exists, and the API surface description is missing add_events_to_memory,
add_memory, and the third memory service (VertexAiRagMemoryService).
* Update product names
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* docs(integrations): add Cisco AI Defense integration page
Add documentation for the Cisco AI Defense plugin for Google ADK,
providing runtime LLM and MCP tool inspection with monitor and enforce
modes. Includes logo asset and code examples for both plugin and
callback approaches.
Resolves#1665
Made-with: Cursor
* Formatting and copy edits
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>