Logo GCP con Eduardo

GCP con Eduardo

Arquitectura de Agentes IA con BigQuery y Google ADK | Eduardo Martínez Agrelo
✦ Guía Técnica & Arquitectura

Arquitectura de Agentes IA con BigQuery y Google ADK: De Reseñas a Decisiones Rentables

El 90% de las empresas analizan reseñas de clientes de forma aislada, sin contexto financiero ni capacidad predictiva. Como Google Cloud Partner y AI & Data Architect, te mostraré cómo estructurar una arquitectura multi-agente basada en Google Agent Development Kit (ADK) y BigQuery para procesar petabytes de feedback no estructurado y cruzarlo en tiempo real con márgenes de beneficio, ventas y ROI.

Orquestación jerárquica con Root Agent & Sub-Agents.
Correlación SQL determinista entre NPS y márgenes.
Mitigación de alucinaciones y costes FinOps en BigQuery.
Generación dinámica de scatter plots e inferencia analítica.
Google Cloud Platform BigQuery Google Agent Development Kit (ADK) Vertex AI (Gemini 1.5 Pro) Python 3.11 Code Interpreter

Matriz de Decisión: Procesamiento Analítico Tradicional vs. Agentes IA

Elegir el enfoque de procesamiento adecuado es la diferencia entre un pipeline que genera valor financiero inmediato y un cuello de botella con costes descontrolados de analistas manuales:

Patrón / Paradigma Latencia de Inferencia Correlación No Estructurada Coste Operacional (TCO) Gobernanza & Determinismo
Analítica Manual (Excel / BI Clásico) Días / Semanas Nula (Lectura por muestreo) Crítico (Horas hombre elevadas) Bajo (Propenso a error humano)
Mono-Agent LLM (Prompt RAG Simple) Media (5s - 12s) Parcial (Límite de ventana contexto) Alto (Consumo masivo de tokens) Medio (Riesgo de alucinación matemática)
Multi-Agent ADK + BigQuery Engine Sub-segundo / Tiempo Real Total (Embeddings + SQL Agregado) Óptimo (Consultas particionadas) Empresarial (SQL validado + IAM GCP)

⚠️ Antipatrón Crítico: Inyección Directa de Datos en Contexto y Full Scans

Un error grave en producción consiste en permitir que el LLM reciba miles de filas de reseñas en crudo dentro del System Prompt o que genere consultas SQL sin cláusulas de particionado sobre BigQuery. Esto provoca:

  • Spike de costes FinOps: Escaneos de Terabytes innecesarios en BigQuery por falta de filtros _PARTITIONDATE.
  • Alucinaciones en márgenes contables: Los LLMs son probabilísticos; delegarles cálculos de margen promedio genera discrepancias numéricas. Las matemáticas deben ejecutarse en la capa del motor analítico SQL.

Implementación Técnica: Orquestación Multi-Agente con ADK

A continuación se presenta la arquitectura en Python que configura el root_agent, desacopla el DataAgent para la ejecución determinista en BigQuery y delega la representación al VisualizationAgent:

# data_agent_stock_finanzas.py
# Framework: Google Agent Development Kit (ADK) & Vertex AI
import os
from google.cloud import bigquery
from agent_development_kit import Agent, Tool

# 1. Configuración del Cliente BigQuery
bq_client = bigquery.Client(project=os.getenv("GCP_PROJECT_ID"))

def query_product_satisfaction_vs_margin(min_reviews: int = 50) -> str:
    """
    Ejecuta consulta analítica optimizada sobre el dataset de producción.
    Cruza la puntuación promedio de reseñas NLP con el margen de beneficio neto.
    """
    sql_query = f"""
        SELECT 
            p.product_name,
            ROUND(AVG(r.sentiment_score), 2) AS puntuacion_promedio,
            ROUND(AVG(f.profit_margin_pct), 2) AS margen_beneficio_promedio
        FROM `{os.getenv("GCP_PROJECT_ID")}.demo_dataset_4.apartamentos` p
        JOIN `{os.getenv("GCP_PROJECT_ID")}.demo_dataset_4.opiniones` r 
            ON p.product_id = r.product_id
        JOIN `{os.getenv("GCP_PROJECT_ID")}.demo_dataset_4.reservas` f 
            ON p.product_id = f.product_id
        WHERE r.created_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)
        GROUP BY p.product_name
        HAVING COUNT(r.review_id) >= {min_reviews}
        ORDER BY puntuacion_promedio DESC;
    """
    query_job = bq_client.query(sql_query)
    results = query_job.to_dataframe()
    return results.to_json(orient="records")

# 2. Definición del Agente Especialista en Datos
data_agent = Agent(
    name="DataAgent",
    model="gemini-1.5-pro",
    description="Agente analítico de datos que interactúa exclusivamente con BigQuery mediante SQL seguro.",
    tools=[Tool(query_product_satisfaction_vs_margin)]
)

