Cómo crear tu primer agente con Google ADK usando Firebase Genkit

crear-agente-google-adk

Como crear tu primer agente con Google ADK ?

Como crear tu primer agente con Google ADK ? La respuesta práctica hoy es usar Firebase Genkit: el framework code‑first de Google para construir, testear y desplegar agentes de IA en producción. Aquí tienes una guía técnica, paso a paso, pensada para desarrolladores y tech leads que quieren pasar de experimentos a agentes confiables y auditables.

Resumen rápido (lectores con prisa)

Firebase Genkit es un Agent Development Kit (ADK) que estructura agentes como Flows tipados, soporta tool calling y trazabilidad. Úsalo cuando necesites agentes mantenibles, testeables y auditables con deploy serverless. Funciona conectando Flows tipados con herramientas externas y desplegando como funciones HTTP.

Qué es: un framework code‑first para agentes de IA. Por qué: trazabilidad, tests y despliegue sencillo. Cómo: define Flows (Zod), añade Tools y despliega a Firebase/Cloud Run.

Ideas clave

  • Flows tipados: entradas y salidas validadas con Zod para reducir errores y hallucinations.
  • Tool calling: interfaz controlada a APIs/DBs que mejora seguridad y auditabilidad.
  • Trazabilidad: traces con tokens, latencias y llamadas a tools para debugging y auditoría.
  • Deploy serverless: exporta Flows como funciones HTTP y despliega con Firebase/Cloud Run.

Tabla de contenidos

Qué es Google ADK (Genkit) y por qué usarlo

Firebase Genkit actúa como un “Agent Development Kit” real: estructura agentes como Flows tipados, soporta tool calling, ofrece trazabilidad (traces) y facilita deploy serverless en Firebase/Cloud Run. No es un playground: es ingeniería.

Beneficios clave

  • Flows tipados (Zod) para entradas/salidas.
  • Tools como interfaces a APIs o DBs.
  • Trace UI para tokens, latencias y llamadas a herramientas.
  • Deploy automático a Firebase Functions/Cloud Run.

Requisitos rápidos

  • Node.js 20+
  • Firebase CLI: npm i -g firebase-tools y firebase login
  • Proyecto Google Cloud con facturación habilitada para Vertex AI (si usas Gemini)
  • Opcional: Docker para ejecutar dev UI local

Referencias: Vertex AI, Genkit repo.

Paso 1 — Inicializa el scaffold (2–5 minutos)

Crea el proyecto y usa el inicializador de genkit:

mkdir mi-agente-genkit
cd mi-agente-genkit
npx genkit init

El asistente te pedirá TypeScript y proveedor de modelo (Vertex AI / Gemini). Genera estructura con src/ y genkit.config.ts. Guarda las claves de API en variables de entorno, nunca en el repo.

Paso 2 — Define el Flow: contrato y handler

En Genkit un agente es un Flow: entrada validada, salida validada, handler con lógica y llamadas a herramientas. Usa Zod para evitar parsing frágil.

Ejemplo mínimo

import { genkit } from '@genkit-ai/core';
import { z } from 'zod';
import { gemini15Flash } from '@genkit-ai/googleai';

const sdk = genkit({ /* config */ });

const In = z.object({ code: z.string(), language: z.enum(['typescript','python','go']) });
const Out = z.object({ suggestion: z.string(), risk: z.enum(['LOW','MEDIUM','HIGH']) });

export const codeRefactorAgent = sdk.defineFlow(
  { name: 'codeRefactor', inputSchema: In, outputSchema: Out },
  async (input) => {
    const prompt = `Actúa como Staff Engineer... analiza este código...`;
    const resp = await sdk.generate({
      model: gemini15Flash,
      prompt,
      output: { format: 'json', schema: Out }
    });
    return resp.output(); // validado por schema
  }
);

Puntos técnicos

Usa output: { format: 'json', schema } para minimizar hallucinations estructurales; valida todo en entrada; añade timeouts/try‑catch.

Paso 3 — Añade Tools (llamadas externas controladas)

Tools son funciones que el LLM puede invocar para consultar docs, bases de datos o sistemas internos.

Ejemplo de tool para buscar en npm registry

