Gemini ADK · TypeScript · Node.js · React
@vanessamarely
Ingeniera de Sistemas & Magíster en Ingeniería
Google Developer Expert — Web Technologies & Angular
GitHub Star
Creadora de contenido
github.com · Travel Planner Multi-Agent
Un modelo de IA con un solo rol, instrucciones claras
y herramientas opcionales. Hace bien esa única cosa.
Especializado
Un rol, una responsabilidad. No intenta hacer todo — hace su parte excepcionalmente bien.
Autónomo
Recibe un input, razona internamente con el modelo y produce un output estructurado.
Componible
Se combina con otros agentes. Corre en paralelo, en secuencia o anidado.
Flight Agent
Busca opciones de vuelo para el destino, duración y presupuesto indicados.
Hotel Agent
Recomienda hoteles según el nivel de presupuesto: Low, Medium o High.
Activity Agent
Sugiere actividades, restaurantes y experiencias según los días del viaje.
Itinerary Agent
Espera los 3 resultados anteriores y construye el itinerario día a día.
Decide quién trabaja, cuándo,
y cómo combinar los resultados.
● Los 3 del centro corren en paralelo
● Itinerary Agent espera los 3 outputs
// Sin ParallelAgent — uno por uno
Total: ~6 segundos
// Con ParallelAgent — al mismo tiempo
Total: ~2 segundos ⚡
Sin ADK escribes la coordinación desde cero.
ADK te da los bloques listos para usar.
LlmAgent
Define el agente: nombre, modelo, instrucción y herramientas.
ParallelAgent
Ejecuta múltiples agentes al mismo tiempo.
SequentialAgent
Encadena agentes: el output de uno es el input del siguiente.
Framework para construir aplicaciones con LLMs.
Agentes que razonan, planifican, usan herramientas
y colaboran en equipo. Open source, multi-lenguaje.
TypeScript / JS
github.com/google/adk-js
Soportado desde v0.2.0
También disponible
Python · Go · Java · Kotlin
Documentación oficial
adk.dev
Estructura fija: Sequential · Parallel · Loop. El más predecible — el que usamos en esta app.
Un agente coordinador dinámico decide a qué sub-agente delegar cada tarea en tiempo real.
Grafo de ejecución con bifurcaciones y nodos determinísticos. ADK 2.0+
Lógica de orquestación en código puro. Máxima flexibilidad programática. ADK 2.0+
Crear proyecto
mkdir travel-planner && cd travel-planner && npm init -y
Instalar ADK — paquete oficial
npm install @google/adk
API Key — gratis en aistudio.google.com
GEMINI_API_KEY=tu_key # leída automáticamente por @google/adk
TypeScript support
npm install -D typescript tsx npx tsc --init
3 propiedades clave definen todo el comportamiento del agente:
name
Identifica al agente en el sistema. Único dentro del pipeline.
model
El LLM que razona. Gemini, Claude o GPT-4o vía LiteLLM.
instruction
El system prompt. Define el rol, el tono y los límites del agente.
Opcionales: description — para routing automático · tools — funciones TS que el agente puede invocar
nameIdentifica al agente en el sistema. Único dentro del pipeline.
modelEl modelo Gemini que usa: gemini-2.5-flash o gemini-2.5-pro.
outputKeyNombre de la clave donde ADK guarda la respuesta en session state.
ParallelAgent — los 3 agentes corren simultáneamente. ADK sincroniza automáticamente.
SequentialAgent — el ItineraryAgent espera a los 3 y recibe todos sus outputs.
React — Frontend
Formulario · Estado de agentes en tiempo real · Resultado
↕ SSE (Server-Sent Events / fetch)
Node.js — Backend
Recibe petición · Llama al ADK Runner · Transmite eventos
↕ ADK Runner
ADK Agents — Orquestación
ParallelAgent + SequentialAgent + Gemini 2.5 Flash
Flight Agent
working...
Hotel Agent
working...
Activity Agent
working...
ItineraryAgent
idle
server/travel-orchestrator.ts
LlmAgent ×4 + ParallelAgent + SequentialAgent. Toda la lógica ADK aquí.
server/index.ts
Express + SSE. Ejecuta el Runner ADK y transmite eventos al frontend.
src/lib/api.ts
Cliente SSE con fetch + ReadableStream. Conecta React con el backend.
src/components/AgentCard.tsx
Muestra idle → working → done en tiempo real.
Los agentes paralelos no se comunican entre ellos directamente.
Cada uno escribe su resultado en el session state usando outputKey.
▶ outputKey → ADK escribe el texto en session.state[key] automáticamente · el ItineraryAgent lo lee con ctx.state.get(key)
InMemorySessionService
Mantiene session state en memoria. Comparte datos entre agentes.
isFinalResponse(event)
Detecta cuando cada agente terminó su respuesta.
event.author
Identifica qué agente emitió el evento: flight_agent, etc.
Origen + destino + duración + presupuesto →
3 agentes en paralelo → itinerario completo
Agente = función con rol, instrucciones y herramientas propias
Orquestador = quien decide quién trabaja, cuándo y en qué orden
outputKey → session state → InstructionProvider: así comparten datos los agentes
Runner + SSE: Node.js ejecuta el pipeline y transmite eventos en tiempo real al frontend
React consume · Node.js orquesta · ADK coordina · Gemini 2.5 razona
npm install @google/adk · API key gratuita en aistudio.google.com
google.github.io/adk-docs · aistudio.google.com