An open-source, code-first Kotlin toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
Important Links: Docs & Samples & Python ADK & Java 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.
-
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 Kotlin for ultimate flexibility, testability, and versioning.
-
Modular Multi-Agent Systems: Design scalable applications by composing multiple specialized agents into flexible hierarchies.
If you're using Maven, add the following to your dependencies:
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-kotlin-core-jvm</artifactId>
<version>0.7.0</version>
</dependency>If you're using Gradle:
implementation("com.google.adk:google-adk-kotlin-core:0.7.0")Every module is published under the com.google.adk group and shares the
version shown above.
| Module | Artifact | What it is for |
|---|---|---|
core |
google-adk-kotlin-core |
Agents, models, tools, sessions, memory, artifacts and runners. The only dependency most projects need. |
processor |
google-adk-kotlin-processor |
KSP processor that generates tools from @Tool-annotated functions. Add it with ksp(...). |
webserver |
google-adk-kotlin-webserver |
Embedded server that hosts the Development UI and its API for local testing. |
a2a |
google-adk-kotlin-a2a |
Agent2Agent (A2A) support for talking to remote agents. |
litertlm |
google-adk-kotlin-litertlm |
On-device models through LiteRT-LM. Requires JDK 21+; see litertlm/README.md. |
firebase |
google-adk-kotlin-firebase-android |
Android-only model backed by Firebase AI Logic. |
mlkit |
google-adk-kotlin-mlkit-android |
Android-only on-device Gemini Nano through the ML Kit GenAI Prompt API. Published as a -beta pre-release. |
For building, evaluating, and deploying agents by follow the Kotlin documentation & samples:
import com.google.adk.kt.agents.LlmAgent
import com.google.adk.kt.agents.Instruction
import com.google.adk.kt.models.Gemini
import com.google.adk.kt.tools.GoogleSearchTool
val rootAgent = LlmAgent(
name = "search_assistant",
description = "An assistant that can search the web.",
model = Gemini(name = "gemini-3.1-flash-lite-preview"),
instruction = Instruction("You are a helpful assistant. Answer user questions using Google Search when needed."),
tools = listOf(GoogleSearchTool())
)Same as the beloved Python Development UI.
A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).
The snippet above is the short version. Every runnable example lives under the
examples directory of this repository.
-
examples/β JVM examples. -
examples/android/β a Compose app showing the Android side.
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our CONTRIBUTING.md to get started.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
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!