Skip to content

Compression de contexte et MoA

源码版本v2026.7.20

Responsabilité

Deux choses : (1) quand les messages d'historique approchent de la limite de contexte du provider, résumer ou rogner les anciens messages pour récupérer du budget (context_compressor) ; (2) en option, utiliser un chemin Mixture-of-Agents pour agréger les sorties de plusieurs modèles (moa_loop). Les deux sont appelés depuis la boucle principale et sont les composants de support qui « font tenir les longues conversations » et « stabilisent les réponses ».

Fichiers clés

Flux de données

  1. La boucle principale évalue à chaque tour s'il faut compresser (voir _should_run_preflight_estimate:213).
  2. Au seuil déclenché, appel au context_compressor :
  3. L'« espace neuf » issu de la compression est partiellement remboursé via iteration_budget.refund() (agent/iteration_budget.py), ce qui permet à la boucle principale de faire quelques tours de plus.
  4. Si MoA est activé, moa_loop appelle en parallèle plusieurs providers et agrège leurs sorties, comme amplification ou arbitrage de la réponse principale.

Résumé

Le compresseur est la bouée de sauvetage des longues conversations ; le compromis central est « quoi jeter, quoi garder » — il conserve en priorité les appels d'outils et les mentions de chemins, car les perdre rendrait les tours suivants « amnésiques ». MoA est une amplification orthogonale, activable. Aucun des deux ne change la structure de la boucle principale : ils s'insèrent seulement au bon moment.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).