Skip to content

Latest commit

 

History

History
451 lines (360 loc) · 48.2 KB

File metadata and controls

451 lines (360 loc) · 48.2 KB

Changelog

1.1.0 (2026-04-10)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • add InMemoryArtifactService to AgentExecutor and update pom.xml dependencies (24f8d5e)
  • enabling output_schema and tools to coexist (40ca6a7)

Bug Fixes

  • 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)

Documentation

  • add pull request template (6bb721b)

Miscellaneous Chores

  • set release version to 1.0.0 (dd1c941)
  • set version to 1.0.0-rc.2 (678b496)

1.0.0-rc.1 (2026-03-20)

⚠ BREAKING CHANGES

  • remove McpToolset constructors taking Optional parameters
  • remove deprecated Example processor

Features

  • 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)

Bug Fixes

  • 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)

Miscellaneous Chores

  • remove deprecated Example processor (28a8cd0)
  • set version to 1.0.0-rc.1 (dc5d794)

0.9.0 (2026-03-13)

⚠ BREAKING CHANGES

  • 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

Features

  • 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)

Bug Fixes

  • Explicitly setting the otel parent spans in agents, llm flow and function calls (20f863f)
  • Make sure that InvocationContext.callbackContextData remains the same instance (14ee28b)
  • Removing deprecated InvocationContext methods (41f5af0)
  • Removing deprecated methods in Runner (0d8e22d)
  • Removing deprecated methods in Runner (b857f01)

Miscellaneous Chores

  • override new version to 0.9.0 (a47b651)

0.8.0 (2026-03-06)

⚠ BREAKING CHANGES

  • 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 by transfer_to_agent

Features

  • 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)

Bug Fixes

  • 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)

Miscellaneous Chores

  • revert: switch release please secret to use adk-java-releases-bot's token (7eafd1b)

Code Refactoring

  • remove support for legacy transferToAgent, superseded by transfer_to_agent (c1ccb2e)

0.7.0 (2026-02-27)

Features

  • 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)

Bug Fixes

  • 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)

Documentation

  • Update a parameter name in a comment (5262d4a)

0.6.0 (2026-02-19)

Features

  • 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 App class 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)

Bug Fixes

  • 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)

Documentation

  • Update comment in Runner (fe00ef8)

0.3.0 (2025-09-17)

⚠ BREAKING CHANGES

  • Allow beforeModelCallback to 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.

Features

  • 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 JsonSchema to com.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 ComponentRegistry for loading objects in yaml config (55fffb7)
  • config: Adds resolveAgentClass, resolveToolInstance and resolveToolClass to 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.buildFunctionDeclaration public (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)

Bug Fixes

  • remove is a state mutation operation and should also be captured in the delta (1071f1e)
  • Add missing logging for MCP Servers (e2c4d40)
  • Added httpclient5 dependency to pom.xml to fix ADKWebServer instantiating issue (62eb2ec)
  • Allow beforeModelCallback to 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 FeatureDecorator class (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 Schema and 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)

Documentation

  • Adjust heading levels in WebMojo Javadoc (62ed9d8)
  • Clarify Code Format and Single Commit on ADK Java CONTRIBUTING (d094cc2)
  • remove stale TODO. #non-breaking (5117b8d)