⚠ 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
tocom.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
andresolveToolClass
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 topom.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)