Skip to content

Releases: google/adk-kotlin

v0.7.0

Choose a tag to compare

@adk-java-releases-bot adk-java-releases-bot released this 03 Aug 12:54

0.7.0 (2026-08-03)

Features

  • accept plugins on the agent-based InMemoryRunner constructor (3fc4af7)
  • add a context-caching demo agent example (89d1ee1)
  • add a Vertex AI Memory Bank-backed MemoryService (d8e96e7)
  • add a Vertex AI RAG-backed MemoryService (d0cc79d)
  • add a Vertex AI-backed SessionService (c746941)
  • add conformance harness, grounding metadata, and web server plugins (1d6b45c)
  • add createHttpOptions to ContextCacheConfig (52f54d5)
  • add memory-write helpers to CallbackContext (9be9908)
  • drop the internal opaqueData field in Part (e40cfe1)
  • make McpToolset headerProvider a suspend function (1021557)
  • mcp: give McpToolset a typed, paged internal resource API (29b232c)
  • mcp: load MCP resources by name or URI (c986cc6)
  • mcp: make McpToolset tool filtering context-aware via the shared ToolFilter (81583be)
  • mcp: make the MCP resource-template flow usable end to end (80b91b4)
  • memory: add on-device AppSearchMemoryService for Android (03b63cb)
  • tools: add ToolFilter and ToolPredicate for context-aware tool selection (8fae51e)
  • warn when an MCP tool schema declares a union type (c26bfa3)

Bug Fixes

  • allow hyphens in App names (34ff744)
  • make Session.events thread-safe against concurrent modification (6c2a295)
  • marshal MCP tool-call results into JSON-native maps (4fc6a25)
  • mcp: send a progress token on MCP tool calls so progress consumers fire (2d2fc72)
  • migrate web server serialization from Gson to kotlinx-serialization (e0b9255)
  • sessions: apply afterTimestamp and numRecentEvents together in VertexAiSessionService (000b120)
  • sessions: apply numRecentEvents and afterTimestamp together in InMemorySessionService (e2f7b49)
  • sessions: enforce Vertex AI session ownership and report backend user id (9675990)
  • Set the user role on Content created by AgentTool (43b5592)
  • tear down all MCP sessions on McpToolset.close and share one pooled session (93a1c80)
  • validate agent names in BaseAgent (dad9854)
  • webserver: stream SSE via the async channel to avoid truncating large responses (4337546)

Documentation

  • summarize the published modules and point at the examples directory (ada78af)

v0.6.0

Choose a tag to compare

@kvmilos kvmilos released this 20 Jul 14:05

0.6.0 (2026-07-20)

Features

  • a2a: add an A2A v1.0 client for JVM and deprecate the v0.3 JvmA2AAgent (54feaf9)
  • add a Firebase AI example to the Android examples app (8e09662)
  • Add CacheMetadata model for ADK Kotlin context caching (6faa0bd)
  • add callbackContextData to InvocationContext (723c814)
  • Add context-cache fields to LlmRequest/LlmResponse/Event for ADK Kotlin (788edd9)
  • Add ContextCacheConfig data class for ADK Kotlin (458af23)
  • Add ContextCacheRequestProcessor and register it in the LLM flow (8ccda14)
  • Add GeminiContextCacheManager and wire context caching into the Gemini model (18701fb)
  • add latestPromptTokenCount helper for token-threshold compaction (8c28b7e)
  • add on-device ML Kit Gemini Nano multi-turn chat Android example (e0552ce)
  • add token-threshold fields to EventsCompactionConfig (7668206)
  • add TokenThresholdEventCompactor tail-retention strategy (a667bcf)
  • add VertexAiRagRetrieval tool for Gemini-native RAG (f6f68d6)
  • core: migrate from the Java Gen AI SDK to the Kotlin Gen AI SDK (067dae1)
  • Fold cache scope into the context-cache fingerprint (4383556)
  • plugins: add DebugLoggingPlugin and align LoggingPlugin with ADK Python (ca22048)
  • Propagate context cache config from App through Runner to InvocationContext (64240db)
  • round-trip GenerateContentConfig labels and support routingConfig (d65becd)
  • run token-threshold compaction before model calls (4feb461)
  • serialization: expose the shared kotlinx Json instance and Any<->JsonElement helpers (91419ad)
  • set the ADK version on the telemetry instrumentation scope (b50e621)

