Inicio / Artículos / Ingeniería de contexto para agentes de IA: seleccionando lo que ve el modelo

Ingeniería de contexto para agentes de IA: seleccionando lo que ve el modelo

Por qué los agentes degradan su rendimiento a medida que aumenta su contexto, en qué se diferencia la ingeniería de contexto de la redacción de instrucciones, y un proceso sencillo para decidir qué verá cada llamada al modelo.

1782 palabras

Un agente de IA que rinde bien en sus primeros pasos y luego comienza a ignorar instrucciones, a repetir tareas o a confiar en datos obsoletos generalmente no tiene un problema de redacción. Tiene un problema de contexto: el modelo ve demasiado, cosas incorrectas o las cosas correctas en el lugar equivocado. La ingeniería de contexto es la disciplina que consiste en decidir con precisión qué recibe el modelo justo antes de que tenga que razonar, es decir, no solo la solicitud sino todo el conjunto de instrucciones, historial, datos recuperados y definiciones de herramientas. Esta guía explica por qué ese conjunto es aún más importante a medida que los agentes crecen, los cuatro componentes que puedes controlar, un pipeline de ensamblaje mínimo y los patrones de fallo a los que debes prestar atención.

La idea central: un fragmento pequeño y relevante

El objetivo nunca es darle al modelo todo lo que pudiera ayudarlo de alguna manera. Se trata de proporcionarle únicamente esa pequeña porción de información que realmente le permite responder correctamente, dejando fuera el resto.

Una analogía humana ilustra este punto. Si pides a un ingeniero nuevo que corrija un error en un códigobase de un millón de líneas diciéndole “lee el código y encuéntralo”, se sentirá abrumado; el archivo relevante está perdido entre miles. Pero si le dices al mismo ingeniero “el problema probablemente esté en el módulo de pagos, estos tres archivos cambiaron la semana pasada, y aquí está lo que intentó la persona anterior”, la solución podría encontrarse en cuestión de minutos. Nada ha cambiado en el ingeniero; solo la información con la que comenzó sí lo hizo.

Los modelos se comportan de la misma manera. La ingeniería de contexto consiste en entregarle esos tres archivos en lugar de todo el repositorio.

Por qué las palabras solas ya no son suficientes

Los primeros consejos sobre el trabajo con modelos de lenguaje se centraban en la redacción: cómo formular instrucciones y qué fórmulas producían mejores respuestas. Eso es ingeniería de prompts, y sigue siendo importante incluso para una sola pregunta.

No obstante, un agente no responde a una única pregunta. Ejecuta un bucle: lee algo, llama a una herramienta, recibe un resultado, elige la siguiente acción y repite el proceso, a veces decenas de veces. Cada iteración añade más información a lo que el modelo está procesando. Con el tiempo, el contexto acumulado se vuelve tan grande que se pasan por alto detalles importantes, al igual que alguien que ha asistido a reuniones todo el día y ya no puede recordar lo que se decidió en la primera.

Anthropic considera que la ingeniería de contexto consiste en encontrar el mejor conjunto posible de información para el modelo en cada momento concreto, en lugar de elaborar una sola instrucción adecuada. Eso refleja el cambio: la ingeniería de prompts se centra en las palabras; la ingeniería de contexto abarca todo lo que está presente cuando el modelo responde.

Ingeniería de prompts versus ingeniería de contexto

