1.1.0 (2026-04-10)
- Add ChatCompletionsRequest object (88eb0f5)
- Add ChatCompletionsResponse object (55becb8)
- Add ChatCompletionsResponse to LlmResponse conversion (ec88c64)
- add README for ADK LangChain4j integration library (f861ef9)
- add support for Gemma models in LlmRegistry (9d6cc80)
- add transcription in event (cb9d2e3)
- Implement Trace management, add HITL support (7407e37)
- Support Sub-agent Escalation event in Parallel Agent (Issue #561) (88c8b0e)
- Update event IDs in BaseLlmFlow's post processing section (d0e1085)
- Fix A2A protocol chunk streaming and task completion states (c95f669)
- Fix critical race condition in ADK Runner (51f4d1f)
- Fix critical race condition in ADK Runner (3091156)
- Fix race condition and stale session in ADK Runner (7964e93)
1.0.0 (2026-03-30)
- add
InMemoryArtifactServicetoAgentExecutorand updatepom.xmldependencies (24f8d5e) - enabling output_schema and tools to coexist (40ca6a7)
- add media/image support in Spring AI MessageConverter (8ab7f07), closes #705
- add schema validation to SetModelResponseTool (issue #587 already implemented, but adding tests from PR #603) (cdc5199)
- Ensure callbackContextData is preserved across session update (d1e05ca)
- firestore: Remove hardcoded dependency version (6a5a55e)
- Fixing tracing for function calls (84dff10)
- handle null
AiMessage.text()to prevent NPE and add unit test (PR #1035) (3e21e7a) - parallel agent execution (677b6d7)
- Removing deprecated methods from Runner (3633a7d)
- resolve MCP tool parsing errors in Claude integration (5a2abbf)
- revert changes to AbstractMcpTool, maintaining backwards compatible text_output field in the response (5f34d59)
- Using App conformant agent names (f3eb936)
- add pull request template (6bb721b)
1.0.0-rc.1 (2026-03-20)
- remove McpToolset constructors taking Optional parameters
- remove deprecated Example processor
- add handling the a2a metadata in the RemoteA2AAgent; Add the enum type for the metadata keys (e51f911)
- add type-safe runAsync methods to BaseTool (b8cb7e2)
- Enhance LangChain4j to support MCP tools with parametersJsonSchema (2c71ba1)
- fixing context propagation for agent transfers (9a08076)
- Implement basic version of BigQuery Agent Analytics Plugin (c8ab0f9)
- init AGENTS.md file (7ebeb07)
- Propagating the otel context (8556d4a)
- remove McpToolset constructors taking Optional parameters (dbb1394)
- Return List instead of ImmutableList in CallbackUtil methods (8af5e03)
- update requestedAuthConfigs and its builder to be of general Map types (f145c74)
- Update return type of App.plugins() from ImmutableList to List (8ba4bfe)
- Update return type of toolsets() from ImmutableList to List (cd56902)
- update Session.state() and its builder to be of general Map types (4b9b99a)
- update stateDelta builder input to Map from ConcurrentMap (0d1e5c7)
- fix null handling in runAsyncImpl (567fdf0)
- improve processRequest_concurrentReadAndWrite_noException test case (4eb3613)
- include saveArtifact invocations in event chain (551c31f)
- prevent ConcurrentModificationException when session events are modified by another thread during iteration (fca43fb)
- Relaxing constraints for output schema (d7e03ee)
- Removing deprecated methods in Runner (0af82e6)
- Use ConcurrentHashMap in InvocationReplayState (94de7f1), closes #1009
- workaround for the client config streaming settings are not respected (#983) (3ba04d3)
0.9.0 (2026-03-13)
- refactor ApiClient constructors hierarchy to remove Optional parameters
- remove deprecated LlmAgent.canonicalTools method
- remove deprecated LoadArtifactsTool.loadArtifacts method
- update LoopAgent's maxIteration field and methods to be @Nullable instead of Optional
- Remove Optional parameters in EventActions
- remove deprecated url method in ComputerState.Builder
- Remove deprecated create method in ResponseProcessor
- remove McpAsyncToolset constructors
- use @Nullable fields in Event class
- remove methods with Optional params from VertexCredential.Builder
- add formatting to the RemoteA2A agent so it filters out the previous agent responses and updates the context of the function calls and responses (0d6dd55)
- add multiple LLM responses to LLM recordings for conformance tests (bdfb7a7)
- add support for gemini models in VertexAiRagRetrieval (924fb71)
- Fixing the spans produced by agent calls to have the right parent spans (3c8f488)
- Fixing the spans produced by agent calls to have the right parent spans (973f887)
- refactor ApiClient constructors hierarchy to remove Optional parameters (910d727)
- Remove deprecated create method in ResponseProcessor (5e1e1d4)
- remove deprecated LlmAgent.canonicalTools method (aabf15a)
- remove deprecated LoadArtifactsTool.loadArtifacts method (bc38558)
- remove deprecated url method in ComputerState.Builder (a86ede0)
- remove executionId method that takes Optional param from CodeExecutionUtils (be3b3f8)
- remove McpAsyncToolset constructors (82ef5ac)
- remove methods with Optional params from VertexCredential.Builder (0b9057c)
- Remove Optional parameters in EventActions (b8316b1)
- replace Optional type of version in BaseArtifactService.loadArtifact with Nullable (5fd4c53)
- Trigger traceCallLlm to set call_llm attributes before span ends (d9d84ee)
- Update converters for task and artifact events; add long running tools ids (9ce78d7)
- update LoopAgent's maxIteration field and methods to be @Nullable instead of Optional (e0d833b)
- update return type for artifactDelta getter and setter to Map from ConcurrentMap (d1d5539)
- update return type for requestedToolConfirmations getter and setter to Map from ConcurrentMap (143b656)
- update return type for stateDelta() to Map from ConcurrentMap (3f6504e)
- update State constructors to accept general Map types (c6fdb63)
- use @Nullable fields in Event class (67b602f)
- Explicitly setting the otel parent spans in agents, llm flow and function calls (20f863f)
- Make sure that
InvocationContext.callbackContextDataremains the same instance (14ee28b) - Removing deprecated InvocationContext methods (41f5af0)
- Removing deprecated methods in Runner (0d8e22d)
- Removing deprecated methods in Runner (b857f01)
- override new version to 0.9.0 (a47b651)
0.8.0 (2026-03-06)
- remove methods with Optional params from LiveRequest.Builder
- remove deprecated methods accepting Optional params in InvocationContext
- remove deprecated BaseToolset.isToolSelected method
- remove Optional parameters from LlmResponse.Builder's methods
- remove support for legacy
transferToAgent, superseded bytransfer_to_agent
- add callbacks functionality to the agent executor (7e8f9dc)
- add example on how to expose agent via A2A protocol (e3ea378)
- Adding a Builder for EventsCompactionConfig (05fbcfc)
- Adding a SessionKey for typeSafety (d899f6f)
- Adding plugin(Plugin... p) helper methods on App and Runner builders (dc1a192)
- implement partial event aggregation in RemoteA2AAgent (e064067)
- remove deprecated BaseToolset.isToolSelected method (d2f1145)
- remove deprecated methods accepting Optional params in InvocationContext (88153c8)
- remove methods with Optional params from LiveRequest.Builder (84c62a4)
- remove Optional parameters from LlmResponse.Builder's methods (a3ac436)
- Allow injecting ObjectMapper in FunctionTool, default to ObjectMapper (re. #473) (71b1070)
- downgrade otel.version to 1.51.0 (117fedf)
- Ensure Gemini 3.1 models have events correctly buffered (acffdb9)
- Exit from rearrangeEventsForLatestFunctionResponse if size of events is less than 2 (5bc3ef8)
- Fixed issue where events were marked empty if the first part had an empty text; now checks all parts for meaningful content (a0cba25)
- prepare JSON serialization for Jackson 2.20.2 and Spring Boot 4.0.2 upgrades (8c6591b)
- revert: switch release please secret to use adk-java-releases-bot's token (7eafd1b)
- remove support for legacy
transferToAgent, superseded bytransfer_to_agent(c1ccb2e)
0.7.0 (2026-02-27)
- Add ComputerUse tool (d733a48)
- add the AgentExecutor config (e0f7137)
- drop gemini-1 support in GoogleSearchTool (15255b4)
- Extend url_context support to Gemini 3 in Java ADK (2c9d4dd)
- Extend url_context support to Gemini 3 in Java ADK (5f5869f)
- Handle final and error TaskStatusUpdateEvents (746e857)
- remove model restrictions in BuiltInCodeExecutionTool (1a593a9)
- Update AgentExecutor so it builds new runner on execute and there is no need to pass the runner instance (7218295)
- change Session events list to a threadsafe implementation by default (0b5ac92)
- deep-merge stateDelta maps when merging EventActions (ff07474)
- drop explicit gemini-1 model version check in GoogleMapsTool (7953503)
- LlmAgent model name resolution and improve Gemini-3 model detection logic (313ce85)
- make a mutable copy of function args for the beforeToolCallback invocations (64d3a77)
- Update a parameter name in a comment (5262d4a)
0.6.0 (2026-02-19)
- Add Compact processor to SingleFlow (ee459b3)
- Add Compaction RequestProcessor for event compaction in llm flow (af1fafe)
- Add ContextCacheConfig to InvocationContext (968a9a8)
- Add event compaction config to InvocationContext (8f7d7ea)
- Add event compaction framework in Java ADK (dd68c85)
- add eventId in CallbackContext and ToolContext (ac05fde)
- add ExampleTool to ComponentRegistry (2e1b09f)
- add response converters to support multiple A2A client events (4e8de90)
- Add token usage threshold to TailRetentionEventCompactor (9901307)
- Add tokenThreshold and eventRetentionSize to EventsCompactionConfig (588b00b)
- Add VertexAiSearchTool and AgentTools for search (b48b194)
- Adding a .close() method to Runner, Agent and Plugins (495bf95)
- Adding a new
ArtifactService.saveAndReloadArtifact()method (59e87d3) - adding a new temporary store of context for callbacks (ed736cd)
- Adding autoCreateSession in Runner (6dd51cc)
- Adding GlobalInstructionPlugin (72e20b6)
- Adding OnModelErrorCallback (dfd2944)
- adding resume / event management primitives (2de03a8)
- Adding TODO files for reaching idiomatic java (4ac1dd2)
- Adding validation to BaseAgent (5dfc000)
- Adding validation to BaseAgent and RunConfig (503caa6)
- Adding validation to InvocationContext 'session_service', 'invocation_id', (0502c21)
- Allow EventsCompactionConfig to have a null summarizer initially (229654e)
- enable LoopAgent configuration (d1a1cea)
- EventAction.stateDelta() now has a remove by key variant (32a6b62)
- Extend google_search support to Gemini 3 in Java ADK (ddb00ef)
- Fix a handful of small changes related to headers, logging and javadoc (0b63ca3)
- Forward state delta to parent session (00d6d30)
- HITL - remove the events between the confirmed FC & its response (3670555)
- HITL - Revert the "Boolean confirmation" changes, we'll fix it differently (f65e58b)
- HITL: Declining a proposal now correctly intercepts the run (9611f89)
- HITL: Let ADK resume after HITL approval is present (9611f89)
- Improving LoggingPlugin (acfaa04)
- Integrate event compaction in Java ADK runner (54c826c)
- Introduce TailRetentionEventCompactor to compact and retain the tail of the event stream (efe58d6)
- Introduce the
Appclass for defining agentic applications (d7c5c6f) - introduces context caching configuration for apps, ported from Python ADK (12defee)
- new ContextFilterPlugin (f8e9bc3)
- Refactor EventsCompactionConfig to require a summarizer (864d606)
- refactor remote A2A agent to use A2A SDK client (7792233)
- Refine bug and feature request issue templates (3e74c9a)
- register GoogleMapsTool in ComponentRegistry (464f0b2)
- Reorder compaction events in chronological order (66e2296)
- Setting up data structures for pause/resume/rewind (c6c52c4)
- Skip post-invocation compaction if parameters not set (76f86c5)
- Support function calls in LLM event summarizer (55144ac)
- support stdio_connection_params in McpToolset config (cc1588a)
- Token count estimation fallback for tail retention compaction (3338565)
- Update event compaction logic to include events after compaction end times (ea12505)
- Updating Baseline Code executors (a3f1763)
- updating Telemetry (5ba63f4)
- Updating the Tracing implementation and updating BaseAgent.runLive (8acb1ea)
- use Credentials' request metadata to populate headers (e01df11)
- Add name and description to configagent pom.xml (4948bfc)
- Align InMemorySessionService listSessions with Python implementation (9434949)
- Always use a mutable HashMap for default function arguments (c6c9557)
- emit multiple LlmResponses in GeminiLlmConnection (7bf55f1)
- Events for HITL are now emitted correctly (9611f89)
- fix linter error (f49260e)
- Fixing a problem with serializing sessions that broke integration with Vertex AI Session Service (8190ed3)
- Fixing a regression in InMemorySessionService (d11bedf)
- Fixing Vertex session storage (5607f64)
- HITL endless loop when asking for approvals (9611f89)
- include usage_metadata events in live postprocessing (8137d66)
- javadocs in ResponseConverter (be35b22)
- Make FunctionResponses respect the order of FunctionCalls (a99c75b)
- Making stepsCompleted thread-safe (d432c64)
- Merging of events in rearrangeEventsForAsyncFunctionResponsesInHistory (67c29e3)
- Mutate EventActions in-place in AgentTool (ded5a4e)
- pass mutable function args map to beforeToolCallback (e989ae1)
- populate finishReason in LlmResponse (dace210)
- Propagate trace context across async boundaries (279c977)
- recursively extract input/output schema for AgentTool (7019d39)
- Reduce the logging level (dd601ca)
- Remove checking ToolConfirmation from Functions to align with Python SDK (0724330)
- remove client-side function call IDs from LlmRequest (99b5fc2)
- Remove obsolete @param tags from SessionController Javadoc (a77971a)
- Replace @apiNote with <p> in Javadoc comments. (ac16d53)
- restore invocationContext() method (c9e2a5b)
- revert: Merging of events in rearrangeEventsForAsyncFunctionResponsesInHistory (101adce)
- update converters package classes (b66e4a5)
- update EmbeddingModelDiscoveryTest package statement (adeb9dc)
- Updated BasePlugin JavaDoc for name parameter (2e59550)
- Update comment in Runner (fe00ef8)
0.3.0 (2025-09-17)
- Allow
beforeModelCallbackto modify the LLM request - Integrate Memory Service into ADK runtime
- This change requires users to update their configurations to provide a service account JSON file. This enables authentication with cloud services.
- Add BaseToolset and update McpToolset to use the new interface (2aa474d)
- Add BaseToolset and update McpToolset to use the new interface (a211ac4)
- Add code executor (5ffa984)
- Add configurable CORS support via application.yml properties (4d4fe25)
- Add ContainerCodeExecutor (a0a1616)
- Add CORS configuration for local ADK-Web angular (4d4fe25)
- Add DeepWiki badge to README (2a44d51)
- Add GeminiSchemaUtil for converting OpenAPI/MCP
JsonSchematocom.google.genai.types.Schema(1945fad) - Add include_contents option to LlmAgentConfig to control inclusion of previous event contents in LLM requests (2bfbc8f)
- add instruction state injection bypass (a3746ed)
- Add MCP Toolset support for agent configuration (bdc39f7)
- Add sessionId() and events() to ReadOnlyContext (a348a30)
- Add support for configuring agent callbacks in YAML (27c0172)
- Add support for configuring subagents in ADK agents via YAML (d827eae)
- Add support for programmatic sub-agent resolution using 'code' key (c498d91)
- add support for Streamable HTTP Connections to MCP Tools (bea3244)
- Add support for streaming tools (fe1df53)
- Add usage metadata to LLM Response model (f5b8fda)
- Add VertexAiCodeExecutor (e5b1fb3)
- Added JSON Schema for configurable agents (095eff6)
- Added serviceAccountJson as a parameter for toolset (5ab8b14)
- Adds
mvn google-adk:web ...cli via maven plugin to allow users debug agents with Web UI much easier. (b02c559) - Adds support for YAML-based basic agents (9723f8a)
- ADK Plugin Base Class (dc29535)
- AgentStaticLoader; like an 🧝 Elve, instead of the 🧙 mage (fixes #149) (5fcd413)
- Allow LongRunningFunctionTool to be created with an instance (9bd2bd6)
- Allow max tokens to be customizable in Claude (bbf38e3)
- bypass state injection for instructions constructed with an
InstructionProvider(ef2931a) - config: Adds
ComponentRegistryfor loading objects in yaml config (55fffb7) - config: Adds
resolveAgentClass,resolveToolInstanceandresolveToolClassto ComponentRegistry for resolving the 3 type of components (8c107d2) - config: Supports loading yaml agents in
mvn google-adk@web ...(417a8bc) - Enforce serializable types for FunctionTools (bd0bb57)
- Implement automatic tool discovery for config-based agents (a2d9533)
- Implement tool configuration loading (f27f48c)
- Initial tutorials/city-time-weather (6ce41ef)
- Integrate Memory Service into ADK runtime (f4f8309)
- Integrating Plugin with ADK (c037893)
- introduce an experimental parameter to limit number of steps LlmAgent can take (4983747)
- Introduce ExampleTool for few-shot examples in LlmAgent (2162f89)
- Introduced ApplicationIntegrationToolset in JavaADK (e21807c)
- Introduced ConnectionClient and IntegrationClient to get OPENAPISPEC of connection (1e114cd)
- JBang! 💥 🤯 (e10e4f9)
- Make
FunctionDeclaration.buildFunctionDeclarationpublic (5bf9cb0) - make readonly context more efficient (60a1707)
- Make StreamableHttpServerParameters class non-final to allow subclassing (bc3ae43)
- maven: Supports using custom/subclass of ComponentRegistry to provide tools for agents (7c7d779)
- pass headers while init mcp client (744814a)
- pass timeout config while init mcp client (d255167)
- provide more detailed logs when mcp tool declaration failed. (4d5b63a)
- Refactors ADK agent loading with a new AgentLoader interface, add CompiledAgentLoader and AgentStaticLoader implementation, move YAML agent loader support to maven_plugin (0f7904b)
- SseServerParameters: Add configuration option for connection endpoint (83899b9)
- support AsyncMcpTool (0c50970)
- support for mcp async toolset (b867ea2)
- update ConfigAgentLoader to load agents from the current directory (008c196)
- Update FunctionTool to handle deserializing arbitrary return types (a33f4da)
- Update model resolution logic for LLM agents (4fc83f0)
removeis a state mutation operation and should also be captured in the delta (1071f1e)- Add missing logging for MCP Servers (e2c4d40)
- Added
httpclient5dependency topom.xmlto fix ADKWebServer instantiating issue (62eb2ec) - Allow
beforeModelCallbackto modify the LLM request (8e10df2) - Broken Dev UI (fixes #302) (852ebd8)
- change scheme to https (7bc003e)
- Check input validity before appending to example (97f02ab)
- Ensure function call ID is populated before building list of long running function calls (d204294)
- Exclude image labels when sending requests to Gemini API (7d10299)
- exclude Thought from being printed as context (40af9bb)
- expose LlmAgent's max steps parameter via a getter (0431e2b)
- Fix Claude LLM when no tools are provided (fixes #382) (99265cf)
- Fix InMemorySessionService timestamp seconds conversion (21c09ac)
- Fix the incorrect timestamp in
Event(e1214c1) - Fix view eval case (315f354)
- Fixed AgentStaticLoader bean registration using ApplicationContextInitializer and resolved OpenTelemetry double initialization in tests (87acdf8)
- Flip equals() in LangChain4j for better null safety (d5c98ad)
- formatting error in LangChain4J test (c4e363a)
- handle state removals when applying stateDelta in BaseSessionService.appendEvent (34151c7)
- IncludeContents.None not including user message in request (c0302b6)
- Increase default MCP client timeouts to 5 minutes (d46673e)
- Increase max output tokens for Claude to 8k (90b7bf4)
- JavaDoc mistake in ParallelAgent (ff3c803)
- live agents using Gemini don't call tools (cca154d)
- Make BaseMemoryService nullable in Runner (2955789)
- Make sessionService() in InvocationContext public instead of protected (1ae5639)
- missing "model" role in Gemini LLM responses (13dd978)
- multiple tool requests with langchain4j (92631a1)
- operation should be added irrespective of actions or entities (55b87ee)
- Refactor web server components and agent loaders from maven_plugin to dev module (9e3723b)
- Remove copy/pasta 🍝 in Mcp[Aync]Tool (d972b87)
- remove debug logs from base llm flow to prevent accidentally logging user data (cb95b56)
- Remove GeminiSchemaUtil and use JsonSchema directly in FunctionDeclaration (1a93675)
- Remove network package since it is not used (a3c47bc)
- Remove residual web components from maven_plugin (855da19)
- Removed
FeatureDecoratorclass (a678cca) - reverting incorrect fix handling appendEvent singles (5a7ab20)
- runAsync handles the async response of sessionService.appendEvent (eb232ee)
- Runner now includes Singles from appendEvent in the Rx graph (b862ad4)
- Same GenAI version in langchain4j as in core (6ef972d)
- StreamingToolTest flakiness (bfdf13c)
- Support parameterized List parameters for Function tools (89fb519)
- tool: Fixes ExitLoopTool by adding
Schemaand description (0099e5f) - Tracking headers not being added to default model use (2ab2065)
- use a sentinel object instead of null to indicate removal of keys from state (f1c0602)