{"id":2153,"date":"2025-02-26T11:05:00","date_gmt":"2025-02-26T10:05:00","guid":{"rendered":"https:\/\/pletzenauer.com\/?p=2153"},"modified":"2026-08-05T17:23:03","modified_gmt":"2026-08-05T15:23:03","slug":"agentic-rag-n8n-base-de-conocimiento","status":"publish","type":"post","link":"https:\/\/pletzenauer.com\/es\/2025\/02\/26\/agentic-rag-n8n-base-de-conocimiento\/","title":{"rendered":"Agentic RAG en n8n: por qu\u00e9 el RAG cl\u00e1sico falla a menudo \u2014 y c\u00f3mo hacerlo mejor"},"content":{"rendered":"<p>Muchas empresas apuestan hoy por asistentes de IA que respondan preguntas sobre sus propios documentos: actas de reuniones, tablas de indicadores o comentarios de clientes. El procedimiento habitual detr\u00e1s se llama Retrieval Augmented Generation (RAG). Est\u00e1 extendido, bien soportado y se implementa r\u00e1pido en herramientas no-code como n8n. Solo que, en la pr\u00e1ctica, el RAG cl\u00e1sico entrega respuestas err\u00f3neas o incompletas con sorprendente frecuencia. Cole Medin muestra en su v\u00eddeo a qu\u00e9 se debe y c\u00f3mo un montaje llamado agentic RAG evita las debilidades t\u00edpicas. Resumimos los puntos m\u00e1s importantes con sobriedad.<\/p>\n<div style=\"background:#FFE6D6;border-left:4px solid #F26A21;padding:16px 20px;border-radius:6px;margin:24px 0;\"><strong>Lo esencial en breve<\/strong><\/p>\n<ul>\n<li>El RAG cl\u00e1sico falla sobre todo en dos cosas: no puede &#8220;alejar el zoom&#8221; hasta documentos completos y no puede hacer un an\u00e1lisis de datos real sobre tablas.<\/li>\n<li>El agentic RAG da al agente de IA varias herramientas en lugar de una sola b\u00fasqueda: \u00e9l mismo decide c\u00f3mo consultar la base de conocimiento.<\/li>\n<li>Las tablas (CSV\/Excel) se guardan aparte, de modo que puedan consultarse con SQL sin crear una tabla propia para cada archivo.<\/li>\n<li>El agente puede listar documentos, recuperar archivos completos, citar fuentes y, si hace falta, mejorar la b\u00fasqueda.<\/li>\n<li>El montaje de n8n que se muestra es una plantilla ampliable, no un producto terminado: los prompts y las herramientas hay que adaptarlos al propio caso de uso.<\/li>\n<\/ul>\n<\/div>\n<figure style=\"margin:28px 0;\"><img decoding=\"async\" src=\"https:\/\/pletzenauer.com\/wp-content\/uploads\/2026\/06\/1487-1.png\" alt=\"Comparaci\u00f3n a dos columnas entre el RAG cl\u00e1sico y el agentic RAG, con cuatro puntos cada uno\" style=\"width:100%;height:auto;border-radius:8px;border:1px solid #E5E2DE;\"\/><figcaption style=\"font-size:0.9em;color:#6b6b6b;margin-top:8px;\">El agentic RAG da al agente de IA varias herramientas en lugar de una sola b\u00fasqueda.<\/figcaption><\/figure>\n<h2>Por qu\u00e9 el RAG cl\u00e1sico decepciona en la pr\u00e1ctica<\/h2>\n<p>El RAG funciona mediante una b\u00fasqueda por similitud: la consulta se compara con fragmentos de texto guardados (&#8220;chunks&#8221;) y los m\u00e1s afines se pasan al modelo de lenguaje. El problema est\u00e1 en esa selecci\u00f3n, que pasa por alto contexto importante con regularidad.<\/p>\n<p>Medin se\u00f1ala dos puntos d\u00e9biles concretos:<\/p>\n<ul>\n<li><strong>Sin visi\u00f3n de los documentos completos:<\/strong> el RAG solo recupera fragmentos sueltos. Quien quiera analizar tendencias en una tabla quiz\u00e1 reciba \u00fanicamente una cuarta parte de las filas, y con ella un resultado err\u00f3neo.<\/li>\n<li><strong>Sin an\u00e1lisis de datos real:<\/strong> las sumas o los valores m\u00e1ximos de una tabla no se calculan de forma fiable con una b\u00fasqueda puramente textual.<\/li>\n<\/ul>\n<p>A esto se suma una molestia pr\u00e1ctica: si se pregunta por el acta de una fecha concreta, el RAG recupera a veces el documento del d\u00eda equivocado, aunque la fecha figure en el t\u00edtulo. Y enlazar documentos distintos para establecer un contexto m\u00e1s amplio rara vez funciona.<\/p>\n<h2>Qu\u00e9 hace distinto el agentic RAG<\/h2>\n<p>La idea central es sencilla: en lugar de dar al agente de IA una \u00fanica herramienta de b\u00fasqueda, recibe varias y puede decidir por s\u00ed mismo c\u00f3mo explorar la base de conocimiento. Medin define el agentic RAG as\u00ed:<\/p>\n<blockquote><p>Agentic RAG significa dar al agente la capacidad de pensar <strong>c\u00f3mo<\/strong> consulta la base de conocimiento, en lugar de atarlo a una sola herramienta.<\/p><\/blockquote>\n<p>En concreto, as\u00ed el agente puede mejorar sus consultas, elegir otra herramienta cuando haga falta y probar varias v\u00edas hasta tener una respuesta s\u00f3lida. Si la b\u00fasqueda RAG pura falla, ya no se queda bloqueado.<\/p>\n<h3>Las cuatro herramientas del agente<\/h3>\n<p>En el workflow de n8n el agente dispone de estas herramientas:<\/p>\n<ul>\n<li><strong>B\u00fasqueda RAG<\/strong>: la b\u00fasqueda por similitud cl\u00e1sica, en su versi\u00f3n mejorada con indicaci\u00f3n de la fuente.<\/li>\n<li><strong>Listar documentos<\/strong>: el agente recupera todos los documentos con sus t\u00edtulos e ID y valora cu\u00e1les podr\u00edan ser relevantes.<\/li>\n<li><strong>Recuperar el contenido de un archivo<\/strong>: mediante el ID del archivo obtiene el texto completo de un documento concreto (por ejemplo, el acta del 23 de febrero, reconocible por el t\u00edtulo).<\/li>\n<li><strong>Consulta SQL sobre tablas<\/strong>: los archivos CSV y Excel se consultan como tablas SQL, para permitir sumas, m\u00e1ximos y evaluaciones similares.<\/li>\n<\/ul>\n<p>En el prompt de sistema se indica al agente que empiece con RAG y que solo recurra a las dem\u00e1s herramientas si la b\u00fasqueda no entrega lo adecuado. Una indicaci\u00f3n importante del v\u00eddeo: pedir expl\u00edcitamente honestidad al agente \u2014 es decir, que diga abiertamente cuando no ha encontrado respuesta \u2014 reduce de forma notable las alucinaciones.<\/p>\n<h2>C\u00f3mo se guardan los datos de las tablas<\/h2>\n<p>La parte t\u00e9cnicamente m\u00e1s interesante son las tablas. Para ello se crean tres tablas en Supabase:<\/p>\n<ul>\n<li><strong>documents<\/strong>: contiene los embeddings para RAG, los metadatos y el contenido de cada chunk.<\/li>\n<li><strong>document_metadata<\/strong>: guarda informaci\u00f3n de nivel superior: t\u00edtulo, URL para citar la fuente y, en el caso de las tablas, el esquema (es decir, los nombres de las columnas).<\/li>\n<li><strong>document_rows<\/strong>: almacena las filas de las tablas. Los datos propiamente dichos van a una columna flexible <strong>JSONB<\/strong> llamada <code>row_data<\/code>.<\/li>\n<\/ul>\n<p>El truco: con JSONB pueden guardarse estructuras de columnas arbitrarias sin tener que crear una tabla SQL propia para cada archivo CSV o Excel. El agente lee primero el esquema desde los metadatos, entiende qu\u00e9 columnas hay disponibles y formula despu\u00e9s una consulta SQL contra <code>row_data<\/code>. Medin advierte expresamente de que este montaje est\u00e1 simplificado: el esquema no dice nada sobre los tipos de datos, por lo que una suma sobre una columna con signos de d\u00f3lar puede fallar. A \u00e9l le interesa el concepto, no una implementaci\u00f3n perfecta.<\/p>\n<h2>La pipeline de RAG: de Google Drive a Supabase<\/h2>\n<p>Antes de que el agente pueda trabajar hay que llenar la base de conocimiento. La pipeline transcurre en varios pasos:<\/p>\n<ul>\n<li><strong>Disparador:<\/strong> un trigger de Google Drive comprueba cada minuto si hay archivos nuevos o modificados. Como alternativa funcionan Dropbox o un trigger de archivos local. Los archivos borrados, eso s\u00ed, no se detectan.<\/li>\n<li><strong>Varios archivos a la vez:<\/strong> un bucle a\u00f1adido procesa ahora tambi\u00e9n varios archivos que lleguen en el mismo intervalo de polling, una carencia conocida de la versi\u00f3n anterior.<\/li>\n<li><strong>Borrar datos antiguos:<\/strong> antes de cada importaci\u00f3n se eliminan los registros existentes del ID de archivo correspondiente. As\u00ed no queda ning\u00fan chunk obsoleto cuando un documento se ha acortado.<\/li>\n<li><strong>Extraer el contenido:<\/strong> un nodo Switch ramifica seg\u00fan el tipo de archivo: PDF, Google Doc, texto o tabla se leen de manera distinta. Otros formatos como JSON o HTML pueden a\u00f1adirse con nodos adicionales.<\/li>\n<li><strong>Guardar las tablas por partida doble:<\/strong> los archivos CSV se preparan por un lado como documento de texto para RAG y, por otro, se almacenan fila a fila en <code>document_rows<\/code> para las consultas SQL.<\/li>\n<\/ul>\n<p>Un escollo pr\u00e1ctico durante la configuraci\u00f3n: seg\u00fan el v\u00eddeo, para la conexi\u00f3n Postgres con Supabase hay que usar el <strong>transaction pooler<\/strong> (puerto 6543), no la conexi\u00f3n directa. La documentaci\u00f3n de n8n resulta poco clara en este punto.<\/p>\n<h3>Modelos utilizados<\/h3>\n<p>Para los embeddings se usa <code>text-embedding-3<\/code> de OpenAI y, como modelo de lenguaje, <code>GPT-4o mini<\/code>, elegido a prop\u00f3sito por barato y r\u00e1pido. Para casos m\u00e1s exigentes, Medin recomienda modelos m\u00e1s potentes como GPT-4o o Claude Sonnet 4. Importante: al insertar y al recuperar debe usarse el mismo modelo de embeddings con el mismo n\u00famero de dimensiones.<\/p>\n<h2>Tres ejemplos del v\u00eddeo<\/h2>\n<p>Medin demuestra c\u00f3mo el agente elige distintas herramientas seg\u00fan la pregunta:<\/p>\n<ul>\n<li><strong>Pregunta sobre una tabla:<\/strong> ante \u00ab\u00bfEn qu\u00e9 mes tuvimos m\u00e1s clientes nuevos?\u00bb, el agente escribe una consulta SQL y entrega el resultado correcto (diciembre, 129 clientes nuevos), en lugar de fiarse de chunks incompletos.<\/li>\n<li><strong>Pregunta puramente RAG:<\/strong> ante \u00ab\u00bfD\u00f3nde podemos mejorar?\u00bb, la b\u00fasqueda por similitud encuentra el documento de comentarios de clientes, aunque deliberadamente no se us\u00f3 la palabra \u00abmejora\u00bb.<\/li>\n<li><strong>Recuperaci\u00f3n de archivo con fuente:<\/strong> al recuperar un acta de reuni\u00f3n completa, el agente entrega los action items y, si se le pide, un enlace pinchable a la fuente.<\/li>\n<\/ul>\n<h2>Conclusi\u00f3n<\/h2>\n<p>El art\u00edculo muestra con sobriedad por qu\u00e9 un RAG ingenuo no basta para muchas aplicaciones de negocio: pasa por alto el contexto y no sabe calcular sobre tablas. El enfoque agentic lo resuelve de forma pragm\u00e1tica dando al agente de IA varias herramientas y margen de decisi\u00f3n. Para quienes deciden en una pyme y se plantean un asistente documental, esa es una conclusi\u00f3n importante: la calidad no depende solo del modelo, sino de la arquitectura que hay detr\u00e1s. Quien adopte el montaje de n8n presentado deber\u00eda entenderlo como punto de partida: los prompts, las herramientas y el modelo de datos hay que ajustarlos al propio conjunto de datos. Precisamente la consulta SQL sobre tablas y el tratamiento de los tipos de datos dejan margen de mejora.<\/p>\n<p><strong>Fuente:<\/strong> Cole Medin \u2013 \u201eI Built the ULTIMATE n8n RAG AI Agent Template&#8221;, <a href=\"https:\/\/www.youtube.com\/watch?v=mQt1hOjBH9o\">https:\/\/www.youtube.com\/watch?v=mQt1hOjBH9o<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El RAG cl\u00e1sico suele pasar por alto el contexto y los datos tabulares. C\u00f3mo un montaje de agentic RAG en n8n consulta bases de conocimiento de forma m\u00e1s fiable, explicado con ejemplos.<\/p>\n","protected":false},"author":0,"featured_media":1507,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert"],"_links":{"self":[{"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/posts\/2153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/comments?post=2153"}],"version-history":[{"count":1,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/posts\/2153\/revisions"}],"predecessor-version":[{"id":2593,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/posts\/2153\/revisions\/2593"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/media\/1507"}],"wp:attachment":[{"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/media?parent=2153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/categories?post=2153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pletzenauer.com\/es\/wp-json\/wp\/v2\/tags?post=2153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}