Ambas se superponen pero difieren en su alcance, uso típico y modo de fallo:

  • Alcance. La ingeniería de prompts da forma a la redacción de una sola instrucción. La ingeniería de contexto regula toda la entrada: instrucciones, conversaciones anteriores, hechos recuperados y herramientas disponibles.
  • Dónde brilla. La ingeniería de prompts es adecuada para preguntas y tareas puntuales. La ingeniería de contexto es crucial en los agentes multietapa, donde lo que se transmite entre pasos es tan importante como la solicitud actual.
  • Errore típico. En la ingeniería de prompts, se trata de instrucciones ambiguas o confusas. En la ingeniería de contexto, se produce al proporcionar demasiada información o información incorrecta, aun cuando la instrucción sea perfectamente clara.
  • Solución típica. Un prompt débil se soluciona reformulándolo. Un problema de contexto no se resuelve con la reformulación; hay que cambiar lo que se obtiene, lo que se mantiene y lo que se descarta.
  • Un diagnóstico rápido: si su solución consiste en cambiar palabras, está realizando ingeniería de prompts. Si su solución modifica la información que el modelo recibe en primer lugar, está realizando ingeniería de contexto. Para conocer una forma estructurada de determinar a qué capa pertenece un fallo del agente, consulte debugging AI agents by layer.

    Los cuatro componentes que usted gestiona

    El contexto de cada agente se compone de cuatro fuentes. Cada una tiene su propio modo de fallar.

    Instrucciones: la descripción del trabajo

    Se trata del prompt del sistema, que describe qué debe hacer el agente y cómo. Si es demasiado rígido, el agente no podrá manejar nada fuera del script. Si es demasiado flexible, el agente improvisará libremente. Busque orientaciones lo suficientemente específicas como para dar forma al comportamiento, sin intentar enumerar todas las situaciones de antemano.

    Recuperación: el asistente de investigación

    La recuperación obtiene información externa mediante la búsqueda en documentos, consultas a una base de datos o lectura de archivos. Una mala recuperación es la causa principal por la cual los sistemas de IA afirman cosas incorrectas con certeza. A menudo el modelo no está inventando nada; se le proporcionaron hechos incorrectos o irrelevantes y razonablemente confió en ellos. Mejorar lo que se recupera con frecuencia contribuye más a la precisión que cualquier cambio en el prompt.

    Memoria: el cuaderno de notas

    La memoria abarca lo que el agente retiene, tanto dentro de una misma conversación como a lo largo de varias sesiones. Sin un mecanismo para resumir y eliminar material antiguo, la memoria deja de ser útil. Crecerá constantemente hasta que la mayor parte sea ruido que compite con la información relevante en ese momento.

    Herramientas: el conjunto de herramientas

    Las herramientas definen las acciones que puede realizar el agente, como búsquedas en la web, ejecución de código o envío de correos electrónicos. El nombre y la descripción de cada herramienta también aportan contexto. Un conjunto de diez herramientas superpuestas y casi idénticas confunde a un modelo de la misma manera en que diez destornilladores indistinguibles confundirían a un empleado recién contratado. Menos herramientas con propósitos claramente definidos facilitan y reducen el costo de la selección.

    Un pipeline mínimo para la generación de contexto

    El siguiente pseudocódigo muestra cómo se combinan los cuatro componentes para una llamada al modelo. Las funciones auxiliares son marcadores de posición para cualquier método de búsqueda, clasificación y resumen que se utilice, pero la estructura refleja cómo abordan el problema los sistemas reales.

    Funciona en cuatro etapas. Primero realiza una búsqueda amplia, aceptando cierto ruido, con un límite generoso de 50 candidatos. Segundo, clasifica esos candidatos y solo conserva los cinco mejores. Tercero, comprime el historial de la conversación en un resumen con un límite de 500 unidades en lugar de reproducirlo completo. Finalmente, organiza los elementos de forma intencionada, poniendo primero las instrucciones y la pregunta actual al final, y ajusta el resultado según el presupuesto de tokens.

    def get_context_for_the_model(question, past_conversation, budget):
        # Step 1: Cast a wide net — search broadly, don't worry about noise yet
        possible_facts = search_everywhere(question, limit=50)
        # Step 2: Narrow it down - keep only the genuinely relevant ones
        best_facts = keep_most_relevant(possible_facts, top=5)
        # Step 3: Summarize old conversation instead of keeping all of it
        short_memory = summarize(past_conversation, max_length=500)
        # Step 4: Put the most important things first and last, not buried in the middle
        final_context = [
            job_description,      # instructions
            short_memory,         # memory
            *best_facts,          # retrieval
            question,             # what's being asked right now, last
        ]
        return trim_to_fit(final_context, budget)
    

    Hay dos hábitos en este esquema que vale la pena adoptar.

    Busca ampliamente y luego filtra de forma estricta. Una búsqueda amplia reduce la posibilidad de pasar por alto el documento relevante; una clasificación agresiva mantiene el contexto final reducido. Hacer solo lo primero sobrecarga al modelo, mientras que hacer solo lo segundo implica el riesgo de no encontrar nunca el material adecuado.

    Ponga lo importante en los bordes. Coloque el contenido más relevante al principio o al final de la entrada en lugar de en el medio. Esto no es una preferencia estilística. Las investigaciones sobre entradas largas han observado repetidamente que los modelos prestan menos atención de forma fiable a la información ubicada en el centro de un contexto extenso, un efecto que a menudo se denomina “perdido en el medio”. La intensidad de este efecto varía según el modelo, por lo que pruebe con su propia configuración; sin embargo, ordenar los elementos es una solución sencilla en cualquier caso.

    De la misma lógica se derivan algunos ajustes prácticos. Decida de antemano cómo se distribuirá el presupuesto entre los componentes, para que un gran número de resultados de búsqueda no suplante silenciosamente las instrucciones. Al reducir el contenido, elimine primero los elementos recuperados menos relevantes antes de modificar las instrucciones o la pregunta actual. Además, registre el contexto final compilado para cada llamada; cuando un agente se comporta mal, ese registro suele indicar el motivo.

    Qué sucede cuando el contexto no se selecciona cuidadosamente

    Incluirlo todo por precaución

    Agregar todos los elementos posiblemente relevantes parece una medida responsable, pero tiende a tener efectos negativos. Cuanto más material irrelevante debe procesar el modelo, peor es su capacidad para encontrar ese hecho importante. Es como leer un informe de cien páginas antes de tomar una decisión en cinco minutos.

    Información desactualizada

    Si no hay nada que verifique si el contenido recuperado sigue siendo preciso, el modelo generará una respuesta confiada basada en información que dejó de ser cierta hace meses. Los metadatos de actualidad, las reglas de vencimiento o la revalidación para fuentes sensibles al tiempo son de gran ayuda.

    Ocultar el hecho clave

    Incluso cuando la recuperación encuentra exactamente el dato correcto, colocarlo en medio de un bloque largo aumenta estadísticamente las posibilidades de que se pase por alto. El dato es idéntico; solo cambió su posición, y el resultado empeoró.

    Mucho demasiadas opciones similares

    Si alguien de su equipo no puede determinar con certeza qué herramienta o documento es aplicable en una situación dada, el modelo no rendirá mejor. Consolide las herramientas que se superponen y elimine los documentos casi idénticos antes de que lleguen al contexto.

    Preguntas frecuentes

    ¿Está el engineering de contexto reemplazando al engineering de prompts?

    No. Las instrucciones claras siguen siendo parte del trabajo. La ingeniería de contexto es la tarea más amplia que las rodea: decidir qué más ve el modelo además de la instrucción en sí.

    ¿Por qué más información puede empeorar los resultados?

    La atención es un recurso limitado, tanto para los modelos como para las personas. Cuanto más material tiene que analizar el modelo, mayor es la posibilidad de que pase por alto ese detalle crucial, al igual que una persona tiene dificultades para encontrar una línea importante en un documento largo.

    ¿Resuelve el mayor tamaño de la ventana de contexto el problema?

    Ayuda al ofrecer más espacio, pero no elimina el problema subyacente. La información en la parte media de entradas largas sigue siendo utilizada con menos fiabilidad, y tanto la latencia como el costo aumentan a medida que crece la entrada. Seleccionar cuidadosamente qué información se incluye sigue siendo importante incluso con ventanas muy grandes.

    Puntos clave

    • Trate la entrada del modelo como un artefacto diseñado específicamente para cada llamada, y no como un registro de solo escritura.
    • Gestione deliberadamente los cuatro componentes: instrucciones, recuperación de información, memoria y herramientas; cada uno falla a su manera.
    • Recupere información de forma amplia, ordene los resultados de manera agresiva, resuma la historia y coloque el contenido crítico al principio o al final.
    • Cuando un agente empeora a lo largo de varias etapas, examine qué se le proporcionó antes de reescribir lo que se le indicó.
    • Una ventana más grande brinda espacio, no inmunidad; la disciplina sigue consistiendo en entregar los tres archivos adecuados en lugar de todo el código.

    Lecturas relacionadas