What does ADK for Kotlin 1.0 change for developers building AI agents?

Google has released version 1.0 of the Agent Development Kit for Kotlin. The framework lets developers write AI agents that run on Android devices, servers, or both without rewriting core logic.

A multiplatform core that does not pick your model

The Agent Development Kit for Kotlin 1.0 ships as a Kotlin Multiplatform library. That means the same orchestration code compiles for the JVM, for Android, and for any other target KMP supports. The core stays agnostic to which large language model you call, which session store you use, or how you persist memory. You plug in Vertex AI, Firebase AI Logic, or a local LiteRT-LM backend by swapping a single model implementation. The announcement notes full feature parity with ADK 1.0 Core for Python and Java, so hierarchical multi-agent delegation, context compaction, and session resumability work identically across languages.

KSP generates function-call schemas at compile time. When you annotate a suspend function with @Tool and its parameters with @Param, the processor emits an extension function generatedTools() that returns type-safe definitions. No reflection runs at runtime. The same mechanism produces schemas for Java callers, so existing Java services can invoke Kotlin agents directly.

Android extensions that plug into platform storage

The release adds three Android-first services that implement the standard ADK interfaces. RoomSessionService writes conversation history to a local SQLite database so chats survive process death and reboots. AppSearchMemoryService indexes agent memory with AndroidX AppSearch for on-device full-text retrieval. FileArtifactService stores generated files in the app's external files directory. All three are constructed from a Context in one line each.

On-device inference arrives through two optional modules. google-adk-kotlin-litertlm wraps LiteRT-LM for running models locally. google-adk-kotlin-mlkit-android (beta) integrates ML Kit for tasks like text recognition or barcode scanning that agents can call as tools. The Firebase module connects the same agent code to cloud models via FirebaseAI.getInstance().

Human confirmation built into the tool contract

Sensitive actions pause execution until the user approves. Annotate a tool with requireConfirmation = true and the framework emits a synthetic function call named REQUEST_CONFIRMATION_FUNCTION_CALL_NAME. Your UI intercepts that event, shows a dialog, and sends back a FunctionResponse containing ToolConfirmation.CONFIRMED_KEY set to true. The runner then resumes and executes the original tool. The financial assistant example demonstrates the full loop: the user requests a transfer, the agent pauses, the UI confirms, and the transfer runs.

Skills live in Markdown files under src/main/resources/skills/. Each skill declares its name, description, and the tool names it may use. The SkillToolset loads them on demand — progressive disclosure keeps token usage low because the model only fetches a skill's body and its auxiliary assets when the playbook calls for it. The database incident agent loads a triage SOP, runs diagnostics, correlates a recent deployment, and posts a rollback recommendation to a chat channel without hardcoding any of those steps in Kotlin.

Getting the bits into a Gradle project

Add the core engine and the KSP processor to build.gradle.kts:

dependencies {
  implementation("com.google.adk:google-adk-kotlin-core:1.0.0")
  ksp("com.google.adk:google-adk-kotlin-processor:1.0.0")
}

Optional Android extensions pull in their own artifacts:

implementation("com.google.adk:google-adk-kotlin-mlkit-android:1.0.0-beta")
implementation("com.google.adk:google-adk-kotlin-litertlm:1.0.0")
implementation("com.google.adk:google-adk-kotlin-firebase-android:1.0.0")

The repository at github.com/google/adk-kotlin contains sample applications for server-side agents, Android agents, and Java interop. Documentation lives at adk.dev.

What the 1.0 label does not guarantee

The announcement marks general availability for the API surface. It does not promise backward compatibility beyond standard semantic versioning, nor does it certify the on-device modules for regulated environments. The financial assistant example carries an explicit disclaimer that it is not designed to meet compliance requirements. Performance figures for on-device inference, battery impact, or cold-start latency are not published in the release notes.

The sources this article was written from

  • "Google Developers Blog
    https://developers.googleblog.com/announcing-adk-for-kotlin-10-building-production-ready-ai-agents-in-kotlin-android-and-beyond/"

Read next