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 原始碼為依據。