Sebastian Gomez
Cierre del curso y próximos pasos
Has completado el recorrido desde un agente básico hasta un sistema multiagente listo para producción, con voz en tiempo real, herramientas, callbacks y guardrails, salidas estructuradas, evaluación, despliegue y observabilidad. Aquí resumimos los aprendizajes, te dejamos recursos verificados en la doc local (adk docs) y una guía de los siguientes pasos.
Panorama general
- Diseñar agentes con propósito claro, instrucciones sólidas y herramientas adecuadas.
- Orquestar flujos: conversacional, coordinador o dispatcher y pipelines en segundo plano.
- Añadir control programático con callbacks y plugins para guardrails de producción.
- Estandarizar salidas con esquemas (y entender cuándo separar formateo y tooling).
- Evaluar calidad (trayectoria más respuesta) y desplegar con trazabilidad.
Lo que aprendiste por lección
Lección 1, Fundamentos y Web UI. Crear un agente, agregar google_search y probarlo en adk web. Buenas prácticas de instrucciones y configuración declarativa con Agent Config YAML. Blog: Lesson_1_blog.md
Lección 2, Herramientas personalizadas. Definir Function Tools bien tipadas (docstrings, errores controlados) y combinarlas con google_search. Entender Session, State y Memory a nivel conceptual. Blog: Lesson_2_blog.md
Lección 3, Coordinador en segundo plano. Patrón Coordinator Dispatcher: ejecutar en silencio, responder solo dos veces y persistir Markdown. Blog: Lesson_3_blog.md
Lección 4, Callbacks y guardrails. before_tool_callback y after_tool_callback en LlmAgent, process log y políticas; nota sobre Plugins. Blog: Lesson_4_blog.md
Lección 5, Salidas estructuradas. output_schema para JSON estricto (sin tools) y patrón de 2 agentes (tools hacia formateo). Uso de output_key. Blog: Lesson_5_blog.md
Lección 6, A producción. Streaming en vivo (run_live más LiveRequestQueue), Vertex AI Memory Bank, adk eval, despliegue (Agent Engine, Cloud Run o GKE), seguridad y observabilidad. Blog: Lesson_6_blog.md
Recursos esenciales (adk docs locales)
- Quickstart y Python: adk docs/docs/get started/quickstart.md, adk docs/docs/get started/python.md
- Streaming (voz y video): adk docs/docs/get started/streaming/quickstart streaming.md
- Built in tools y Google Search: adk docs/docs/tools/built in tools.md, adk docs/docs/grounding/google_search_grounding.md
- Function Tools: adk docs/docs/tools/function tools.md
- Callbacks y Plugins: adk docs/docs/callbacks/types of callbacks.md, adk docs/docs/plugins/index.md
- Contextos (ToolContext y CallbackContext): adk docs/docs/context/index.md
- Memoria: adk docs/docs/sessions/memory.md
- Evaluación: adk docs/docs/evaluate/index.md
- Despliegue: adk docs/docs/deploy/agent engine.md, adk docs/docs/deploy/cloud run.md, adk docs/docs/deploy/gke.md
- Observabilidad: adk docs/docs/observability/logging.md, adk docs/docs/observability/cloud trace.md
- Seguridad: adk docs/docs/safety/index.md
Instalación y comandos básicos (alineados a la doc)
# Instala ADK
pip install google-adk# Crea un agente basado en código
adk create my_agent --model gemini-2.5-flash --api_key $GOOGLE_API_KEYNota sobre el modelo. Los identificadores de modelos Live rotan con frecuencia. Para voz en tiempo real elige un modelo Live o native audio de la familia Gemini 2.5 (por ejemplo, un modelo gemini-2.5-flash-class) y confirma el id soportado más reciente en la doc de ADK Live antes de fijarlo en producción.
# Ejecuta la Web UI (desde la carpeta padre o apuntando al agente)
adk web
# luego selecciona "my_agent" en el menú
# o, alternativamente, apunta directo al agente y a un puerto:
adk web --port 8000 my_agentWindows. Si ves _make_subprocess_transport NotImplementedError, usa --no-reload.
# Ejecuta en CLI
adk run my_agent# Servidor de API (opcional)
adk api_server --log_level INFO path/to/agents_dir# Opcional (memoria persistente en el Web o API server)
adk web path/to/agents_dir --memory_service_uri="agentengine://<AGENT_ENGINE_ID>"Consejos de producción rápidos
Google Search. Compatible con los modelos Gemini actuales. Si el modelo devuelve "Search suggestions", debes mostrarlas en tu UI (política de Grounding).
Streaming. Usa modelos de la Live API y configura SSL_CERT_FILE=$(python -m certifi) cuando corresponda.
Callbacks y Plugins. Prefiere Plugins para políticas globales; se ejecutan antes que los callbacks y pueden retornar temprano.
Estructurado. Usa output_schema (sin tools) o separa herramientas y formateo con dos agentes; usa output_key para persistir resultados.
Observabilidad. Usa --log_level y --trace_to_cloud en despliegues gestionados; integra OpenTelemetry cuando personalices el runtime.
Troubleshooting (depurado alineado a la doc)
El agente no responde o responde genérico. Revisa .env y GOOGLE_API_KEY o las credenciales de Vertex; confirma el model (por ejemplo, un modelo Live de la familia gemini-2.5-flash). Verifica instrucciones y herramientas registradas en tools=[...].
Las tools fallan. Asegura type hints más docstrings claros; valida el tipo y la forma del retorno. Prueba la función de forma aislada primero.
Los callbacks no disparan o dan resultados inesperados. Firma correcta: before_tool(tool, args, tool_context) y after_tool(tool, args, tool_context, tool_response) en LlmAgent. Recuerda: si un callback retorna algo distinto de None, el framework usa ese valor (salta la ejecución del tool o reemplaza el resultado). Considera Plugins si la política es global.
Estado (state). Modifícalo a través de ToolContext o CallbackContext; ADK persiste los cambios vía Runner. Usa output_key para guardar las salidas finales.
Voz. Usa modelos Live, permisos de micrófono en el navegador y confirma el puerto correcto en adk web. Prueba texto y luego voz.
Logging. Sube a --log_level DEBUG temporalmente. Inspecciona prompts, llamadas a tools y latencias.
Reto final
Convierte tu agente en un servicio con memoria persistente y trazas en Cloud Trace, protegido con Plugins de seguridad (por ejemplo, redacción de PII y Model Armor) y validado con adk eval en tu pipeline de CI/CD.
Extiende el patrón de dos agentes para generar: JSON validado, luego Markdown, luego audio (podcast), midiendo latencia y costo.
Cierre
Este curso te deja una base sólida para construir agentes conversacionales, coordinadores e incluso pipelines en segundo plano, con controles de seguridad y observabilidad para producción. Conecta estos bloques con tus datos y procesos, itera con evaluaciones, y comparte lo que construyas. Nos encantará ver tu próximo agente en acción.
Este contenido se basa en el curso "Building Live Voice Agents with Google's ADK!" de DeepLearning.AI (https://learn.deeplearning.ai/courses/building live voice agents with googles adk/). Este blog busca acercar el material de ADK al español.
Sebastian Gomez
Creador de contenido principalmente acerca de tecnología.