Bug Fixes

  • align Ktor and kotlinx-coroutines with the GenAI SDK's Ktor 2.x (c94daef)
  • build and run the core module's Android instrumented tests (fd4fc45)
  • clear streaming Dev UI error (97cf537)
  • correct the Skills example button label in the Android examples app (00a9653)
  • Fixed the resolveScopedArtifactDir function where jvm (in windows) ignoring path which start with '/' as absolute path. (3a773ed)
  • generate function-call ids and re-attach thought signatures in the streaming aggregator (007bc4c)
  • handle window insets in the Android examples (ee48523)
  • keep Android example screens alive across rotation (852fab7)
  • keep retained events visible at a same-millisecond compaction boundary (11298af)
  • logging: stop logging sensitive data outside of the opt-in logging plugins (39e79ca)
  • nest engine spans under the caller's active span (a8cca93)
  • pin published kotlin-stdlib to 2.1 for Kotlin 2.1 consumer compatibility (7342e3d)
  • preserve Firebase thought signatures across session serialization (7a63ee1)
  • reassemble streamed function-call arguments in Gemini streaming (36add61)
  • recover compacted function calls during prompt assembly (fc31aba)
  • seed AgentTool child session from parent session state (64f79e6)
  • unify JVM/Android trace payload JSON via kotlinx serialization (4585b47)

Documentation

  • mlkit: document existing GenaiPrompt behaviour (536873f)

v0.5.0

Choose a tag to compare

@adk-java-releases-bot adk-java-releases-bot released this 06 Jul 09:42

0.5.0 (2026-07-03)

Features

  • add addEventsToMemory to MemoryService (93e40d9)
  • add addMemory to MemoryService (ebe280e)
  • add built-in request_input and get_user_choice human-in-the-loop tools (7c0de10)
  • agents: support RunConfig.maxLlmCalls (70f69c3)
  • firebase: map citation/usage/grounding fields and errorCode in Firebase conversions (932e2e1)
  • handle long-running input requests in the debug REPL (1e0d96e)
  • implement bypassMultiToolsLimit for google_search (1ed4481)
  • implement bypassMultiToolsLimit for vertex_ai_search (d4e9353)
  • models: add errorCode and customMetadata to LlmResponse (9834ded)
  • telemetry: honor ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS env var (23250e6)
  • telemetry: propagate gcp.mcp.server.destination.id on execute_tool (7b13efd)
  • telemetry: record full token-usage and reasoning-budget attributes (89cf418)
  • types: add avgLogprobs and logprobsResult to LlmResponse (37a5fbf)
  • types: add penalties, responseLogprobs, mediaResolution and serviceTier to GenerateContentConfig (2bb2ac2)
  • types: add safetySettings to GenerateContentConfig (e6d7bce)
  • types: add thoughts/tool-use token counts and modality details to UsageMetadata (79330ef)
  • types: add toolConfig/FunctionCallingConfig to GenerateContentConfig (8898fe2)
  • types: add videoMetadata and partMetadata to Part (40775ea)
  • types: carry grounding chunks/supports/search payload in GroundingMetadata (af3c573)
  • types: carry uri and span indices on Citation (46ac924)

