コーディングエージェントが長い作業の途中で、いつ過去の履歴を要約するかを学習させる研究が公開されました。AutoCompact: Learning When to Compact Context in Long-Horizon Coding Agents という論文です。実際のバグ修正課題を集めたSWE-bench Verified(実在のGitHub課題をAIが解けるかを測るテスト)で、基準モデルより正答率が9.2ポイント上がりました。コンテキストの圧縮を、モデルの判断力の一部として鍛える発想です。
背景と文脈
コーディングエージェントは、リポジトリを検索し、ファイルを読み、編集してテストを回すという長い作業を続けます。この間に、検索結果やエラー出力といった履歴がコンテキスト(モデルが一度に読める入力の範囲)に積み上がります。
問題は、履歴の多くが途中から不要になる点です。原因の仮説を立てて外れた記録や、長いツール出力は、次の段階では邪魔になります。コンテキストを埋めるだけでなく、古い情報に引きずられて判断が鈍る恐れもあります。
従来の対処は主に二つでした。一つは、残りの入力枠が一定以下になったら自動で要約する長さ起点の方式です。論文は、この方式だと作業の途中で要約が走り、まだ必要な証拠が消えることがあると指摘しています。
もう一つは、モデルに「いつ要約するか」を決めさせる方式です。ただし、時期を決めるだけでは足りません。要約に重要な情報が抜けたり、要約どおりに動かず調査済みの作業をやり直したりする失敗が残ります。AutoCompactは、この三つ(いつ圧縮するか、何を残すか、圧縮後にどう続けるか)をまとめて扱う点が特徴です。
技術/ビジネス面

AutoCompactは、エージェントに compact() という行動を加えます。モデルは、調査が一区切りしたと判断したときに、これを呼び出して履歴を作業状態の要約に置き換えます。入力枠が尽きる前に自分で呼べる点がポイントです。
学習は二段階です。まず基準のエージェントに課題を解かせ、その圧縮の判断、書いた要約、圧縮後の行動を別のモデル(審査役)が点検します。問題があれば審査役が修正版に差し替え、環境にはその修正版が実行されます。軌跡は修正後の判断から続くため、「正しい圧縮のやり方」と「圧縮後の正しい動き方」が教師データになります。
集めた軌跡は、SWE-rebench(実際のGitHub課題を集めたデータセット)から得た1,052件です。これを使って教師あり微調整(SFT、正解の例を見せてモデルを調整する学習)を行います。続いて強化学習(RL、試行の成否を報酬にして方策を磨く学習)を重ねます。報酬は課題の成功か失敗かだけで、圧縮用の特別な報酬は設けていません。
結果は、SWE-bench Verifiedで正答率39.6%、SWE-PolyBench Verified(複数言語のバグ修正を測るテスト)で24.5%でした。基準モデル比で、それぞれ9.2ポイントと5.0ポイントの改善です。
予算別の評価も行われています。1課題あたり0.10〜4.00ドルのどの水準でも改善が続き、特に低予算で強化学習の上積みが大きくなりました。入力枠が256Kの設定でも、16Kに絞った設定でも同じ傾向です。さらに、同じモデルの圧縮呼び出しだけを無視すると正答率が下がりました。学習の効果だけでなく、圧縮そのものが成績に寄与していると確認できます。
これからどうなるか
この研究が示すのは、コンテキスト管理を外付けの仕組みでなく、モデルの学習対象にできるという点です。長時間動くエージェントでは、要約の質が最終的な成功率を左右します。今後は、各社のエージェントが圧縮機能を標準で学習済みにしていく流れが強まりそうです。
手元で自作のエージェントを動かしている開発者には、すぐ使える示唆があります。入力枠が残り少なくなってから要約するのでなく、「原因箇所を特定できた」といった節目で要約するよう設計し直すと、同じモデルでも成功率が上がる可能性があります。要約に、対象ファイル名と次にやる編集を必ず含めるルールも有効でしょう。
注意点もあります。実験は評価用のベンチマーク上の数値で、実際の業務リポジトリでの効果は別に確かめる必要があります。最先端モデルでも同じ幅で伸びるかは、論文の範囲では確認できません。
まとめ
AutoCompactは、コーディングエージェントに圧縮の時期、残す内容、再開の仕方を学習させる手法です。SWE-bench Verifiedで9.2ポイントの改善を示しました。自作エージェントでは、節目ごとの要約という設計に応用できます。
参考リンク
アイキャッチ画像: Photo by Jantine Doornbos on Unsplash

