ITSUKI.
技術708 文字2 分

Day 09|Compaction — 長い会話を、続けられる形にする

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

コンテキストの制約せいやくに合あわせて履歴りれきを組み替くみかえ、次つぎの処理しょりに必要ひつような情報じょうほうを引き継ひきつぐ。

作業さぎょうが長ながくなると、モデルへ渡わたす情報じょうほうも増ふえていきます。Compaction を理解りかいするには、短みじかくする処理しょりだけでなく、いつ起動きどうし、置き換おきかえた履歴りれきをどこから使つかい始はじめるかを見みる必要ひつようがあります。

01|図でつかむ

図09|Compaction

処理しょりの目的もくてきは、必要ひつような情報じょうほうを引き継ひきついで会話かいわを続つづけること。

02|3つのポイントで理解する

1. 起動の条件を探す

ContextWindowTokenStatus や token_limit_reached を検索けんさくし、どの使用量しようりょう・閾値いきちが判定はんていに使つかわれるかを見みます。設定値せっていちだけでなく、それを比較ひかくする場所ばしょまで追おいます。

2. 圧縮を独立した処理として読む

run_auto_compact や CompactTask 周辺しゅうへんには、通常つうじょうのモデル要求ようきゅうとは異ことなる準備じゅんびや結果けっかの扱あつかいがあります。成功せいこう時ときだけでなく失敗時しっぱいじに元もとの履歴りれきがどう扱あつかわれるかも確認かくにんします。

3. 置き換えの後が重要

replacement history を採用さいようした後あと、Agent Loop がどの情報じょうほうから続行ぞっこうするかを見みます。要約ようやくで細部さいぶが省はぶかれる可能性かのうせいを考かんがえ、重要じゅうような制約せいやくや未完了みかんりょうの作業さぎょうが残のこるかを検証けんしょうします。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

git rev-parse --short HEAD
rg -n "run_auto_compact|replace_compacted_history" codex-rs

読よむ入口いりぐち: codex-rs/core/src/session/turn.rs 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

長ながさ判定はんてい、圧縮あっしゅくの実行じっこう、履歴置換りれきちかんの三さん箇所かしょを見みつけ、一ひとつの流ながれに並ならべます。

04|30秒で復習

  • 起動条件きどうじょうけんは使用量しようりょうと制約せいやくから読よむ。
  • 圧縮あっしゅくの失敗しっぱい経路けいろも確認かくにんする。
  • 置き換おきかえ後のちに何なにを引き継ひきつぐかが核心かくしん。

全ぜん30章しょうの目次もくじへ