Bug Fixes

  • add artifact sharing in AgentTool between the parent and wrapped agent (b26adbe)
  • agents: don't route the next user turn into a workflow agent's child (1a686e9)
  • agents: support resuming from a pending transfer_to_agent call (ead993d)
  • build: avoid OOM in adk-kotlin gradle build (0e61328)
  • fix agent transfer to return control to the parent after a sub-agent completes (339deca)
  • fix long-running result replay (895827e)
  • fix per-turn loop termination for tool confirmations (8e31b5b)
  • keep adk_request_input events in LLM context so the model sees the answer (d28e7ed)
  • make AgentTool run wrapped agent in an isolated session (7b280cf)
  • mergestateDelta into session state before onUserMessage/agent run (faa9816)
  • pass plugins from parent to wrapped agent's runner (e107906)
  • scope ADK Kotlin docs release analyzer to a single language (563a4f7)
  • stop gating built-in tools on model name (0858301)
  • suppress function-response for long-running tools that return Unit (1269fa6)
  • telemetry: drop inline_data and response_schema from traced llm_request (553e5ed)
  • types: tolerate unknown FinishReason values when deserializing (5bf2036)
  • widen ADK Kotlin Frontmatter.metadata type to Map<String, Any?> (2f69ddd)

Documentation

  • document the null default of Toolset.getTools readonlyContext (f7f4e81)

v0.4.0

Choose a tag to compare

@adk-java-releases-bot adk-java-releases-bot released this 23 Jun 08:10

0.4.0 (2026-06-22)

Features

  • add AssetSkillSource and introduce SkillMdParsing to reuse existing code (cef3bad)
  • add endInvocation() to CallbackContext and ToolContext (1bb5e3b)
  • add decoding of response wrapped confirmation response (f123f6e)
  • add filesystem-backed FileArtifactService (affc9bf)
  • add GitHub release-docs analyzer (Kotlin) (d30f824)
  • add LiteRT-LM model integration to Kotlin ADK (2d9557c)
  • Add maxSteps to Kotlin LlmAgent (912379e)
  • Add outputKey to LlmAgent to save final text responses to session state (1a16943)
  • add Room storage primitives for Android sessions (8b52926)
  • add Room-backed RoomSessionService for Android (3371551)
  • add Skills example to the examples module (f1a88a4)
  • add sliding-window event compaction strategy (625e065)
  • Add support for outputSchema in LlmAgent (1b94ec5)
  • Add UrlContextTool to ADK Kotlin (3e7b94e)
  • apply context-compaction summaries when building LLM request contents (9c771ee)
  • include thoughts and tool calls in compaction summaries, aligned with Python (2c71902)
  • move plugins and resumability configuration onto App (c7ee0b7)
  • serialize the Event graph with kotlinx.serialization (6146119)
  • support constructing a Runner from an App (e6f02e5)
  • telemetry: align telemetry spans with Python ADK (4035a3a)
  • wire sliding-window context compaction into the runner (65b383b)

Bug Fixes

  • add empty map as sentinel in FunctionResponse suppression in LongRunningTool (ac8b9e6)
  • agents: emit all sub-agent events from LoopAgent before pausing or exiting (ea10225)
  • agents: keep the parent branch across agent runs and transfers (8c41c8c)
  • exclude rewound invocations from sliding-window compaction (fe96d97)
  • models: align Gemini tracking headers with other ADK SDKs (1d61358)
  • runners: no-op when resuming an already-final invocation (b8cb0bb)
  • support custom name and description in @tool annotation (8bed997)
  • telemetry: align execute_tool span name with Python/Java ADK (501b618)
  • telemetry: emit OpenTelemetry spans on Android (0ccce75)
  • telemetry: set gen_ai.tool.type to the tool class name (fe0cbff)
  • telemetry: use gcp.vertex.agent as the instrumentation scope name (19de1c2)

Documentation

  • add a limitation remark about session persistence in Firebase (8fc1d2e)
  • add an on-device Room session example app (ce49924)
  • telemetry: clarify captureMessageContent intentionally defaults off (d7a5a14)

v0.3.0

Choose a tag to compare

@adk-java-releases-bot adk-java-releases-bot released this 12 Jun 13:52

0.3.0 (2026-06-12)

Features

  • A2A Agent remote sample added (ab34dd8)
  • Add AgentTransferDemoAgent for demonstrating agent-to-agent transfer (00a02e2)
  • Add GoogleSearchExample to the examples (09bc61c)
  • Add HitlDemoAgent example (dd75810)
  • add Runner.rewindAsync to undo session state and artifacts (96c6319)
  • Add TelemetryDemoAgent example (d9ac998)
  • introduce App data class for Kotlin ADK (e86d9f6)
  • introduce EventCompaction and add it to EventActions (aeb43b5)
  • introduce EventSummarizer interface (5fc6b14)
  • introduce LlmEventSummarizer (9c50e12)

