Skip to content

Compresión de contexto y MoA

源码版本v2026.7.20

Responsabilidad

Dos tareas: ① cuando el historial se acerca al límite de contexto del provider, resumir/podar mensajes viejos para liberar presupuesto (context_compressor); ② opcionalmente, agregar la salida de varios modelos vía una ruta Mixture-of-Agents (moa_loop). Ambas se invocan dentro del bucle principal; son los componentes de soporte que «permiten que las conversaciones largas sigan corriendo» y «hacen las respuestas más estables».

Archivos clave

Flujo de datos

  1. El bucle principal evalúa cada turno si hace falta comprimir (ver _should_run_preflight_estimate:213).
  2. Al alcanzar el umbral, llama a context_compressor:
  3. El «nuevo espacio» liberado por la compresión se reembolsa parcialmente vía iteration_budget.refund() (agent/iteration_budget.py), permitiendo al bucle principal correr unos turnos más.
  4. Si MoA está activo, moa_loop llama en paralelo a varios providers y los agrega, como mejora o árbitro de la respuesta principal.

Resumen

El compresor es el salvavidas de las conversaciones largas; la decisión central es «qué descartar, qué conservar»: prioriza las llamadas a herramienta y las menciones de ruta, porque perderlas dejaría «amnésicos» a los turnos siguientes. MoA es una mejora ortogonal, activable. Ninguno de los dos cambia la estructura del bucle principal; solo se insertan en el momento adecuado.

Sitio de aprendizaje comunitario no oficial. Basado en el código fuente de NousResearch/hermes-agent (licencia MIT).