Boletín n.º 2 · Contexto justo
Las ventanas grandes no sustituyen a la recuperación, la inyección de prompt entra por las herramientas, un ensayo sobre contexto y una receta de evals en CI.
BoletínEste número va de una idea: meter en el contexto lo justo. Ni todo lo que cabe, ni cualquier cosa que llegue de fuera.
Lo que ha cambiado
Ventanas de contexto enormes: no sustituyen a la recuperación. Que un documento quepa en la ventana de contexto no significa que el modelo lo use bien. Cada token cuesta, añade latencia y compite por la atención con lo que sí importa. La recuperación sigue siendo la forma de elegir qué entra. Lo tienes en Ventanas de contexto enormes: no sustituyen a la recuperación.
La inyección de prompt llega por las herramientas. Un agente que lee páginas web, correos o tickets mete en su contexto texto que no has escrito tú. Si ese texto trae instrucciones, el modelo puede seguirlas. Trata cada tool_result con contenido externo como no confiable y limita lo que el agente puede hacer después. Más en La inyección de prompt llega por las herramientas y en Prompt injection.
Un ensayo
El contexto es un presupuesto, no un cajón. La tesis: el contexto se gestiona como un presupuesto, con prioridades, y no como un cajón donde se echa todo por si acaso. Si te interesa la parte práctica, sigue con Context engineering.
Una receta: evals de regresión en CI
Cambias un prompt para arreglar un caso y rompes otros tres sin darte cuenta. La solución es ejecutar tu conjunto de evaluación en cada pull request, como cualquier otro test.
import json
from app import clasificar # tu función que llama al modelo
UMBRAL = 0.9 # fíjalo a partir de la tasa que tienes hoy
def cargar_casos(ruta="evals/casos.jsonl"):
with open(ruta, encoding="utf-8") as f:
return [json.loads(linea) for linea in f if linea.strip()]
def test_tasa_de_acierto():
casos = cargar_casos()
fallos = [c["id"] for c in casos if clasificar(c["entrada"]) != c["esperado"]]
tasa = 1 - len(fallos) / len(casos)
assert tasa >= UMBRAL, f"Acierto {tasa:.0%}. Fallan: {fallos}"Mide una tasa sobre todo el conjunto en lugar de exigir que pase cada caso: las respuestas de un modelo varían entre ejecuciones. Lánzalo solo cuando cambien prompts o código del modelo, para no gastar en cada commit. Los pasos completos, con la configuración de GitHub Actions, están en Evals de regresión en CI.
Una lectura recomendada
Effective context engineering for AI agents, de Anthropic (2025). Explica por qué el contexto es un recurso limitado y cómo gestionarlo en agentes que trabajan muchos pasos: compactar, tomar notas fuera del contexto y delegar en subagentes. Encaja con todo lo anterior.
Hasta dentro de dos semanas.
Diego