Bug Fixes

  • honor rewindBeforeInvocationId in HistoryRewriterProcessor (33195bf)
  • make NewFileSystemSource.kt compatible with AndroidSDK 26+ (04195c1)
  • Update tracing in GenaiPrompt: redact prompts and function calls (a93e5d6)

v0.2.0

Choose a tag to compare

@mazas-google mazas-google released this 26 May 11:24

What's Changed

  • chore: mark version as 0.1.1-SNAPSHOT by @copybara-service[bot] in #3
  • feat: Add input schema validation to AgentTool by @copybara-service[bot] in #6
  • refactor(agents): do not rely on isPaused flag by @copybara-service[bot] in #13
  • refactor: move GoogleSearchTool, VertexAISearchTool and GoogleMapsTool to core/commonMain by @copybara-service[bot] in #12
  • refactor: remove Runner from AdkWebServer by @copybara-service[bot] in #15
  • refactor: introduce testSession() helper and adopt across ADK Kotlin tests by @copybara-service[bot] in #9
  • fix: exclude protobuf-java transitive dependency in android by @copybara-service[bot] in #17
  • refactor: add modelMessage() helper, drop modelTextResponse(), and adopt Content/LlmResponse factories in ADK Kotlin tests by @copybara-service[bot] in #7
  • refactor: replace local DummyAgent and MockModel duplicates with canonical testing helpers by @copybara-service[bot] in #14
  • feat: Add a new example agent demonstrating callbacks by @copybara-service[bot] in #22
  • refactor: redact sensitive log content from core components and update documentation for LoggingPlugin that it may log sensitive data by @copybara-service[bot] in #20
  • refactor: introduce testInvocationContext() and testToolContext() helpers and adopt across tools/ tests by @copybara-service[bot] in #18
  • refactor: adopt TRANSFER_TO_AGENT_TOOL_NAME constant in tests by @copybara-service[bot] in #19
  • refactor: adopt simplifyEvents() in test event-list assertions by @copybara-service[bot] in #16
  • feat: Add a new ReportGeneratorAgent example by @copybara-service[bot] in #25
  • fix(processor): support Map<String, Any> and List as @tool return types by @copybara-service[bot] in #24
  • chore: Bump version to 0.1.1 by @copybara-service[bot] in #27
  • feat: Added structural agent demos: LoopAgentDemo, ParallelAgentDemo, and SequentialAgentDemo by @copybara-service[bot] in #31
  • chore: Bump version to 0.2.0 by @copybara-service[bot] in #30

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@mazas-google mazas-google released this 19 May 16:16

What's Changed

ADK Kotlin 0.1 release. Provides core features for building AI agents on JVM and Android, including:

  • LLM agents, custom agents
  • Multi - agent orchestration
  • Function tools, Agent Skills, and long-running operations
  • In-memory session and memory services
  • Model integrations:
    • Gemini on JVM/Android (Google GenAI SDK, Firebase AI),
    • On-device Gemini Nano and Gemma (ML Kit)
  • ADK web UI interface

For full details, please visit the official documentation at https://adk.dev.

Full Changelog: https://github.com/google/adk-kotlin/commits/v0.1.0

v0.1.0-rc.1

v0.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@mazas-google mazas-google released this 19 May 09:50

What's Changed

Initial ADK Kotlin 0.1 RC. Provides core features for building AI agents on JVM and Android, including:

  • LLM agents, custom agents
  • Multi - agent orchestration
  • Function tools, Agent Skills, and long-running operations
  • In-memory session and memory services
  • Model integrations:
  • Gemini on JVM/Android (Google GenAI SDK, Firebase AI),
  • On-device Gemini Nano and Gemma (ML Kit)
  • ADK web UI interface

For full details, please visit the official documentation at https://adk.dev.

Full Changelog: https://github.com/google/adk-kotlin/commits/v0.1.0-rc.1