const npmSearch = sdk.defineTool({
  name: 'npmSearch',
  inputSchema: z.object({ q: z.string() }),
  outputSchema: z.object({ name: z.string(), version: z.string(), desc: z.string() }),
  call: async ({ q }) => {
    const r = await fetch(`https://registry.npmjs.org/-/v1/search?text=${q}`);
    const json = await r.json();
    return json.objects[0].package;
  }
});

El modelo decide cuándo invocar la tool; Genkit ejecuta la función y retorna el resultado al LLM. Esto mantiene seguridad y auditabilidad.

Paso 4 — Dev UI y pruebas automáticas

Dev UI

Levanta la UI local: npx genkit start. En localhost:4000:

  • Ejecuta flows con JSON.
  • Inspecciona traces: prompt final, tool calls, tokens y latencia.
  • Guarda artifacts (diffs, screenshots) para auditoría.

Pruebas automáticas

Integra tests unitarios: mockea respuestas de tools y valida que el Flow cumple output schema. Automatiza en CI.

Paso 5 — Deploy y orquestación

Exporta el Flow como función HTTP y despliega

  1. firebase init functions
  2. Importa y exporta el Flow en functions/src/index.ts.
  3. firebase deploy --only functions

Orquestación empresarial

Para orquestación empresarial conecta el endpoint a n8n o un workflow manager: n8n → HTTP Request → parse → branch por riesgo.

Limitaciones y criterios para migrar

Usa Genkit cuando:

  • Necesitas trazabilidad, tests y tool calling.
  • Quieres despliegue serverless rápido.

Migra a código tradicional si

  • La lógica es intensiva en CPU/GPU (procesamiento batch).
  • Tienes requisitos de latencia estrictos o compliance que impiden servicios cloud gestionados.
  • Coste por token/despliegue supera reescribir servicio en microservicios.

Métrica práctica: si tu agente supera 5–10k invocaciones/mes o la fricción en coste/latencia aumenta, planifica migración.

Buenas prácticas operativas

  • Principio de menor privilegio para tools y claves.
  • Versiona prompts como código y mantén changelogs.
  • Define SLAs y monitorea latencia, tasa de errores y ratio de respuestas estructuradas válidas.
  • Implementa fallback humano para casos de riesgo alto.

Conclusión

Saber cómo crear tu primer agente con Google ADK (Genkit) significa pensar en agentes como software: flujos tipados, herramientas controladas, pruebas y trazabilidad. Genkit transforma experimentos en sistemas desplegables y auditables; úsalo para prototipos robustos y como base técnica antes de escalar. Recursos y docs: Genkit, Vertex AI, repo.

Dominicode Labs

Si trabajas en automatización, agentes o workflows y buscas recursos prácticos y experimentos aplicados, revisa Dominicode Labs. Es una continuación lógica para prototipos técnicos y pruebas de integración.

FAQ

¿Qué es Firebase Genkit y cómo se diferencia de un playground?

Firebase Genkit es un framework code‑first para construir agentes de IA como Flows tipados, con soporte para tool calling y trazabilidad. A diferencia de un playground, está diseñado para ingeniería: testing, deploy serverless y auditoría, no solo experimentación interactiva.

¿Cuándo debo usar Genkit en lugar de microservicios tradicionales?

Usa Genkit cuando necesitas trazabilidad, tests y tool calling integrados rápidamente y cuando la lógica del agente beneficia de validación tipada. Considera migrar a microservicios si la carga crece a niveles donde coste/latencia o uso intensivo de GPU/CPU hacen más eficiente una implementación dedicada.

¿Qué requisitos de infraestructura necesito?

Node.js 20+, Firebase CLI (instala con npm i -g firebase-tools), y un proyecto Google Cloud con facturación habilitada para Vertex AI si usas Gemini. Docker es opcional para ejecutar la Dev UI local.

¿Cómo aseguro las claves y tools?

Aplica principio de menor privilegio para las claves y cuentas de servicio. Guarda credenciales en variables de entorno o secretos gestionados; nunca en el repositorio. Limita permisos de las tools a lo estrictamente necesario.

¿Cómo se gestionan las pruebas y CI para Flows?

Mockea respuestas de tools en tests unitarios y valida que los outputs cumplan el schema Zod. Automatiza esos tests en CI y añade pruebas de integración que revisen traces y artefactos relevantes.

¿Qué métricas debo monitorear en producción?

Monitorea latencia, tasa de errores, tokens consumidos y ratio de respuestas válidas según el schema. Define SLAs y habilita fallback humano para casos de riesgo alto.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *