007 técnica
RAG con chunking coherente
Memoria externa consultable por similitud semántica. El error generalizado en 2024 y 2025 fue tratar el chunking como problema de longitud. La técnica madura lo entiende como problema editorial. Cada fragmento debe ser legible fuera de su contexto original.
Qué resuelve
Permite que un agente LLM consulte un corpus mucho mayor que su ventana de contexto sin perder coherencia. El sistema indexa el corpus en vectores, recibe una pregunta, recupera los K fragmentos más similares, y los pasa al LLM como contexto. Sin chunking correcto, los fragmentos recuperados son ruido.
Chunking ingenuo contra chunking coherente
El chunking ingenuo
Trocea el texto cada N caracteres o cada N tokens. Resultado: fragmentos cortados en mitad de frase, listas partidas en dos, tablas decapitadas. La búsqueda devuelve párrafos rotos que el LLM no sabe interpretar. El usuario percibe alucinación; en realidad es chunking malo.
El chunking coherente
Trocea por unidades semánticas: una sección de markdown, un párrafo cerrado, una entrada de FAQ, una receta completa. El criterio operativo es este: cada chunk debe ser legible si lo pegas en un email a alguien que no leyó el original.
Receta operativa
Uno. Elegir el tamaño correcto
Entre 128 y 512 tokens por chunk para la mayoría de casos. Por debajo de 128, el chunk pierde contexto. Por encima de 512, el chunk diluye la señal y la similitud semántica se vuelve borrosa.
Excepciones documentadas:
- Código fuente. Chunk por función o clase, sin importar tamaño.
- Tablas. Una tabla nunca se parte. Si supera los mil tokens, va a su propia colección.
- Definiciones de API. Chunk por endpoint completo.
Dos. Respetar fronteras semánticas
Chunkear por nodos del árbol del documento, no por offset. En markdown, eso significa cortar en headings (H2 o H3, según densidad). En código, en límites de función. En PDF, por sección detectada.
Tres. Enriquecer cada chunk con metadatos
Cada chunk se almacena con un objeto similar a este:
{
"id": "doc-247-chunk-3",
"source_doc": "estado-2-agentico.mdx",
"section": "Tokens con metadatos de política",
"token_count": 318,
"type": "concept",
"embedded_with": "text-embedding-3-large",
"embedded_at": "2026-05-12T10:30:00Z"
}
El metadato section permite recuperar el contexto narrativo si el LLM lo pide. El token_count permite truncar inteligentemente si el contexto se llena.
Cuatro. Validar empíricamente
Para cada nuevo corpus indexado, hacer este test:
- Coger veinte preguntas reales que el agente debería poder responder.
- Para cada una, recuperar los top cinco chunks.
- Leer manualmente los cien chunks resultantes.
- Si más del quince por ciento son fragmentos rotos o irrelevantes, el chunking falla. Reajustar tamaño o fronteras.
Este test cuesta una tarde y ahorra meses de soporte explicando alucinaciones.
Herramientas tipo
- pgvector (extensión de Postgres, desde 2021). La elección por defecto para corpus pequeños y medios. Integra con tu base de datos relacional.
- Pinecone (SaaS, desde 2021). Para corpus grandes y multi-tenant. Pago por uso.
- Qdrant (Rust, open source). Alternativa self-hosted con buen rendimiento.
- Chroma (Python, open source). La más simple para empezar y prototipar.
- LlamaIndex o LangChain. Frameworks que abstraen el ciclo chunking, embedding, retrieval.
Embedding models recomendados (2026):
- text-embedding-3-large (OpenAI). Calidad alta, coste medio.
- voyage-3 (Voyage AI). Calidad superior en dominios técnicos.
- bge-m3 (open source). Para self-hosted sin enviar datos fuera.
Anti-patrones documentados
- Chunking por número fijo de oraciones. Falla en textos con frases largas o cortas; introduce sesgo de tamaño.
- Re-chunking en cada cambio de embedding model. Si cambias modelo, conserva el chunking; solo recalcula vectores.
- Mezclar idiomas en una misma colección sin metadato de idioma. Las búsquedas devolverán resultados cross-lingual no deseados.
- No versionar el chunking. Si reorganizas chunks, los IDs antiguos quedan huérfanos. Versiona la estrategia.
Por qué encaja en el Estado 2
El Estado 2 expone el design system vía MCP a agentes externos. Esos agentes necesitan recuperar contexto sobre componentes, tokens, decisiones históricas. Sin RAG con chunking coherente, el agente recibe páginas enteras que saturan su contexto, o fragmentos rotos que generan respuestas confusas. Esta técnica es la condición técnica para que el MCP del sitio funcione bien.
Caso de aplicación en este sitio
A partir de Fase 2 (Q4 2026), tresestados.design indexará todo su corpus MDX en pgvector con esta misma técnica. Cada ficha de Compendio se chunk-eará por sección (## tokens consumidos, ## técnicas, ## genealogía, etcétera), con metadato de número de ficha y familia. El agente integrado en /dialogo consultará vía MCP. La demostración del Estado 3 será literalmente esta técnica funcionando sobre este sitio.