La ingeniería de contexto representa un cambio significativo en la inteligencia artificial, alejándose de los prompts individuales y avanzando hacia la construcción de ecosistemas de información integrales alrededor de los modelos de lenguaje grandes (LLM). A medida que las aplicaciones de IA evolucionan desde chatbots básicos hasta agentes sofisticados capaces de ejecutar tareas complejas de varios pasos, la calidad de los resultados del modelo depende cada vez más de la información proporcionada. Por lo tanto, la ingeniería de contexto se ha vuelto esencial para crear aplicaciones de IA confiables y potentes que ofrezcan experiencias de usuario impresionantes.
El cambio de paradigma: de los prompts a los sistemas
El enfoque está cambiando de la elaboración de prompts individuales a la construcción sistemática de un ecosistema de información completo alrededor de los modelos de lenguaje grandes (LLM). A medida que las aplicaciones de IA evolucionan desde simples chatbots hasta agentes inteligentes capaces de realizar tareas complejas de varios pasos, la calidad del resultado del modelo se vuelve cada vez más dependiente de la calidad de la información proporcionada. Los líderes de la industria y los investigadores de IA reconocen la importancia de este cambio, enfatizando la necesidad de proporcionar a los LLM un contexto integral para resolver tareas de manera efectiva. La ingeniería de contexto implica el arte y la ciencia de llenar la ventana de contexto con la información correcta, lo que permite a los modelos tomar decisiones precisas.
El argumento central es que el fracaso de la mayoría de los agentes inteligentes proviene de la deficiencia de contexto más que del fallo del modelo. Esta afirmación redefine el desafío central de la ingeniería de IA, desplazando la atención del ajuste del modelo al desarrollo de sistemas de soporte de información. Comprender y dominar la ingeniería de contexto se ha convertido en un requisito previo para construir aplicaciones de IA confiables y robustas.
Definiendo la ingeniería de contexto
La ingeniería de contexto no es solo una versión mejorada de la ingeniería de prompts; es una disciplina de ingeniería única a nivel de sistema que se centra en la creación de un sistema de entrega de información dinámico, en lugar de simplemente optimizar la entrada de texto.
La ingeniería de contexto se puede definir como una disciplina de ingeniería centrada en el diseño y la construcción de sistemas dinámicos que proporcionan a los LLM la información y las herramientas necesarias para completar las tareas correctamente, en el formato correcto y en el momento correcto.
Componentes clave:
- "Diseñar y construir sistemas dinámicos": Esto enfatiza que la ingeniería de contexto es una actividad de ingeniería, que se centra en la arquitectura del sistema en lugar de solo la redacción. El contexto es la salida de un sistema que se ejecuta antes de la llamada principal al LLM. Los ingenieros deben construir canales de datos, módulos de memoria y mecanismos de recuperación de información para preparar la memoria de trabajo del LLM.
- "Información y herramientas correctas": Abarca hechos, datos, contenido de la base de conocimientos (a través de RAG) y preferencias del usuario. Las herramientas se refieren a capacidades como interfaces API, funciones o consultas de bases de datos. Proporcionar tanto conocimiento como capacidades es fundamental para tareas complejas.
- "Formato correcto, en el momento correcto": Destaca la importancia de la presentación y el momento de la información. Un resumen conciso suele ser mejor que los datos brutos, y un esquema de herramientas claro es más eficaz que las instrucciones vagas. Proporcionar contexto bajo demanda es crucial para evitar distraer al modelo con información irrelevante.
- "Completar la tarea de manera confiable": Este es el objetivo final de la ingeniería de contexto. Transforma las aplicaciones de IA en sistemas confiables que pueden producir constantemente resultados de alta calidad. Con una gestión precisa del contexto, los resultados se vuelven más consistentes, reducen las alucinaciones y respaldan flujos de trabajo de agentes inteligentes complejos y de ciclo largo.
La evolución de la ingeniería de prompts a la ingeniería de contexto
Si bien tanto la ingeniería de contexto como la ingeniería de prompts tienen como objetivo optimizar la salida del LLM, difieren en alcance, naturaleza y objetivos. Una comparación a nivel de sistema destaca estas diferencias:
- Alcance: La ingeniería de prompts se centra en la optimización de interacciones únicas o cadenas de texto, mientras que la ingeniería de contexto se centra en todo el ecosistema de información, cubriendo el ciclo de vida completo de la tarea.
- Dinamismo: Los prompts suelen ser estáticos, mientras que el contexto se genera dinámicamente en función de la tarea y evoluciona durante la interacción.
- Composición de la entrada: Los ingenieros de prompts construyen entradas en torno a las consultas del usuario, mientras que los ingenieros de contexto ven las consultas del usuario como solo una parte de un "paquete de contexto" más grande que incluye instrucciones del sistema, documentos recuperados, salidas de herramientas e historial de conversaciones.
- Analogía: Si los prompts son como una sola línea en una obra de teatro, el contexto es todo el conjunto, la historia de fondo y el guion de la película, que juntos proporcionan profundidad y significado.
La siguiente tabla compara aún más los dos:
Ingeniería de Prompts vs. Ingeniería de Contexto
Dimensión | Ingeniería de Prompts | Ingeniería de Contexto |
---|---|---|
Alcance | Interacción única, cadena de entrada única | Flujo de trabajo completo del agente inteligente, ecosistema de información completo |
Naturaleza | Estático o semiestático, basado en plantillas | Dinámico, ensamblado en tiempo real, evoluciona con la tarea |
Objetivo | Guiar al LLM para dar una respuesta de alta calidad | Empoderar al LLM para completar de manera confiable tareas complejas continuamente |
Producto principal | Plantillas de prompts optimizadas, conjuntos de instrucciones | Canales de datos, sistemas RAG, módulos de memoria, administradores de estado |
Habilidades principales | Lingüística, razonamiento lógico, diseño de instrucciones | Arquitectura de sistemas, ingeniería de datos, desarrollo de software |
Analogía principal | Hacer una pregunta precisa | Construir una biblioteca integral para un investigador |
Redefiniendo la ingeniería de IA
Este cambio de la ingeniería de prompts a la ingeniería de contexto remodela el papel de los ingenieros de IA. La ingeniería de prompts se centra en perfeccionar las cadenas de entrada, lo que requiere habilidades en lingüística y lógica. Sin embargo, cuando la tarea se convierte en la construcción de sistemas que ensamblan dinámicamente estas entradas desde bases de datos, API y memoria, las habilidades centrales cambian a la ingeniería de software y la arquitectura de sistemas.
Frameworks como LangChain y LlamaIndex son populares porque admiten la ingeniería de contexto, ofreciendo patrones arquitectónicos para la construcción de sistemas dinámicos de ensamblaje de contexto, como Chains, Graphs y Agents.
El auge de la ingeniería de contexto marca un cambio en el desarrollo de la IA de un campo de nicho centrado en el modelo a una disciplina de ingeniería de software convencional. El principal desafío no es solo el modelo en sí, sino toda la pila de aplicaciones construida a su alrededor.
Contexto: disección y principios
Esta sección detalla los componentes del "contexto" y describe los principios para una gestión eficaz.
Deconstruyendo la ventana de contexto
La ventana de contexto es la información total que el modelo puede "ver" o "recordar" al generar una respuesta. Un "paquete de contexto" completo es la suma de toda la información proporcionada.
- Instrucciones/Prompt del sistema: Esta capa base define el comportamiento del modelo, estableciendo su rol, estilo, reglas, limitaciones y objetivos.
- Prompt del usuario: La pregunta directa o la instrucción de la tarea que activa el agente inteligente.
- Historial de conversación/Memoria a corto plazo: Los intercambios anteriores proporcionan contexto directo, administrado a través de la poda o la resumación debido a las limitaciones de la ventana de contexto.
- Memoria a largo plazo: Una base de conocimientos persistente que registra la información aprendida de las interacciones, como las preferencias del usuario, los resúmenes de proyectos o los hechos que se le indicaron explícitamente recordar.
- Información recuperada/RAG: Para superar el corte de conocimiento y garantizar respuestas basadas en hechos, el sistema recupera dinámicamente información relevante de fuentes de conocimiento externas.
- Herramientas disponibles: Define los esquemas y las descripciones de las funciones invocables o las herramientas integradas, lo que le da al modelo el poder de actuar, no solo de saber.
- Salidas de herramientas: Los resultados de las llamadas de herramientas deben volver a inyectarse en el contexto para que el modelo los utilice en el razonamiento y las acciones posteriores.
- Esquema de salida estructurada: Define el formato de salida esperado (como el esquema JSON) para guiar los resultados estructurados y predecibles.
El framework "LLM como sistema operativo"
Esta analogía proporciona un framework teórico sólido para comprender y practicar la gestión del contexto.
LLM como CPU, ventana de contexto como RAM: Esta analogía posiciona la ventana de contexto como un recurso limitado y valioso. La ingeniería de contexto es como la gestión del sistema operativo, cargando eficientemente la información correcta en el momento correcto en la memoria de trabajo.
Contexto del kernel vs. Contexto del usuario: Este framework divide el contexto en dos capas; similar al espacio del kernel y al espacio del usuario.
- Contexto del kernel: Representa el estado administrado, variable y persistente del agente inteligente. Incluye bloques de memoria centrales y sistemas de archivos que el LLM puede observar, pero solo modificar a través de "llamadas al sistema" controladas.
- Contexto del usuario: Representa el "espacio del usuario" o el búfer de mensajes, donde se producen las interacciones dinámicas. Incluye mensajes de usuario, respuestas del asistente y llamadas a herramientas de "programa de usuario" no privilegiadas.
Llamadas al sistema y herramientas personalizadas: Esta distinción aclara cómo el agente interactúa con su estado interno y el mundo externo. Las llamadas al sistema modifican el contexto del kernel, alterando el estado persistente del agente, mientras que las herramientas personalizadas traen información externa al contexto del usuario.
Principios rectores de la ingeniería de contexto
La ingeniería de contexto eficaz sigue los principios centrales, derivados de los profesionales, para construir sistemas de agentes inteligentes confiables.
- Contexto continuo e integral: También conocido como "Ver todo", este principio requiere que el agente tenga acceso a su historial operativo completo, incluidas las interacciones anteriores del usuario, las salidas de las llamadas de herramientas, los procesos de pensamiento internos y los resultados intermedios.
- Evitar el paralelismo no coordinado: Permitir que varios subagentes o subtareas trabajen en paralelo sin un contexto compartido y continuamente actualizado casi inevitablemente conduce a inconsistencias en la salida, objetivos contradictorios y fallas.
- Contexto dinámico y en evolución: El contexto no debe ser un bloque de información estático. Debe ensamblarse y evolucionar dinámicamente en función del progreso de la tarea, adquiriendo o actualizando información en tiempo de ejecución.
- Cobertura contextual completa: El modelo debe recibir toda la información que pueda necesitar, no solo la última pregunta del usuario. El paquete de entrada completo (instrucciones, datos, historial, etc.) debe diseñarse cuidadosamente.
Estrategias de gestión de contexto:
Escritura: persistir el contexto:
Esto implica almacenar información más allá de la ventana de contexto inmediata para su uso futuro, construyendo las capacidades de memoria del agente.
- Blocs de notas: Se utilizan para almacenar la memoria a corto plazo dentro de la sesión.
- Sistemas de memoria: Se utilizan para construir la memoria a largo plazo entre sesiones.
Selección: recuperación de contexto:
Esto implica extraer la información correcta del almacenamiento externo a la ventana de contexto en el momento correcto.
- Seleccionar de la memoria/blocs de notas: El agente debe poder consultar eficazmente su memoria persistente y sus blocs de notas cuando necesite recordar conocimientos pasados.
- Seleccionar de las herramientas: Cuando el agente tiene muchas herramientas disponibles, es eficiente aplicar técnicas RAG a las descripciones de las herramientas mismas, recuperando y proporcionando dinámicamente solo las herramientas más relevantes en función de la tarea actual.
- Seleccionar del conocimiento: Esta es la función principal de la generación aumentada por recuperación (RAG), la adquisición dinámica de información fáctica de bases de conocimiento externas para mejorar las capacidades de respuesta del modelo.
Compresión: optimización del contexto:
Esto implica reducir el número de tokens utilizados en el contexto al tiempo que se conserva la información central.
- Resumación: Utilizar el LLM para resumir historiales de conversación, documentos o salidas de herramientas extensos, extrayendo información clave.
- Recorte: Utilizar reglas heurísticas para reducir el contexto, como simplemente eliminar las rondas de diálogo más tempranas cuando el historial de conversación es demasiado largo.
Aislamiento: partición del contexto:
Esto implica descomponer el contexto en diferentes partespara mejorar el enfoque del modelo y gestionar la complejidad de la tarea.
- Sistemas multiagente: Las tareas grandes se pueden dividir entre múltiples subagentes, cada uno con su propio contexto, herramientas e instrucciones dedicadas y aisladas.
- Entornos de sandbox: Las operaciones que consumen una gran cantidad de tokens se pueden ejecutar en un entorno aislado, devolviendo solo los resultados clave finales al contexto del LLM principal.
Arquitecturas de memoria avanzadas
La memoria es clave para construir agentes inteligentes que puedan aprender y adaptarse. Los componentes clave incluyen la memoria a corto plazo a través de búferes de historial de diálogo y blocs de notas, y la memoria a largo plazo para la persistencia y la personalización.
Técnicas de implementación:
- Generación automatizada de memoria: El sistema puede generar y almacenar automáticamente recuerdos basados en las interacciones del usuario.
- Mecanismos de reflexión: El agente puede autorreflexionar sobre su comportamiento y resultados después de completar las tareas, sintetizando las lecciones aprendidas en nuevos recuerdos.
- Resumación de diálogo: Resumir regularmente las conversaciones pasadas y almacenar los resúmenes como parte de la memoria a largo plazo.
Memoria estructurada (gráficos de conocimiento temporal): Una arquitectura de memoria más avanzada que almacena no solo hechos, sino también relaciones entre hechos y marcas de tiempo para cada pieza de información.
Generación aumentada por recuperación (RAG): la piedra angular de la ingeniería de contexto
RAG es una técnica central para "seleccionar" el conocimiento externo en la ingeniería de contexto, conectando los LLM a bases de conocimiento externas. Un sistema RAG típico tiene tres etapas:
- Indexación: Los documentos se dividen en fragmentos semánticos, luego se convierten en vectores de alta dimensión utilizando un modelo de incrustación. Estos vectores y textos de origen se almacenan en la base de datos vectorial.
- Recuperación: El usuario convierte una consulta en un vector con el mismo modelo de incrustación y busca en la base de datos vectorial otros vectores cercanos con consultas similares.
- Generación: El sistema combina la consulta original y los fragmentos de texto relacionados en un prompt, luego lo envía al LLM para generar una respuesta adecuada.
Estrategias avanzadas de recuperación y clasificación
La arquitectura RAG básica a menudo necesita estrategias más complejas para mejorar la calidad de la recuperación en el mundo real. Combinar la búsqueda semántica con los índices de palabras clave y la clasificación es crucial para mejorar la calidad de la búsqueda. La recuperación contextual de información de Anthropic mejorará el contexto de los LLM.
- Búsqueda híbrida: Combina la búsqueda semántica (basada en vectores) y la búsqueda de palabras clave para aprovechar las fortalezas complementarias.
- Recuperación contextual: Utiliza un LLM para generar un breve resumen del contexto de cada bloque de texto.
- Reclasificación: Agrega un paso de reclasificación, utilizando un modelo más sólido para volver a ordenar los resultados según la relevancia.
RAG vs. ajuste fino: framework de decisión estratégica
Elegir entre RAG y el ajuste fino es una decisión clave. La elección depende de los requisitos del proyecto.
Ventajas de RAG:
- Adecuado para la integración del conocimiento en tiempo real
- Reduce las alucinaciones al proporcionar hechos verificables
- Permite a las empresas mantener los datos de propiedad dentro de bases de datos internas seguras
Ventajas del ajuste fino:
- Lo mejor para enseñar a un modelo un nuevo comportamiento, estilo de habla o terminología especializada
- Puede alinear la salida del modelo con la imagen de marca de la organización
Enfoques híbridos: Para obtener el mejor rendimiento con los modelos, debe utilizar tanto el ajuste fino para el rendimiento como RAG para la precisión.
Optimización y filtrado del contexto
Incluso mediante el uso de potentes mecanismos de recuperación, la gestión de la ventana de contexto y la evitación de fallos comunes, seguirá encontrando errores.
Modos de fallo comunes:
- Envenenamiento del contexto: cuando se presenta un error aparentemente fáctico, corromperá todo el sistema a partir de ese momento.
- Distracción del contexto: Los modelos se distraen cuando se les presenta información irrelevante.
- Confusión del contexto: La información del contexto puede ser abrumadora para el modelo, lo que lo aleja de la respuesta correcta.
- Conflicto de contexto: Los modelos se confunden con la información conflictiva y pueden producir una respuesta contradictoria.
Soluciones:
Los ingenieros deben adoptar técnicas de filtrado para mitigar estos fallos. Asegurarse de que la memoria de trabajo del modelo esté llena de información altamente relevante y completamente optimizada se vuelve esencial para la práctica y la teoría.
Ingeniería de contexto en la práctica: estudios de caso
Analizar diferentes aplicaciones proporciona una comprensión más profunda del valor y la implementación de la ingeniería de contexto.
Asistentes de programación de IA
- El problema: Los primeros intentos de programación de IA a menudo eran caóticos, basándose en prompts vagos con poca comprensión de la base de código más grande.
- La solución: Trate la documentación del proyecto, las pautas de código, los patrones de diseño y los requisitos como cualquier recurso de ingeniería.
Búsqueda empresarial y gestión del conocimiento
- El problema: Los motores de búsqueda empresarial tradicionales se basan en la coincidencia de palabras clave, sin comprender la intención del usuario, el rol laboral o el motivo de su búsqueda.
- La solución: Construya sistemas de búsqueda inteligentes utilizando el contexto para comprender cada búsqueda.
Atención al cliente automatizada
- El problema: Los LLM generales no conocen los detalles del producto, las políticas de devolución o el historial del cliente, lo que genera respuestas inexactas o inútiles.
- La solución: Utilice chatbots basados en RAG, sistemas que recuperan información de la base de conocimientos de la empresa, para garantizar una asistencia precisa, personalizada y actualizada.
Motores de recomendación personalizados
- El problema: Los sistemas de recomendación tradicionales tienen dificultades para comprender la intención inmediata y específica de los usuarios, lo que resulta en recomendaciones genéricas.
- La solución: La ingeniería de contexto utiliza RAG para hacer que la experiencia sea más conversacional.
Mitigando los defectos fundamentales de los modelos de lenguaje grandes
La ingeniería de contexto es un medio clave para abordar dos deficiencias fundamentales del LLM: las alucinaciones y el corte de conocimiento.
Contrarrestando las alucinaciones
El problema: Cuando los LLM son inciertos o carecen del conocimiento relevante, tienden a fabricar información plausible pero falsa.
La solución: La ingeniería de contexto, especialmente RAG, son las estrategias más efectivas.
- Proporcione una base fáctica: Al proporcionar documentos verificables de una fuente confiable durante la respuesta, las alucinaciones se pueden evitar de manera efectiva.
- Honestidad "No lo sé.": Para ser transparente, indique a los modelos que muestren "No lo sé" cuando no haya información disponible.