- El ADK es un marco de trabajo de código abierto que permite integrar agentes de IA sofisticados tanto en la nube como de forma local en dispositivos Android.
- Soporta una arquitectura multi-agente mediante jerarquías, flujos secuenciales, bucles de refinamiento y ejecución en paralelo.
- Permite el uso de modelos on-device como Gemini Nano a través de ML Kit para garantizar la privacidad y reducir la latencia sin depender de internet.
- Ofrece una integración fluida con Kotlin y Java, facilitando la creación de herramientas personalizadas y la gestión eficiente del contexto.
Si te mola el mundo del desarrollo móvil, seguro que ya te has dado cuenta de que la IA ha dejado de ser un simple chat para convertirse en el motor de las aplicaciones modernas. Aquí es donde entra en juego el Agent Development Kit (ADK), una librería diseñada específicamente para que los desarrolladores de Android podamos meter agentes de IA realmente capaces dentro de nuestras apps, sin que nos explote la cabeza en el proceso.
Lo más chulo de ADK es que no te ata a una sola forma de trabajar. Puedes montar agentes que funcionen completamente en el dispositivo, usar servicios en la nube o incluso mezclar ambos mundos en un sistema híbrido. Básicamente, es un framework de código abierto que soporta Kotlin y Java, permitiéndonos pasar de un prototipo sencillo a aplicaciones multi-agente súper complejas sin tener que escribir miles de líneas de código repetitivo.
Conceptos fundamentales para empezar

Antes de meterle mano al código, hay que tener claros cinco pilares. Primero tenemos el Agente, que es la entidad que orquestra la tarea. Luego está el Modelo (como Gemini), que es el cerebro que procesa la información. Para que el agente haga cosas reales, usamos Herramientas (Tools), que son funciones específicas que la IA puede ejecutar. También existen los Sub-agentes, fundamentales para crear sistemas donde varios agentes se reparten el trabajo, y finalmente el Runner y la Sesión, que se encargan de ejecutar la lógica y mantener la memoria de la conversación.
Configuración técnica en Android Studio
Para ponerte en marcha, necesitas Android Studio y un SDK con compileSdk 34 o superior. La magia empieza en el archivo build.gradle.kts, donde debes añadir la dependencia google-adk-kotlin-core-android y el procesador de anotaciones KSP. Es vital no mezclar la versión de Android con la de JVM para evitar conflictos de dependencias. Además, se recomienda usar el jvmToolchain(17) para asegurar la compatibilidad del proyecto.
Definición de agentes y herramientas
Crear un agente es bastante intuitivo. Utilizando anotaciones como @Tool y @Param, puedes convertir cualquier función de Kotlin en una capacidad que la IA pueda usar. Por ejemplo, puedes crear un servicio que consulte la hora de una ciudad y pasárselo al agente mediante generatedTools(). Al definir el LlmAgent, especificas el modelo (como gemini-flash-latest), las instrucciones de comportamiento y las herramientas disponibles.
Un punto crítico aquí es la seguridad: nunca metas las API keys directamente en el código de la app. Lo más sensato es usar un backend propio o Firebase AI Logic para que las claves no queden expuestas al publicar la aplicación en la tienda.
Ejecución y despliegue en la app

Para lanzar el agente en Android, se utiliza el InMemoryRunner junto con un InMemorySessionService. Como la IA trabaja de forma asíncrona, todo esto se gestiona mediante corrutinas de Kotlin, recolectando las respuestas en un flujo que luego actualiza la interfaz de usuario. Si quieres ir más allá del texto plano, ADK ofrece el protocolo A2UI (Agent-to-UI), que permite que el agente devuelva componentes interactivos de Jetpack Compose y Material 3, como tarjetas o formularios.
Potencia local con Gemini Nano y ML Kit
Una de las joyas de la corona es la capacidad de ejecutar modelos on-device. Usando el GenaiPrompt y la API de ML Kit, puedes integrar Gemini Nano. Esto significa que tu app puede funcionar sin conexión a internet, lo que no solo baja la latencia a niveles increíbles, sino que garantiza que los datos sensibles nunca salgan del teléfono del usuario.
Lo más interesante es que puedes combinar esto con la nube. Por ejemplo, puedes tener un orquestador en la nube que gestione la lógica general y delegar tareas privadas o sencillas a sub-agentes que corran localmente en el dispositivo.
Sistemas Multi-Agente y Flujos de Trabajo

Cuando una tarea es demasiado compleja para un solo prompt, ADK permite crear jerarquías de agentes. El root_agent actúa como el jefe que decide a qué sub-agente pasarle la bola basándose en la descripción de cada uno o en instrucciones explícitas. Para gestionar la información entre ellos, se utiliza el estado de la sesión (Session State), permitiendo que un agente guarde un dato y otro lo recupere mediante plantillas de claves como {mi_variable?}.
Existen tres tipos de agentes de flujo automatizados que son una pasada:
- SequentialAgent: Ejecuta una lista de agentes uno tras otro. Ideal para tuberías de trabajo donde el paso B depende del A.
- LoopAgent: Crea un ciclo de refinamiento. Un agente escribe, otro critica y, si no es satisfactorio, el ciclo se repite hasta que se llame a
exit_loopo se alcance el límite de iteraciones. - ParallelAgent: Ejecuta varias tareas a la vez (fan-out). Por ejemplo, mientras un agente investiga el casting de una película, otro analiza el potencial de taquilla simultáneamente.
Interoperabilidad con Java y despliegue profesional
Aunque Kotlin es el rey, ADK es totalmente compatible con Java. Proporciona interfaces basadas en CompletableFuture y Publisher para evitar que los desarrolladores de Java tengan que pelearse con las corrutinas. En cuanto al despliegue, ADK es flexible: puedes usar contenedores en tu propia infraestructura o aprovechar el despliegue de un solo comando hacia Google Cloud (Cloud Run o GKE), heredando así seguridad de grado empresarial y observabilidad mediante Cloud Trace.
Para los que prefieren probar cosas antes de programar, existe el ADK Dev Server, que levanta una interfaz web local (estilo Python) para testear, depurar y visualizar el grafo de ejecución de los agentes en tiempo real, facilitando enormemente la detección de errores en flujos complejos.
La capacidad de ADK para gestionar el contexto de forma inteligente, filtrando eventos irrelevantes y resumiendo turnos antiguos, evita que la ventana de tokens se sature. Gracias a la combinación de modelos locales, orquestación avanzada y herramientas nativas de Android, los desarrolladores pueden crear experiencias de IA que son rápidas, privadas y extremadamente potentes, transformando la manera en que interactuamos con las aplicaciones móviles.