手法、グラフ、例の詳細は、上記リンク先の元記事を参照してください。
TL;DR
- 長期実行エージェントセッションは、どのモデルのコンテキストウィンドウも超える可能性があるため、何らかの形のコンテキスト圧縮が必要です。
- 重要な指標はリクエストあたりのトークン数ではなく、タスクあたりのトークン数です(詳細の欠落により、コストの高い再取得と再作業が発生するため)。
- Factoryの評価において、構造化要約は、OpenAIの
/responses/compactやAnthropicのSDK圧縮と同様の圧縮率で、「タスクを継続する」情報をより多く保持しました。
コンテキスト圧縮が重要な理由
エージェントセッションが数百/数千ターンに及ぶと、完全なトランスクリプトは数百万トークンに達する可能性があります。エージェントが重要な状態(例:正確なエンドポイント、変更されたファイルパス、現在の次のステップ)を失うと、しばしば以下のことが起こります:- 既に読んだファイルを再読み込みする
- デバッグの行き詰まりを繰り返す
- 何が変更され、どこで変更されたかを忘れる
Factoryによる「コンテキスト品質」の評価方法
要約類似性メトリクス(例:ROUGE)を使用する代わりに、Factoryはプローブベース評価を使用しました:- 実際の長期実行本番セッションを取得する。
- 前の部分を圧縮する。
- 切り捨てられた履歴から特定のタスク関連詳細を記憶する必要があるプローブを尋ねる。
- 回答を機能的有用性についてグレード付けする。
プローブタイプ
- 記憶: 事実の保持(例:「元のエラーは何でしたか?」)
- アーティファクト: ファイル追跡(例:「どのファイルを変更し、どのように変更しましたか?」)
- 継続: タスク計画(例:「次に何をすべきですか?」)
- 決定: 推論チェーン(例:「何を決定し、なぜですか?」)
スコア付けの観点
回答は、LLM審判者(GPT-5.2)により以下の観点で(0-5で)スコア付けされました:- 正確性
- コンテキスト認識
- アーティファクト追跡
- 完全性
- 継続性
- 指示従順
比較された圧縮アプローチ
結果(ハイレベル)
FactoryはPRレビュー、バグ修正、機能実装、リファクタリングなどのタスクにわたる本番セッションから36,000+メッセージを評価したと報告しています。全体スコア(0-5)
圧縮率 vs. 品質
投稿では、方法間で類似の圧縮率が示されています:- OpenAI: 99.3% トークン除去
- Anthropic: 98.7% トークン除去
- Factory: 98.6% トークン除去
Factoryが学んだこと
- 構造が重要: 明示的なセクション(ファイル/決定/次のステップ)を強制することで、重要な詳細が時間の経過とともに「静かに消失」する可能性を減らします。
- 圧縮率は誤解を招く目標: 積極的な圧縮は「トークンを節約」できるが、高価な再作業を引き起こす詳細を失う可能性があります;タスクあたりのトークンについて最適化すべきです。
- アーティファクト追跡は依然として困難: すべての方法で、どのファイルが作成/変更/検査されたかの追跡で低いスコア(Factoryの最高は2.45/5)であり、これは要約を超えた専用の状態追跡が必要である可能性を示唆しています。
- プローブベース評価はエージェントの現実により近い: 作業を効果的に継続できるかをテストするため、テキスト類似性メトリクスよりも優れています。
