GitHunt
JA

Jacksunwei/adk-java

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

Agent Development Kit (ADK) for Java

License
Maven Central
r/agentdevelopmentkit

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

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>0.2.0</version>
</dependency>
<!-- Dev UI -->
<dependency>
    <groupId>com.google.adk</groupId>
    <artifactId>google-adk-dev</artifactId>
    <version>0.2.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.
Examples coming soon...

๐Ÿค 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!

Jacksunwei/adk-java | GitHunt