Cómo Construí un Copilot AI en VTEX: RAG, Multi-Agente y Lo Que Aprendí
Un deep-dive técnico sobre el diseño del sistema de IA agéntica que impulsa el Copilot de VTEX.
El Desafío
Cuando me uní al equipo de IA en VTEX, la misión era clara: construir un asistente de IA que ayudara a los merchants a gestionar sus operaciones de e-commerce. Pero “asistente de IA” es vago. ¿Qué significa realmente?
Después de meses de investigación e iteración, definimos Copilot como:
Un sistema de IA agéntica que entiende la intención del merchant, recupera contexto relevante de la base de conocimiento de VTEX, y ejecuta o guía acciones en la plataforma.
Esto significaba construir tres capacidades principales:
- Comprensión — Parsear consultas en lenguaje natural en intenciones accionables
- Recuperación — Encontrar documentación relevante, configuraciones y datos históricos
- Acción — Ejecutar operaciones o guiar usuarios a través de flujos complejos
La Arquitectura
Pipeline RAG
El corazón de Copilot es un pipeline de Retrieval-Augmented Generation (RAG). Así funciona:
Consulta → Clasificación de Intención → Recuperación → Ensamblaje de Contexto → LLM → Respuesta
¿Por qué RAG?
Los LLMs puros alucinan. Mucho. RAG ancla el modelo en documentación y datos reales, reduciendo dramáticamente las alucinaciones mientras mantiene las respuestas actualizadas.
Decisiones clave que tomamos:
- Estrategia de chunking — Usamos chunking semántico con overlap, no chunks de tamaño fijo. Las secciones de documentación tienen límites naturales.
- Modelo de embeddings —
text-embedding-3-largede OpenAI para producción, con planes de migrar a modelos open-source para reducir costos. - Vector store — Pinecone para recuperación de baja latencia a escala.
- Re-ranking — Reranker de Cohere para mejorar la precisión de recuperación antes de enviar al LLM.
Orquestación Multi-Agente
Las consultas complejas requieren múltiples agentes especializados. Por ejemplo:
“¿Por qué bajaron mis ventas la semana pasada y cómo lo arreglo?”
Esto dispara:
- Agente de Analytics — Consulta datos de ventas, identifica anomalías
- Agente de Diagnóstico — Verifica cambios de configuración, promociones que terminaron
- Agente de Recomendación — Sugiere acciones basadas en hallazgos
Usamos un patrón supervisor donde un agente orquestador principal delega a especialistas y sintetiza sus outputs.
const orchestrator = new SupervisorAgent({
agents: [analyticsAgent, diagnosticAgent, recommendationAgent],
strategy: 'parallel-then-synthesize',
timeout: 30000,
});
Los sistemas multi-agente son poderosos pero añaden complejidad. Empieza con un solo agente y solo añade más cuando tengas responsabilidades claras y separables.
Deep-Dive Técnico: La Capa de Recuperación
Búsqueda Híbrida
La búsqueda vectorial pura no es suficiente. Combinamos:
- Búsqueda semántica — Similaridad vectorial para matches conceptuales
- Búsqueda por palabras clave — BM25 para matches exactos de términos (especialmente para nombres de productos, IDs)
- Filtrado por metadata — Filtrar por tipo de documento, recencia, idioma
def hybrid_search(query: str, filters: dict) -> list[Document]:
# Búsqueda semántica
semantic_results = vector_store.similarity_search(
query,
k=20,
filter=filters
)
# Búsqueda por palabras clave
keyword_results = bm25_index.search(query, k=20)
# Reciprocal Rank Fusion
return rrf_merge(semantic_results, keyword_results, k=10)
Gestión de Ventana de Contexto
La ventana de contexto de GPT-4 es grande pero no infinita. Desarrollamos un sistema de prioridad:
- Imprescindible — Documentos recuperados directamente
- Importante — Historial de conversación, perfil de usuario
- Deseable — Artículos relacionados, ejemplos
Cuando nos acercamos a los límites, truncamos de abajo hacia arriba.
Lecciones Aprendidas
1. La Latencia es Todo
Los usuarios esperan respuestas instantáneas. Nuestros objetivos:
- P50 < 2 segundos
- P95 < 5 segundos
Lo logramos mediante:
- Streaming de respuestas (empezar a mostrar texto inmediatamente)
- Recuperación paralela de múltiples fuentes
- Caching agresivo de embeddings
2. La Evaluación es Difícil
¿Cómo sabes si la IA está mejorando? Construimos:
- Dataset dorado — 500 pares query-respuesta calificados por humanos
- Evals automatizados — LLM-as-judge para fluidez, relevancia, precisión
- A/B testing — Comparaciones reales de usuarios en producción
3. La Ingeniería de Prompts es un Trabajo Real
Nuestros prompts pasaron por 50+ iteraciones. Aprendizajes clave:
- Sé específico sobre el formato de output
- Incluye ejemplos de respuestas buenas y malas
- Usa system prompts para persona, user prompts para tarea
Prompt Injection
Nunca confíes en input de usuario directamente en prompts. Implementamos sanitización de input y guardrails para prevenir ataques de prompt injection.
4. La Observabilidad es Crítica
Cada request se loguea con:
- Prompt completo y respuesta
- Fuentes de recuperación y scores
- Desglose de latencia por componente
- Señal de feedback del usuario
Estos datos son oro para debugging y mejora.
¿Qué Sigue?
Copilot está live y ayudando a miles de merchants diariamente. Pero apenas estamos empezando:
- Function calling — Dejar que la IA ejecute acciones directamente
- Memoria — Contexto de largo plazo entre conversaciones
- Personalización — Adaptarse a la tienda e historial específico del merchant
Llevándolo a Mis Proyectos
Todo lo que aprendí en VTEX está yendo a WalioAI. Los patrones son los mismos — RAG, multi-agente, streaming — pero aplicados a generación de leads en lugar de e-commerce.
Construir en público significa compartir lo que aprendo. Sígueme para más deep-dives técnicos.