Lo esencial
Claude es inteligente, pero no sabe nada de tu empresa, tus clientes ni tus documentos. RAG es como darle a Claude acceso a tu biblioteca personal: puede encontrar el libro que necesita en un segundo y usarlo para responder. Sin RAG, responde desde su conocimiento general. Con RAG, desde tus datos concretos.
Conceptos clave
- RAG resuelve el problema de "el modelo no conoce mis datos"
- Los datos se convierten en vectores: huellas matemáticas del significado
- La búsqueda no es por palabras clave, sino por significado (semántica)
- Stack: Gemini Embedding 2 (vectorización) + Pinecone (almacenamiento) + Claude (generación)
Teoría
El problema que resuelve RAG
Claude fue entrenado con datos hasta cierta fecha y no sabe nada de tu negocio. Si creas un agente asesor para un cliente, el agente no conoce los productos de la empresa, sus reglas internas ni el historial de los clientes. Hay varias formas de resolverlo:
Opción 1: Meter todo en el prompt del sistema Agregar toda la documentación directamente en claude.md. Problemas: el límite de la ventana de contexto (a octubre de 2026, Opus 5.5 y Sonnet 5.5 tienen 1 millón de tokens y Haiku 4.5 bastante menos, las cifras están en Lo vigente; una base de conocimiento corporativa grande igual no cabe, y la calidad de las respuestas baja mucho antes de llenar la ventana), es caro (se lee en cada solicitud) y se actualiza mal. Para una base pequeña, en cambio, es el camino más simple: si tienes pocos materiales, ponlos en el contexto y no construyas infraestructura de más.
Opción 2: Fine-tuning Volver a entrenar el modelo con tus datos. Caro, lento, requiere experiencia y el resultado es impredecible. No es para la mayoría de las tareas.
Opción 3: RAG Guardar los datos por separado, buscar lo relevante en cada solicitud y agregar lo encontrado al contexto. Es el enfoque correcto para la mayoría de las tareas con datos internos.
Cómo funciona RAG, paso a paso
Paso 1: Preparar los datos (Indexing)
Tomas tus datos (documentos PDF, artículos, páginas web, tablas, imágenes, video) y los procesas con un modelo de embeddings.
El modelo de embeddings convierte cada fragmento de texto (o imagen, o video) en un vector: un arreglo de miles de números. Esos números codifican el significado del contenido. Los textos con significado parecido reciben vectores parecidos, aunque estén escritos con palabras distintas.
Ejemplo: "Cómo cancelar mi suscripción" y "Procedimiento para rescindir el contrato" son palabras distintas, pero el mismo significado. Los vectores quedarán cerca.
Paso 2: Guardar los vectores (Vector Database)
Todos los vectores obtenidos se guardan en una base de datos vectorial: Pinecone. Es una base de datos especializada, optimizada justamente para buscar vectores.
Cada vector se guarda junto con el texto original y metadatos (fuente, fecha, categoría). Así, cuando se encuentra un vector, puedes recuperar el texto original.
Paso 3: Búsqueda (Retrieval)
Cuando el usuario hace una pregunta, la pregunta también se convierte en vector (con el mismo modelo de embeddings). Luego se buscan en la base los N vectores más cercanos según la distancia matemática (cosine similarity).
Resultado: los 3 o 5 documentos semánticamente más cercanos a la pregunta.
Paso 4: Enriquecer y generar (Augment + Generate)
Los documentos encontrados se agregan al contexto antes de la solicitud a Claude:
Estos son los documentos relevantes de la base de conocimiento:
[Documento 1: Condiciones de devolución de productos...]
[Documento 2: Preguntas frecuentes sobre cancelar la suscripción...]
Responde la pregunta del usuario usando la información de estos documentos:
"¿Cómo devuelvo un producto que compré hace 3 meses?"Claude ve datos concretos y responde con base en ellos, no en su conocimiento general.
Google Gemini Embedding 2: multimodalidad
Para la vectorización, este stack usa Google Gemini Embedding 2 (identificador del modelo gemini-embedding-2), un modelo de embeddings con capacidades multimodales. A octubre de 2026 ya pasó de versión preliminar a estable. También existe el modelo anterior, solo de texto, gemini-embedding-001.
Qué significa en la práctica:
- Documentos de texto → vector ✅
- Imágenes (JPG, PNG) → vector ✅
- Video → vector ✅
- Audio → vector ✅
- Documentos PDF → vector ✅
Esto abre posibilidades que no existen con los modelos de embeddings solo de texto: una base de conocimiento con imágenes de productos, videos instructivos, notas de voz; todo eso se vuelve buscable.
Ejemplo: una empresa que fabrica electrodomésticos guarda fotos de todos sus modelos. El usuario sube la foto de un aparato descompuesto y el sistema encuentra imágenes parecidas en la base e identifica el modelo aunque no tenga el nombre.
Pinecone: por qué una base de datos vectorial y no una común
Una base de datos común (PostgreSQL, MySQL) sabe buscar coincidencias exactas: "encuentra los registros donde category = 'FAQ'". No sabe buscar por significado.
Pinecone está optimizado para una sola tarea: "encuentra los N vectores más cercanos a este vector". La búsqueda tarda milisegundos incluso entre millones de vectores. Es una solución en la nube: no necesitas montar tu propia infraestructura.
Alternativas: Weaviate (open source), Qdrant (open source, se puede autoalojar), pgvector (extensión para PostgreSQL), Chroma (local, para desarrollo). Pinecone es bueno para empezar: integración sencilla y un plan gratuito Starter con límites de volumen y de número de operaciones.
El proceso para crear un sistema RAG
- Prepara los datos: reúne los documentos, artículos, preguntas frecuentes e imágenes que el sistema debe conocer
- Divide en chunks: los documentos grandes se cortan en fragmentos de ~500 palabras (con un traslape de ~50 palabras). Esto importa: un documento completo en un solo vector funciona peor que varios chunks con temas concretos
- Crea un índice en Pinecone: mediante la API creas el "espacio" para guardar
- Sube los vectores: para cada chunk obtienes un vector con Gemini Embedding 2 y lo subes a Pinecone
- Crea la interfaz de consultas: una función que recibe la pregunta, busca en Pinecone y agrega el resultado al contexto de Claude
- Prueba: haces preguntas, revisas la calidad de las respuestas y ajustas
Cuándo necesitas RAG y cuándo no
Necesitas RAG:
- Un agente asesor sobre los productos o servicios de la empresa
- Búsqueda en la base de conocimiento corporativa
- Preguntas sobre documentos específicos (legales, técnicos)
- Recomendaciones personalizadas basadas en el historial
No necesitas RAG:
- Tareas donde Claude ya sabe todo (preguntas generales, programación)
- Si toda la información necesaria cabe en claude.md
- Tareas de una sola vez donde los datos no cambian
Aplicaciones reales de RAG
Base de conocimiento de la empresa: un empleado pregunta "¿cómo tramito los viáticos de un viaje de trabajo?" y el agente encuentra la sección correspondiente de la política de RR. HH. y la explica con sus palabras.
Agente asesor de una tienda en línea: el comprador describe un problema con un producto y el agente encuentra casos parecidos en la base de soluciones y propone un paso concreto.
Asistente legal: un abogado sube un paquete de contratos y pregunta "¿estos contratos tienen cláusulas de fuerza mayor?"; el sistema encuentra los puntos relevantes.
Soporte basado en tickets: el agente ha visto miles de preguntas parecidas de clientes; encuentra las similares y usa las respuestas que ya funcionaron.
Práctica
Tarea: un sistema RAG sencillo con textos
Para practicar, crearemos un pequeño sistema RAG sin servicios externos, usando almacenamiento local.
- Crea en el proyecto una carpeta
knowledge-base/con 5-7 archivos de texto sobre un tema que conozcas bien (por ejemplo, preguntas frecuentes sobre tus servicios) - Pídele a Claude Code: "Crea un sistema RAG simple que busque en los archivos de knowledge-base/. Ante una pregunta, que encuentre el documento más relevante y responda con base en él. Usa TF-IDF para la búsqueda (sin APIs externas)."
- Pruébalo: haz una pregunta que esté en uno de los documentos y luego una que no esté
- Para el stack completo con Pinecone + Gemini Embedding: crea una cuenta en pinecone.io (plan gratuito Starter), obtén una clave de API (guárdala en
.env, no en el chat) y pídele al agente que migre el sistema
Comparación de modelos de embeddings
| Modelo | Modalidades | Costo (a octubre de 2026) | Mejor para |
|---|---|---|---|
| Google Gemini Embedding 2 | Texto + imágenes + video + audio + PDF | Tiene un nivel gratuito con límites; precios de pago en la página de precios de Gemini API | Bases de conocimiento multimodales |
| Voyage AI (familia voyage-4) | Texto (alta calidad), también tiene modelos multimodales | Pago por tokens, con un volumen inicial gratuito; precios en el sitio de Voyage AI | Búsqueda semántica precisa en texto |
| OpenAI text-embedding-3-small | Texto | Pago por tokens, la opción más económica de OpenAI; precio en el sitio de OpenAI | Opción económica, texto |
| OpenAI text-embedding-3-large | Texto (alta calidad) | Pago por tokens, más caro que small; precio en el sitio de OpenAI | Máxima precisión en texto |
Comparación de bases de datos vectoriales
Las condiciones de los planes gratuitos cambian: consulta precios y versiones vigentes en los sitios de cada servicio y en la página Lo vigente.
| Base | Tipo | Plan gratuito | Mejor para |
|---|---|---|---|
| Pinecone | Nube | Plan Starter con límites | Producción, integración sencilla |
| Chroma | Local | Gratis | Desarrollo, prototipos |
| Qdrant | Autoalojado / Nube | Gratis (autoalojado) | Control total, open source |
| Weaviate | Autoalojado / Nube | Autoalojado gratis; para la nube, ver la página de precios | Consultas complejas, GraphQL |
| pgvector | Extensión de PostgreSQL | Gratis | Si ya tienes PostgreSQL |
Herramientas y recursos
- Pinecone: base de datos vectorial, plan inicial gratuito
- Google Gemini Embedding 2: mediante la Google AI API, modelo de embeddings multimodal
- Anthropic: Embeddings: guía oficial de embeddings para Claude (ahí mismo hay un enlace a un ejemplo de RAG con Pinecone)
- LangChain / LlamaIndex: frameworks de Python que simplifican la creación de pipelines de RAG
- Chroma: base vectorial local para desarrollo (sin registro)
- Voyage AI: modelo de embeddings de alta precisión; Anthropic no tiene modelo de embeddings propio y su documentación remite a Voyage
- OpenAI text-embedding-3-small: modelo de embeddings alternativo (solo texto, más barato)
Errores comunes
Error 1: Chunks demasiado grandes Subiste documentos completos de 5000 palabras como un solo vector. Resultado: la búsqueda encuentra el documento, pero la parte no relevante. Tamaño óptimo de chunk: 300-500 palabras con un traslape de 50-100 palabras.
Error 2: RAG cuando basta con CLAUDE.md Si tienes 10 reglas y 5 plantillas, mételas en CLAUDE.md. RAG hace falta cuando los datos son bastante más de lo razonable para tener en el contexto (ventana a octubre de 2026: 1M de tokens en Opus 5.5 y Sonnet 5.5, menos en Haiku 4.5, y la calidad baja antes de llenarse). Para bases de conocimiento pequeñas, RAG es excesivo.
Error 3: No probar la calidad de las respuestas Configuraste RAG, probaste una pregunta y funciona. Pero con 10 preguntas distintas, 3 respuestas son imprecisas. Crea un conjunto de 15-20 preguntas de prueba con sus respuestas correctas y revisa la calidad de forma sistemática.
Referencias cruzadas
- Tokens y manejo del contexto: por qué no puedes simplemente cargar todo en el contexto en lugar de usar RAG
- MCP: ampliamos las capacidades de Claude Code: servidores MCP que pueden funcionar como fuentes de RAG
- Manejo del contexto: técnicas avanzadas: estrategias avanzadas de manejo del contexto, incluido RAG
Ideas clave
RAG es el puente entre el enorme conocimiento de Claude y los datos específicos de tu negocio. Sin RAG, el agente es inteligente pero ciego a tu realidad concreta.
La búsqueda vectorial busca por significado, no por palabras. Eso distingue a RAG de un simple grep o CTRL+F: el usuario puede preguntar con sus propias palabras y aun así encontrar lo que necesita.
La multimodalidad (texto + imágenes + video) abre usos imposibles con embeddings de solo texto. Es una posibilidad nueva y vale la pena probarla con tus propios materiales.
Siguiente lección
→ Sitios y aplicaciones web desde cero: del prompt al sitio terminado
La marca se guarda solo en este navegador y no se envía a ningún sitio. Mi progreso