<!-- Canonical: https://lucioduran.com/es/projects/agent-context-budget
Language: es
Content-SHA256: 9ba890258df148db11e441a47043d19dcfb3f7c72ef33bb102e8c2c145581988
-->

[Proyectos](<https://lucioduran.com/es/projects>) / Agent Context Budget

# Agent Context Budget

Compara la entrada de ventana completa, el truncamiento, la selección y la compresión extractiva, y mide la pérdida de evidencia por separado de la calidad de las respuestas.

Autor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.13 · Licencia: [MIT](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/LICENSE>)

Ficha publicada: 2026-11-09 · Ficha actualizada: 2026-11-09

[Repositorio](<https://github.com/lucioduran/agent-context-budget>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-context-budget/72d150669a9fa4ab85496b4b62440ce95a9be7fe/results/evaluation.json>) · [Release v0.1.1](<https://github.com/lucioduran/agent-context-budget/releases/tag/v0.1.1>)

## Problema y utilidad para agentes

Un registro comprimido puede conservar el identificador de una cita y perder la oración que sustenta su respuesta. El ahorro de tokens por sí solo no demuestra que el contexto sea útil.

Las tareas congeladas con datos tardíos y contradictorios muestran qué políticas pierden evidencia decisiva y si un modelo local pequeño aprovecha lo que queda.

## Arquitectura

1. **Congelar el experimento.** Las doce tareas ficticias originales y el protocolo de evaluación se guardaron en un commit antes de la inferencia.
2. **Aplicar presupuestos exactos de tokens.** Un tokenizador fijado contabiliza el costo adicional del prompt en la entrada cronológica, el truncamiento que conserva el prefijo, la selección de registros y la extracción de oraciones.
3. **Conservar las decisiones originales.** Los prompts, fragmentos, identificadores de fuentes, respuestas, trazas de tokens y observaciones de recursos permiten una reproducción determinista.

- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/docs/design.md>)
- [Protocolo de evaluación congelado](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/docs/protocol.md>)

## Qué demuestra

- Puntuación separada de la evidencia conservada, los identificadores de citas conservados, las citas generadas y las respuestas exactas.
- Pruebas explícitas que desactivan la preferencia por datos recientes o restringen la compresión a la primera oración.
- Inferencia real en CPU con una revisión fijada de FLAN-T5-small y fallos registrados.

## Resultados publicados

Una ejecución local en CPU Xeon realizó 132 llamadas al modelo con once configuraciones y dos hilos de CPU de PyTorch.

Cada configuración evalúa las mismas doce tareas. Los prompts originales contienen entre 142 y 418 tokens; ninguno supera el límite de entrada de 512 tokens del modelo. La evidencia seleccionada y las respuestas generadas se puntúan por separado.

### Evaluación de políticas de contexto

| Política y presupuesto de tokens | Respuestas exactas | Evidencia conservada | Identificadores de citas conservados | Promedio de tokens de entrada |
| --- | --- | --- | --- | --- |
| full:512 | 10/12 | 1.000 | 1.000 | 280.4 |
| head:128 | 0/12 | 0.000 | 0.000 | 128.0 |
| head:256 | 5/12 | 0.500 | 0.500 | 205.2 |
| select:128 | 6/12 | 1.000 | 1.000 | 111.4 |
| select:256 | 3/12 | 1.000 | 1.000 | 195.9 |
| compress:128 | 1/12 | 1.000 | 1.000 | 106.4 |
| compress:256 | 2/12 | 1.000 | 1.000 | 141.4 |
| select\_no\_recency:128 | 6/12 | 1.000 | 1.000 | 112.4 |
| select\_no\_recency:256 | 4/12 | 1.000 | 1.000 | 196.4 |
| compress\_first:128 | 2/12 | 0.667 | 1.000 | 111.7 |
| compress\_first:256 | 3/12 | 0.667 | 1.000 | 157.2 |

Todas las configuraciones produjeron cero citas correctas en la salida y cero coincidencias exactas fundamentadas. La compresión de la primera oración perdió cuatro correcciones, aunque conservó sus identificadores de cita. Conservar la evidencia no garantizó que el modelo la usara correctamente.

## Reproducir

La reproducción portable requiere Python 3.11 o posterior y ningún paquete de modelos en tiempo de ejecución. La inferencia usa el entorno fijado de Intel macOS con Python 3.11.13, PyTorch 2.2.2 y Transformers 4.46.3.

Ejecutá las mediciones en una carpeta de salida nueva y los trabajos pesados de a uno. Dentro de la serie original de proyectos, usá el ejecutor compartido benchmark\_lock.py. Los comandos siguientes usan sintaxis de shell POSIX.

### Verificar la evidencia guardada

```
git clone https://github.com/lucioduran/agent-context-budget.git
cd agent-context-budget
git checkout 72d150669a9fa4ab85496b4b62440ce95a9be7fe
python -m context_budget verify results/evaluation.json
```

### Repetir el experimento local

```
python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-local.lock
python scripts/download_model.py
python -m context_budget evaluate --model-path .cache/model --output build/new-run.json
python -m context_budget verify build/new-run.json
```

## Alcance y límites

- Las pequeñas tareas sintéticas conocidas por el autor, un solo modelo y una observación por celda no demuestran calidad en producción ni un orden estable de latencias.
- La compresión es extractiva, no un resumen aprendido. La selección usa coincidencia léxica y puede introducir ambigüedad cronológica después de ordenar los registros.
- La implementación prueba el manejo del desbordamiento, pero la ejecución registrada no mide prompts más largos que la ventana declarada del modelo.
- La reproducción confía en la tokenización registrada y comprueba consistencia, no autenticidad de la inferencia. No se midieron la energía ni los costos de hardware; no se usó ninguna API paga.

- [Artículo de arquitectura relacionado](<https://lucioduran.com/es/blog/agentic-ai-architecture-patterns>)

## Fuentes y revisión

El informe original identifica la revisión de implementación, la fecha y los hashes de fuentes, tareas y modelo. La documentación de la release se distingue de la ejecución registrada.

- Revisión consultada: [` 72d150669a9fa4ab85496b4b62440ce95a9be7fe `](<https://github.com/lucioduran/agent-context-budget/commit/72d150669a9fa4ab85496b4b62440ce95a9be7fe>)
- Revisión registrada por el experimento: [` 4b38a6150b152758f99e4a12002d9b7e03a5d057 `](<https://github.com/lucioduran/agent-context-budget/commit/4b38a6150b152758f99e4a12002d9b7e03a5d057>)
- Fecha del informe (UTC): 2026-11-09T18:43:55.650481+00:00
- Release publicada: [v0.1.1](<https://github.com/lucioduran/agent-context-budget/releases/tag/v0.1.1>) · 2026-11-09T18:54:01Z

- [README y uso](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/README.md>)
- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/agent-context-budget/72d150669a9fa4ab85496b4b62440ce95a9be7fe/results/evaluation.json>)
- [Licencia MIT](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/LICENSE>)
- [Diseño y límites de confianza](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/docs/design.md>)
- [Resumen de resultados](<https://raw.githubusercontent.com/lucioduran/agent-context-budget/72d150669a9fa4ab85496b4b62440ce95a9be7fe/results/summary.json>)
- [Protocolo de evaluación congelado](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/docs/protocol.md>)
- [Análisis de fallos](<https://github.com/lucioduran/agent-context-budget/blob/72d150669a9fa4ab85496b4b62440ce95a9be7fe/docs/error-analysis.md>)
- [Revisión y licencia del modelo](<https://raw.githubusercontent.com/lucioduran/agent-context-budget/72d150669a9fa4ab85496b4b62440ce95a9be7fe/data/model.json>)
