freshcrate
Skin:/
Home > Frameworks > adk-java

adk-java

An open-source, code-first Java toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

An open-source, code-first Java toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

README

Agent Development Kit (ADK) for Java

License Maven Central r/agentdevelopmentkitAsk DeepWiki

An open-source, code-first Java toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

Important Links: Docs & Samples & Python ADK.

Agent Development Kit (ADK) is designed for developers seeking fine-grained control and flexibility when building advanced AI agents that are tightly integrated with services in Google Cloud. It allows you to define agent behavior, orchestration, and tool use directly in code, enabling robust debugging, versioning, and deployment anywhere – from your laptop to the cloud.


✨ Key Features

  • Rich Tool Ecosystem: Utilize pre-built tools, custom functions, OpenAPI specs, or integrate existing tools to give agents diverse capabilities, all for tight integration with the Google ecosystem.

  • Code-First Development: Define agent logic, tools, and orchestration directly in Java for ultimate flexibility, testability, and versioning.

  • Modular Multi-Agent Systems: Design scalable applications by composing multiple specialized agents into flexible hierarchies.

🚀 Installation

If you're using Maven, add the following to your dependencies:

<dependency>
  <groupId>com.google.adk</groupId>
  <artifactId>google-adk</artifactId>
  <version>1.1.0</version>
</dependency>
<!-- Dev UI -->
<dependency>
    <groupId>com.google.adk</groupId>
    <artifactId>google-adk-dev</artifactId>
    <version>1.1.0</version>
</dependency>

To instead use an unreleased version, you could use https://jitpack.io/#google/adk-java/; see https://github.com/enola-dev/LearningADK#jitpack for an example illustrating this.

📚 Documentation

For building, evaluating, and deploying agents by follow the Java documentation & samples:

🏁 Feature Highlight

Same Features & Familiar Interface As Python ADK:

import com.google.adk.agents.LlmAgent;
import com.google.adk.tools.GoogleSearchTool;

LlmAgent rootAgent = LlmAgent.builder()
    .name("search_assistant")
    .description("An assistant that can search the web.")
    .model("gemini-2.0-flash") // Or your preferred models
    .instruction("You are a helpful assistant. Answer user questions using Google Search when needed.")
    .tools(new GoogleSearchTool())
    .build();

Development UI

Same as the beloved Python Development UI. A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).

Evaluate Agents

Coming soon...

🤖 A2A and ADK integration

For remote agent-to-agent communication, ADK integrates with the A2A protocol. See a2a/README.md for end-to-end setup instructions and sample commands.

🤝 Contributing

We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our Contributing Guidelines to get started.

📄 License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Preview

This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the Service Specific Terms. Pre-GA features are available "as is" and might have limited support. For more information, see the launch stage descriptions.


Happy Agent Building!

Release History