# 3. Agente Especialista en Renderizado Visual
visualization_agent = Agent(
    name="VisualizationAgent",
    model="gemini-1.5-flash",
    description="Genera gráficos de dispersión (Scatter Plots) correlacionando ejes X (Margen) e Y (Puntuación).",
    code_interpreter=True
)

# 4. Orquestador Jerárquico Principal (Root Agent)
root_agent = Agent(
    name="RootAgent",
    model="gemini-1.5-pro",
    description="Asistente analítico principal que coordina agentes de datos y visualización sobre BigQuery.",
    instruction="""
    Eres el consultor analítico de negocio para el usuario.
    1. Cuando el usuario pregunte por correlaciones o métricas de rentabilidad, usa 'DataAgent'.
    2. Presenta siempre un resumen estructurado en tabla Markdown con los hallazgos.
    3. Si es relevante visualizar la dispersión (Eje X: Margen %, Eje Y: Puntuación), ofrece generar el gráfico.
    4. Si el usuario acepta, invoca a 'VisualizationAgent' transfiriendo el payload JSON exacto.
    """,
    sub_agents=[data_agent, visualization_agent]
)

if __name__ == "__main__":
    # Despliegue del runtime con ADK Web Interface
    root_agent.run_server(port=8080)

Patrones de Diseño y Buenas Prácticas de Arquitectura

Para garantizar resiliencia y escalabilidad horizontal en infraestructuras de nivel corporativo, aplica estos tres pilares arquitectónicos:

1. Desacoplamiento de Responsabilidades (Single Responsibility Agents)

El RootAgent nunca debe ejecutar consultas SQL ni procesar gráficos de manera directa. Al aislar las capacidades en sub-agentes atómicos, limitas el tamaño de la ventana de contexto, aumentas la tasa de éxito del Tool-Calling y reduces drásticamente la latencia global del sistema.

2. Gobernanza y Seguridad con IAM de Mínimo Privilegio

La cuenta de servicio (Service Account) asociada a la Cloud Run o Vertex AI Runtime debe disponer exclusivamente del rol roles/bigquery.dataViewer y roles/bigquery.jobUser sobre datasets específicos, impidiendo mutaciones de esquemas o inyecciones de código malicioso.

3. Análisis de Oportunidades de Negocio (Pricing Elasticity)

Al correlacionar el NPS o sentiment score no estructurado con los márgenes contables, el sistema detecta de forma autónoma anomalías de pricing: activos con valoraciones de 5.0 estrellas pero márgenes de beneficio inferiores al 15% representan oportunidades inmediatas de incremento de tarifas sin fricción de demanda.

Framework de Despliegue en GCP (Paso a Paso)

  • 01
    Ingesta y Normalización en BigQuery: Carga tus transacciones OLTP y feeds de reseñas (Google Maps, Trustpilot, CRM) en datasets particionados por fecha.
  • 02
    Enriquecimiento con Vertex AI LLM: Ejecuta modelos de análisis de tópicos y entidades en BigQuery ML usando ML.GENERATE_TEXT.
  • 03
    Configuración del ADK Environment: Instala las extensiones del Google Agent Development Kit y compila los sub-agentes en Python.
  • 04
    Despliegue Serverless en Cloud Run: Empaqueta la solución en un contenedor Docker y expón la interfaz ADK bajo autenticación OAuth2 empresarial.

Preguntas Frecuentes (FAQ)

¿Por qué desacoplar el Root Agent del Data Agent en arquitecturas analíticas?

Desacoplar el enrutador conversacional del ejecutor de consultas y del generador gráfico previene la sobrecarga de contexto en el LLM, garantiza cálculos matemáticos deterministas mediante SQL y optimiza el consumo de tokens en cada invocación.

¿Cómo optimizar costes de BigQuery al conectar Agentes de Inteligencia Artificial?

Se deben implementar vistas materializadas, particionamiento obligatorio por timestamp y clustering por categorías de producto. Esto asegura que el agente filtre datos en origen y no ejecute escaneos completos de tabla (Full Scans).

¿Cuál es la ventaja de Google ADK frente a frameworks genéricos como LangChain?

Google Agent Development Kit (ADK) ofrece integración nativa con el stack de Vertex AI, soporte optimizado para Gemini y extensiones de ejecución de código seguras en la nube, reduciendo la latencia de inferencia y asegurando conformidad con VPC Service Controls.

Sobre el Autor: Eduardo Martínez Agrelo

AI & Data Architect

Especialista en arquitecturas de datos en Google Cloud Platform, modernización analítica y despliegue de sistemas multi-agente para grandes corporaciones. Google Cloud Partner enfocado en transformar telemetría masiva en infraestructuras rentables, escalables y orientadas a resultados de negocio.