Releases: google/adk-kotlin
Releases · google/adk-kotlin
Release list
v0.7.0
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
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
resolveScopedArtifactDirfunction 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
0.5.0 (2026-07-03)
Features
- add
addEventsToMemoryto MemoryService (93e40d9) - add
addMemoryto 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
AgentToolbetween 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
AgentToolrun wrapped agent in an isolated session (7b280cf) - merge
stateDeltainto session state beforeonUserMessage/agentrun (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
0.4.0 (2026-06-22)
Features
- add
AssetSkillSourceand introduceSkillMdParsingto reuse existing code (cef3bad) - add
endInvocation()toCallbackContextandToolContext(1bb5e3b) - add decoding of
responsewrapped 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
FunctionResponsesuppression inLongRunningTool(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
v0.3.0
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
v0.2.0
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
RunnerfromAdkWebServerby @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
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
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