RAG vs Fine-Tuning: qué elegir para personalizar un LLM con datos propios
Personalizar un modelo de lenguaje grande (LLM) con datos propios se ha convertido en una prioridad para las empresas que buscan aprovechar...

El context engineering se está convirtiendo en una pieza crítica para mejorar agentes de IA, RAG y LLM. No se trata solo de escribir mejores prompts, sino de decidir qué información entra en cada tarea, cómo se ordena, qué se descarta y qué memoria se conserva. Cuando el contexto falla, el agente responde peor aunque el modelo sea potente en producción.
Tabla de contenidos
Un agente de IA puede fallar aunque use un buen LLM y un prompt aparentemente correcto. La respuesta puede ser vaga, contradictoria, demasiado genérica o directamente inútil porque el problema no está solo en la instrucción, sino en el contexto que recibe el modelo para resolver la tarea. Ahí entra el context engineering.
En agentes de IA, el contexto no es un bloque de información añadido al prompt. Es una combinación de instrucciones del sistema, historial de conversación, memoria, datos recuperados mediante RAG, resultados de herramientas, reglas de negocio y límites operativos. Si esas piezas llegan desordenadas, duplicadas, incompletas o con prioridades confusas, el agente puede perder el objetivo aunque la tecnología de base sea potente.
La pregunta importante ya no es solo “qué prompt escribimos”, sino qué información necesita realmente el agente en este paso y cuál debería quedar fuera. Añadir más contexto no siempre mejora el resultado. A veces introduce ruido, contradicciones o detalles secundarios que empujan al modelo hacia respuestas pobres. Por eso, el context engineering se está convirtiendo en una práctica crítica para diseñar agentes más consistentes, trazables y útiles en entornos reales.
El context engineering importa porque un agente de IA no responde solo a una instrucción aislada. Responde al estado completo que el LLM recibe en cada paso: instrucciones, memoria, documentos recuperados, herramientas disponibles, historial, ejemplos y restricciones. Si ese estado está mal diseñado, el agente puede parecer poco fiable aunque el modelo sea avanzado.
Anthropic explica en su artículo sobre context engineering para agentes de IA que el contexto es un recurso crítico y finito. Esta idea cambia la forma de diseñar agentes: ya no se trata de meter toda la información posible, sino de construir el conjunto mínimo de señales útiles para que el modelo actúe con precisión.
Durante mucho tiempo, muchos equipos han abordado los fallos de IA generativa como problemas de prompt engineering. Si la respuesta era pobre, se reescribía la instrucción, se añadía una regla más o se incorporaban ejemplos adicionales. Eso puede ayudar en tareas simples, pero se queda corto cuando hablamos de agentes de IA que consultan fuentes, usan herramientas y toman decisiones en varios pasos.
En un agente, el prompt es solo una parte del sistema. También influyen qué documentos recupera el RAG, qué memoria se conserva, qué resultados devuelve una herramienta, qué instrucciones tienen prioridad y qué historial sigue visible. Por eso, una buena instrucción puede fracasar si el agente recibe contexto irrelevante, contradictorio o incompleto.
El salto práctico consiste en dejar de preguntar únicamente “qué le digo al modelo” y empezar a preguntar “qué necesita saber el modelo ahora”. Esa diferencia parece pequeña, pero cambia el diseño completo. Un agente que resume una incidencia técnica no necesita todo el historial del cliente, sino los eventos relevantes, el estado actual, los cambios recientes y las reglas de respuesta.
Añadir más contexto suele parecer una solución intuitiva. Si el agente responde mal, se le da más documentación, más ejemplos, más historial y más instrucciones. El problema es que más información no siempre significa mejor información. A partir de cierto punto, el contexto puede introducir ruido y hacer que el LLM pierda foco.
Esto ocurre con frecuencia en sistemas RAG mal ajustados. El agente recupera fragmentos parecidos, pero no necesariamente útiles; mezcla versiones antiguas con documentación actual; recibe bloques largos donde la respuesta está escondida; o incorpora información secundaria que compite con la tarea principal. El resultado puede ser una respuesta correcta en apariencia, pero vaga, incompleta o mal orientada.
También puede pasar con la memoria. Recordar preferencias del usuario, decisiones previas o restricciones del proyecto puede mejorar mucho la experiencia. Pero una memoria sin limpieza ni jerarquía puede arrastrar supuestos antiguos, contradicciones o datos que ya no aplican. En context engineering, descartar bien es tan importante como recuperar bien.
La ventana de contexto no es un espacio neutral. Dentro compiten instrucciones del sistema, mensajes del usuario, historial, ejemplos, documentos recuperados, salidas de herramientas y memoria persistente. Cada elemento ocupa atención y puede reforzar o debilitar la respuesta final.
Por eso, el orden y la prioridad importan. Una instrucción crítica puede quedar diluida si aparece rodeada de fragmentos irrelevantes. Un dato actualizado puede perder fuerza si convive con una versión antigua del mismo procedimiento. Una herramienta puede usarse mal si su descripción es ambigua o si hay varias herramientas con funciones demasiado parecidas.
Diseñar bien el contexto implica decidir qué entra, qué queda fuera y qué debe tener más peso. En agentes de IA, esa decisión ya no es un detalle de implementación: es una cuestión de arquitectura, calidad y control. Cuando el contexto se trata como un recurso limitado, el agente responde con más foco, menos contradicciones y mayor trazabilidad.
Cuando un agente de IA responde mal, conviene revisar de dónde salió el contexto que utilizó. El fallo puede estar en el RAG, en una memoria mal mantenida, en instrucciones contradictorias o en herramientas que devuelven datos difíciles de interpretar. Si esas capas no se diseñan juntas, el LLM recibe una mezcla de señales que puede parecer completa, pero no necesariamente útil.
Por eso, construir agentes no consiste solo en conectar un modelo a documentos y APIs. También exige definir qué información se recupera, cómo se filtra, qué se recuerda, qué se olvida y qué reglas tienen prioridad. En una formación sobre desarrollo de agentes con OpenAI este criterio es clave: el agente no mejora solo por tener más capacidades, sino por usarlas con contexto suficiente, ordenado y verificable.
RAG puede mejorar mucho una aplicación de IA generativa porque permite que el modelo consulte información externa antes de responder. El problema aparece cuando se asume que recuperar documentos equivale a aportar buen contexto. No todo fragmento parecido a la consulta ayuda a resolver la tarea.
Un sistema RAG mal diseñado puede recuperar contenido duplicado, versiones antiguas, fragmentos demasiado largos o piezas que contienen palabras similares pero no responden a la intención real. En esos casos, el agente recibe información aparentemente relevante, pero la respuesta termina siendo vaga, superficial o parcialmente incorrecta.
La calidad del RAG depende de decisiones muy concretas: cómo se trocean los documentos, qué metadatos se conservan, cómo se ordenan los resultados y cómo se evalúa la utilidad de cada fragmento. Un agente que debe resolver una incidencia no necesita diez textos parecidos; necesita el procedimiento vigente, la excepción aplicable y el dato que conecta con el caso actual.
La memoria es útil cuando permite mantener continuidad entre interacciones, recordar preferencias, conservar decisiones previas o evitar que el usuario repita información. Pero también puede degradar la respuesta si acumula datos sin jerarquía. Un agente que recuerda demasiado puede arrastrar contexto antiguo y aplicar supuestos que ya no son válidos.
El riesgo aumenta cuando la memoria mezcla hechos, preferencias, estados temporales y conclusiones generadas por el propio modelo. No es lo mismo recordar que un usuario trabaja en un proyecto concreto que asumir que una prioridad anterior sigue vigente. La memoria necesita criterios de actualización, caducidad y relevancia.
Una buena práctica es separar memoria estable, memoria temporal y contexto de tarea. La memoria estable recoge información que cambia poco. La temporal ayuda durante una sesión o proceso. El contexto de tarea se construye para una acción concreta y debería desaparecer cuando deja de ser útil. Sin esta separación, el agente puede responder con seguridad sobre una base equivocada.
Los agentes suelen combinar instrucciones del sistema, reglas de negocio, mensajes del usuario y descripciones de herramientas. Si esas instrucciones no tienen prioridades claras, el comportamiento se vuelve inconsistente. El modelo puede intentar obedecer todo a la vez y terminar dando una respuesta que no satisface bien ninguna regla.
También hay fallos en la integración de herramientas. Una herramienta puede estar bien construida técnicamente, pero mal descrita para el agente. Si no queda claro cuándo usarla, qué parámetros necesita o cómo interpretar su salida, el agente puede llamarla en momentos incorrectos o ignorarla cuando sería necesaria.
Aquí el context engineering se acerca mucho al diseño de producto y arquitectura. Hay que definir qué puede hacer el agente, con qué información, bajo qué límites y con qué evidencias. Sin esa claridad, el problema no es que el modelo no sepa razonar, sino que el sistema le entrega señales incompatibles para una misma tarea.
Diseñar buen contexto no consiste en llenar la ventana del modelo, sino en preparar la información justa para que el agente actúe bien en cada paso. Un agente de IA necesita saber qué tarea está resolviendo, qué restricciones aplican, qué datos son fiables, qué herramientas puede usar y qué información debe ignorar.
Esto obliga a tratar el context engineering como una práctica de diseño continuo. No basta con configurar RAG, añadir memoria o escribir instrucciones largas. Hay que observar qué contexto usa realmente el agente, cómo lo interpreta el LLM y qué señales están provocando respuestas pobres, incompletas o contradictorias.
El primer criterio es seleccionar. Antes de añadir contexto, conviene preguntarse qué información necesita el agente para resolver la tarea actual. Un asistente que analiza un contrato no necesita toda la base documental de la empresa, sino cláusulas relevantes, versión vigente, criterios legales aplicables y objetivo de la revisión.
El segundo criterio es ordenar. Los modelos no procesan el contexto como una base de datos perfecta. La posición, la claridad y la proximidad entre instrucciones y datos influyen en la respuesta. Por eso, las instrucciones críticas, las restricciones y los datos recuperados deben aparecer con una jerarquía explícita, no mezclados en un bloque largo.
El tercer criterio es priorizar. Si hay información de distinta calidad, fecha o autoridad, el agente necesita saber qué pesa más. Un procedimiento vigente debe prevalecer sobre una conversación antigua. Una regla del sistema debe estar por encima de una preferencia ocasional del usuario. Sin prioridad, el contexto puede parecer completo y seguir siendo ambiguo para el LLM.
Sin trazabilidad, depurar un agente es casi imposible. Si una respuesta es pobre, el equipo necesita saber qué documentos recuperó el RAG, qué memoria estaba activa, qué herramientas se llamaron, qué instrucciones estaban presentes y qué fragmentos influyeron en la salida final. De lo contrario, cada error se interpreta como un fallo genérico del modelo.
La trazabilidad no tiene que ser compleja al principio. Puede empezar registrando fuentes recuperadas, puntuaciones de relevancia, versión de documentos, llamadas a herramientas y resumen del contexto enviado al modelo. Esto permite distinguir si el problema fue una mala recuperación, un exceso de ruido, una instrucción contradictoria o una herramienta mal usada.
También ayuda a evaluar mejoras. Si después de ajustar el troceado de documentos, reducir historial o limpiar memoria las respuestas mejoran, el equipo puede atribuir el cambio a una decisión concreta. El context engineering gana valor cuando deja de ser intuición y se convierte en evidencia operativa para mejorar agentes de IA.
Una forma práctica de empezar es clasificar las respuestas pobres según el tipo de fallo de contexto. Esto evita corregir todo a la vez y ayuda a decidir si conviene tocar RAG, memoria, instrucciones, herramientas o evaluación.
| Síntoma del agente | Posible fallo de contexto | Acción recomendada |
|---|---|---|
| Respuesta vaga | El contexto contiene información demasiado general o poco conectada con la tarea | Recuperar fragmentos más específicos y añadir criterios de respuesta |
| Respuesta contradictoria | Conviven instrucciones, documentos o memorias incompatibles | Definir prioridades y retirar versiones obsoletas |
| Alucinación | Falta información crítica o el agente intenta completar huecos sin evidencia | Forzar citas, límites de respuesta y reconocimiento de incertidumbre |
| Uso incorrecto de herramienta | La herramienta está mal descrita o no queda claro cuándo usarla | Mejorar descripción, parámetros, ejemplos y condiciones de uso |
| Pérdida de objetivo | Hay demasiado historial o contexto secundario compitiendo con la tarea actual | Resumir, recortar y separar contexto de sesión y contexto de tarea |
| Respuesta desactualizada | El RAG recupera contenido antiguo o la memoria conserva supuestos caducados | Usar metadatos, fechas, caducidad y reglas de actualización |
Esta matriz no sustituye una evaluación técnica completa, pero ayuda a ordenar el diagnóstico. Un agente que alucina no necesita la misma corrección que uno que responde de forma vaga. En el primer caso puede faltar evidencia; en el segundo puede sobrar contexto poco útil.
El objetivo es que cada mejora tenga una hipótesis clara. Si el problema es recuperación, se ajusta RAG. Si el problema es memoria, se revisa qué se conserva y durante cuánto tiempo. Si el problema es contradicción, se limpian prioridades. Así, el context engineering deja de ser una etiqueta nueva y se convierte en una práctica concreta para construir agentes de IA más fiables, evaluables y útiles.
El context engineering se está convirtiendo en una pieza crítica porque los agentes de IA ya no dependen solo de un buen prompt. Dependen de cómo se construye el contexto que llega al modelo en cada paso: instrucciones, memoria, documentos recuperados, herramientas, historial y restricciones. Si esa combinación está mal diseñada, el resultado puede ser pobre aunque el LLM sea potente.
La idea clave es sencilla, pero exigente: más contexto no siempre significa mejor contexto. Un agente puede fallar por no tener información suficiente, pero también por recibir demasiada información irrelevante, datos obsoletos, instrucciones mezcladas o memorias que ya no aplican. En proyectos reales, filtrar, ordenar y priorizar contexto puede mejorar más que cambiar de modelo.
Para equipos técnicos, producto e innovación, el reto está en tratar el contexto como una decisión de arquitectura. RAG, memoria y herramientas deben diseñarse de forma coordinada, con trazabilidad y evaluación. Solo así es posible saber si una respuesta pobre viene de una mala recuperación, una instrucción contradictoria, una herramienta mal integrada o un exceso de ruido. El context engineering aporta precisamente ese control: convertir el contexto en una capa gestionable, medible y optimizable dentro de los agentes de IA.
También te puede interesar
Personalizar un modelo de lenguaje grande (LLM) con datos propios se ha convertido en una prioridad para las empresas que buscan aprovechar...

Integrar un LLM en una aplicación Java puede parecer rápido cuando el objetivo es sacar un prototipo en poco tiempo. El problema...

Esta formación aborda el uso de agentes de IA para automatizar y orquestar tareas en aplicaciones. Se exploran...

Vamos a aprender a construir un chatbot con sistema RAG desde 0, sus componentes, las tecnologías más usadas...
