Announcing ADK for Kotlin and ADK for Android 0.1.0: Building AI Agents on Android and Beyond
- Google Developers Blog
Search
Announcing ADK for Kotlin and ADK for Android 0.1.0: Building AI Agents on Android and Beyond
MAY 21, 2026
Guillaume Laforge
Developer Advocate
Jolanda Verhoef
Android Developer Relations Engineer
Share
ADK for Kotlin brings agentic workflows to your backend projects, while ADK for Android provides specialized on-device optimizations
Following the recent 1.0.0 releases of ADK for Java and Go, as well as the beta of ADK for Python 2.0, we are thrilled to announce the launch of version 0.1.0 of Agent Development Kit (ADK) for Kotlin ! In addition, we're also launching an additional specialized library called ADK for Android . ADK is a flexible and open-source framework for developing and running AI agents, and is now available in Kotlin. With the Android version you can create AI agents that can operate on-device directly within your apps with local on-device LLMs, enhancing privacy, but with the flexibility to bridge the gap with cloud-based models.<br>Why ADK for Kotlin?<br>The AI ecosystem is experiencing a massive shift toward the edge, since the introduction of Gemini Nano as a model on Android, it has become available on over 140 million devices. As developers look to build faster, more cost-effective, and privacy-enhancing applications, the ability to run AI models directly on mobile hardware (models like Gemini Nano) has never been more critical. However, building agentic systems can be complex, especially when coordinating tasks between the cloud and the edge. ADK removes that friction by managing all the complex orchestration, context handling, and error handling for you.<br>With just a few lines of Kotlin, you can:
Easily swap out models depending on your needs<br>Choose between various on-device and cloud models for different parts of your multi-agent system<br>Seamlessly share session state between multiple agents<br>Run agents directly on Android devices
Feature Highlights
Hybrid Orchestration: You can use a cloud model as your main orchestrator, which can then offload specific tasks to sub-agents that run fully on-device. The ADK library takes care of adapting generic agent implementations to the correct cloud or on-device APIs.
On-Device Sequential Agents: You can define sub-agents as sequential agents, perfect for multiple tasks that need to run one after the other.
Local Retrieval: By utilizing on-device models like Gemini Nano, you can create retrieval agents that access and parse documents locally, ensuring data never has to leave the hardware.
Flexible Tooling: You can equip your agents with specific tools and provide top-level instructions so they know exactly how to behave and when to delegate to subagents.
Real-World Example: The Trip Assistant<br>During our I/O session, we showcased how ADK for Kotlin powers an in-app trip assistant.
Link to Youtube Video<br>(visible only when JS is disabled)
If a user encounters an issue while traveling, the cloud-based orchestrator interacts with the user to understand the problem. However, when it needs to verify a booking confirmation, it delegates the task to an on-device subagent. Various retrieval agents use the on-device Gemini Nano model to extract data from the user's locally stored documents. Finally, a validation agent compares the data coming from these analyses. This keeps private data offline while leveraging the reasoning capabilities of the cloud orchestrator.<br>Getting started with ADK for Android<br>To add ADK to your Android app, add the following dependency to your build.gradle.kts file:
implementation("com.google.adk:google-adk-kotlin-core-android:0.1.0")
Kotlin
Copied
You can then easily build your ADK agents:
val orchestrator = LlmAgent(<br>name = "genius_orchestrator",<br>model = Gemini(apiKey = apiKey, name = MODEL_NAME),<br>instruction = Instruction("""<br>You are a travel genius assistant.<br>First, use `get_trip_details` to get the full itinerary of the trip and<br>understand what events are scheduled.<br>Then, respond with a welcome message tailored to the trip state.<br>""".trimIndent()),<br>tools = listOf(GetTripDetailsTool(tripId)),<br>subAgents = listOf(carRentalPipeline, hotelPipeline),<br>disallowTransferToPeers = true,<br>disallowTransferToParent = true,
Kotlin
Copied
For more extended agent setups, check out the ADK for Android demos.<br>Getting Started with ADK for Kotlin<br>In your build.gradle.kts file, add the following dependencies:
dependencies {<br>// Implementation dependency for ADK Core<br>implementation("com.google.adk:google-adk-kotlin-core:0.1.0")
// KSP processor for generating @AdkTools<br>ksp("com.google.adk:google-adk-kotlin-processor:0.1.0")
Kotlin
Copied
ADK for Kotlin lets you define tools to equip the LLM with extra powers. Let’s create an imagined “improbability drive” service, inspired from the Hitchhiker’s Guide to the Galaxy:
class ImprobabilityDriveService {<br>/** Calculates...