Skip to content

コンテキスト圧縮と MoA

源码版本v2026.7.20

職務

二つの役:① 履歴メッセージが provider のコンテキスト上限に近づいたとき、古いメッセージを要約/刈り込んで予算を空ける(context_compressor)。② 任意で Mixture-of-Agents パスにより複数モデルの出力を集約する(moa_loop)。どちらも主ループ内から呼ばれ、「長い対話を走らせ続ける」「回答を安定させる」ための支えである。

主要ファイル

データフロー

  1. 主ループは毎ラウンド圧縮要否を評価(_should_run_preflight_estimate:213 参照)。
  2. 閾値到達後、context_compressor を呼ぶ:
  3. 圧縮が生んだ「新空間」は iteration_budget.refund()(agent/iteration_budget.py) で一部還付され、主ループが数ラウンド多く走れる。
  4. MoA が有効なら、moa_loop がこのラウンドで複数 provider を並行呼び出して集約し、主回答の増強または仲裁とする。

まとめ

圧縮器は長対話の生命線。核心のトレードオフは「何を捨て、何を残すか」——ツール呼び出しとパス言及を優先保持する。失うと後続ラウンドが「記憶喪失」するからだ。MoA は直交する拡張で、オンオフ可能。どちらも主ループ構造を変えず、適切なタイミングで切入するだけ。

非公式コミュニティ学習サイト。MIT ライセンスの NousResearch/hermes-agent ソースに基づく。