En pocas palabras
Framework de Google para desarrollar agentes con herramientas, orquestación y evaluación.
Qué problema resuelve
Trabajo repetido para integrar capacidades y operar agentes con prácticas de ingeniería.
Cuándo utilizarlo
Agentes en ecosistemas Google o con integraciones compatibles. Ejemplo: un asistente de operaciones.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
Proporciona abstracciones para agentes y workflows, gestión de herramientas y evaluación. Se integra con opciones de ejecución y observabilidad para operar los flujos.
Ejemplo de uso
Crear un agente con herramientas de consulta de incidencias y documentación. Evaluarlo con solicitudes conocidas, comprobando selección de herramientas y restricciones antes del despliegue.
Tipos de agente
| Tipo | Comportamiento |
|---|---|
LlmAgent (Agent) |
Usa un modelo para razonar y decidir qué herramientas llamar |
SequentialAgent |
Ejecuta subagentes en orden fijo |
ParallelAgent |
Ejecuta subagentes en paralelo y reúne resultados |
LoopAgent |
Repite subagentes hasta una condición o un máximo de iteraciones |
| Agente personalizado | Lógica de orquestación propia en código |
Combinar agentes deterministas (secuencia, bucle) con agentes LLM permite controlar el flujo donde importa y dejar flexibilidad donde aporta.
Ejemplo en Python
from google.adk.agents import Agent, SequentialAgent
def consultar_solicitud(solicitud_id: str) -> dict:
"""Devuelve estado, monto y documentos pendientes de una solicitud."""
return api_originacion.obtener(solicitud_id)
def politica_documentos(tipo_cliente: str) -> list[str]:
"""Lista los documentos exigidos para un tipo de cliente."""
return politicas.documentos(tipo_cliente)
analista = Agent(
name="analista_solicitudes",
model="gemini-2.5-flash",
instruction="Explica al asesor qué falta en la solicitud. Usa solo datos de las herramientas.",
tools=[consultar_solicitud, politica_documentos],
output_key="diagnostico", # guarda la respuesta en el estado de la sesión
)
redactor = Agent(
name="redactor_mensaje",
model="gemini-2.5-flash",
instruction="Redacta un mensaje breve y amable al cliente a partir de {diagnostico}.",
)
root_agent = SequentialAgent(name="flujo_documentos", sub_agents=[analista, redactor])
Las funciones Python se convierten en herramientas a partir de su firma y docstring. ADK es agnóstico del modelo (Gemini, y otros mediante LiteLLM) y tiene versiones para Python, Java, Go y TypeScript.
Herramientas de desarrollo
adk web # interfaz local para conversar, ver eventos, estado y trazas
adk run flujo # ejecutar en la terminal
adk eval flujo casos.evalset.json # evaluar respuestas y trayectoria de herramientas
Los evalsets definen conversaciones de referencia con las herramientas que se esperan; la evaluación compara tanto la respuesta final como la secuencia de llamadas.
Conceptos de ejecución
| Concepto | Descripción |
|---|---|
| Session | Conversación con su historial de eventos |
| State | Diccionario compartido entre agentes de la sesión |
| Memory | Conocimiento a largo plazo entre sesiones |
| Callbacks | Ganchos antes/después del modelo o de una herramienta: validar, bloquear, registrar |
| Artifacts | Archivos generados o recibidos durante la sesión |
Los callbacks before_tool son un buen lugar para aplicar guardas deterministas (por ejemplo, impedir operaciones sobre clientes de otro país).
Despliegue
Se puede desplegar en Vertex AI Agent Engine (gestionado), en Cloud Run (adk deploy cloud_run) o en GKE. Soporta el protocolo A2A para que otros agentes lo invoquen, herramientas MCP y puede conectarse a interfaces mediante AG-UI.
Criterios de implementación
Mantener lógica de negocio comprobable fuera del framework. Limitar permisos y revisar portabilidad, persistencia y cambios de API antes de escalar la implementación.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.