VersionChangesUrgencyDate
v1.4.0## [1.4.0](https://github.com/google/adk-java/compare/v1.3.0...v1.4.0) (2026-05-29) ### Features * Add GcsOffloader for asynchronously uploading content to Google Cloud Storage ([51c9d1a](https://github.com/google/adk-java/commit/51c9d1a98dd029a33c732508bd10903f4c451f45)) * Add GcsOffloader for asynchronously uploading content to Google Cloud Storage ([5bad20a](https://github.com/google/adk-java/commit/5bad20aff179c1fd091cd6f14d5fc1d730023d70)) * Add GcsOffloader for asynchronously uploading High6/1/2026
v1.3.0## [1.3.0](https://github.com/google/adk-java/compare/v1.2.0...v1.3.0) (2026-05-13) ### Features * Add ChatCompletionsHTTPClient and support for non-streaming requests ([9529c1a](https://github.com/google/adk-java/commit/9529c1aeecb324e1c00c6bd105df2a0e9f67ed26)) * Add conversion from LlmRequest to ChatCompletionsRequest ([d37f6ee](https://github.com/google/adk-java/commit/d37f6ee6d8ec036154593b734f1a3b080847cfea)) * Add SkillSource interface and implementations for loading skills ([509c4aa](High5/15/2026
v1.2.0## [1.2.0](https://github.com/google/adk-java/compare/v1.1.0...v1.2.0) (2026-04-24) ### Features * Add telemetry headers ([4009905](https://github.com/google/adk-java/commit/40099057e2b59f34e868da4c34dcd9c1194b2fde)) * Adding functionality to support customer content formating ([52323b4](https://github.com/google/adk-java/commit/52323b44c89f233e2dd794aee33df8ba5318790e)) * Allowing McpAsycToolset Builder to take in a McpSessionManager ([78766c1](https://github.com/google/adk-java/commit/78766High4/27/2026
v1.1.0## [1.1.0](https://github.com/google/adk-java/compare/v1.0.0...v1.1.0) (2026-04-10) ### Features * Add ChatCompletionsRequest object ([88eb0f5](https://github.com/google/adk-java/commit/88eb0f523c14266840ffc4b3d9ed827c9cdb1510)) * Add ChatCompletionsResponse object ([55becb8](https://github.com/google/adk-java/commit/55becb81b6dcc15a9a82ec842a0096132813ae64)) * Add ChatCompletionsResponse to LlmResponse conversion ([ec88c64](https://github.com/google/adk-java/commit/ec88c64d311946c1d427c4374bHigh4/10/2026
v1.0.0## [1.0.0](https://github.com/google/adk-java/compare/v1.0.0-rc.1...v1.0.0) (2026-03-30) ### Features * add `InMemoryArtifactService` to `AgentExecutor` and update `pom.xml` dependencies ([24f8d5e](https://github.com/google/adk-java/commit/24f8d5e2562e1c0812ce6e248500797d9801fafd)) * enabling output_schema and tools to coexist ([40ca6a7](https://github.com/google/adk-java/commit/40ca6a7c5163f711e02a54163d6066f7cd86e64d)) ### Bug Fixes * add media/image support in Spring AI MessageConverterMedium3/30/2026
v1.0.0-rc.1## [1.0.0-rc.1](https://github.com/google/adk-java/compare/v0.9.0...v1.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](https://github.com/google/adk-java/commit/e51f9112050955657da0dfc3aedc00f90ad739ec)) * add type-safe runAsync methods to BaseTool ([b8cb7e2](https://github.com/gLow3/20/2026
v0.9.0## [0.9.0](https://github.com/google/adk-java/compare/v0.8.0...v0.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 deprecatLow3/13/2026
v0.8.0## [0.8.0](https://github.com/google/adk-java/compare/v0.7.0...v0.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 aLow3/6/2026
v0.7.0## [0.7.0](https://github.com/google/adk-java/compare/v0.6.0...v0.7.0) (2026-02-27) ### Features * Add ComputerUse tool ([d733a48](https://github.com/google/adk-java/commit/d733a480a7a787cb7c32fd3470ab978ca3eb574c)) * add the AgentExecutor config ([e0f7137](https://github.com/google/adk-java/commit/e0f7137253c9bd929fe3ea899e32f4b61f994986)) * drop gemini-1 support in GoogleSearchTool ([15255b4](https://github.com/google/adk-java/commit/15255b48285819c7d3aedb4470e91f37d1bcfaf4)) * ExteLow2/27/2026
v0.6.0## [0.6.0](https://github.com/google/adk-java/compare/v0.5.0...v0.6.0) (2026-02-19) ### Features * Add Compact processor to SingleFlow ([ee459b3](https://github.com/google/adk-java/commit/ee459b3198d19972744514d1e74f076ee2bd32a7)) * Add Compaction RequestProcessor for event compaction in llm flow ([af1fafe](https://github.com/google/adk-java/commit/af1fafed0470c8afe81679a495ed61664a2cee1a)) * Add ContextCacheConfig to InvocationContext ([968a9a8](https://github.com/google/adk-java/commit/968aLow2/19/2026
v0.5.0## What's Changed * fix: Update Spring AI to 1.1.0 and set conditional Ollama tests for CI by @ddobrin in https://github.com/google/adk-java/pull/574 * feat: Support configuring tool execution mode in RunConfig by @copybara-service[bot] in https://github.com/google/adk-java/pull/620 * test: adding a new & re-enabling some ignored tests by @copybara-service[bot] in https://github.com/google/adk-java/pull/624 * test: add test for rearranging history for gemini3 interleaved by @copybara-serviceLow12/17/2025
v0.4.0## What's Changed * feat: Add a constructor to McpAsyncToolset to allow injecting McpSessionManager by @copybara-service[bot] in https://github.com/google/adk-java/pull/446 * refactor: Extracting ToolResolver logic from LlmAgent by @copybara-service[bot] in https://github.com/google/adk-java/pull/444 * refactor: Simplify ComponentRegistry by @copybara-service[bot] in https://github.com/google/adk-java/pull/447 * refactor: Cleaning up LlmAgent by @copybara-service[bot] in https://github.com/gLow11/25/2025
v0.3.0### ⚠ 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](https://github.com/google/adk-java/commit/2aa474dc7106849029ab618a3e00304c25965235)) * Add BaseToolset and update McpToolset toLow9/18/2025
v0.2.0## [0.2.0](https://github.com/google/adk-java/compare/v0.1.0...v0.2.0) (2025-06-30) ### Features * LangChain4j Integration: Added experimental integration with LangChain4j to support third-party and local models. (0d1bb89) * Enabled `FunctionTools` to be created for methods that return a `Single`, improving support for asynchronous operations. (cb49092) * `FunctionTools` can now be created for object instances in addition to static methods. (71d7325) * Added an `endInvocation` fLow6/30/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.v2.2.0
adk-jsAn open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.devtools-v1.2.0
ClawRecipesSave 120+ Hours of Setup Pain (I did it for you) – Launch Your OpenClaw Agent Teams with 1 Command (15+ Recipes)v0.5.1
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tamain@2026-06-06
Autonomous-AgentsAutonomous Agents (LLMs) research papers. Updated Daily.main@2026-06-03

More from google

adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
adk-jsAn open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

More in Frameworks

langchainThe agent engineering platform
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.