ITSUKI.
技術737 文字2 分

Day 06|Agent Loop — 結果を受け取り、もう一度判断する

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

この章しょうの答こたえ

ツールの結果けっかや保留ほりゅう入力にゅうりょくを確認かくにんし、続つづきが必要ひつようなら次つぎのモデル呼び出よびだしへ進すすむ。

エージェントは一回いっかいの回答かいとうで仕事しごとを終おえるとは限かぎりません。ファイルを読よみ、結果けっかを見みて次つぎの操作そうさを選えらびます。この繰り返くりかえしを支ささえるのが Agent Loop です。ループの本体ほんたいと同おなじくらい、継続けいぞく・停止ていしの条件じょうけんが重要じゅうようになります。

01|図でつかむ

図06|Agent Loop

続つづきが必要ひつようなら Model へ戻もどる。不要ふようなら Turn を完了かんりょうする。

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

1. 一回の sampling を切り出す

run_turn の中なかでモデルへの一回いっかいの要求ようきゅうを見みつけます。モデルの応答おうとうにツール要求ようきゅうが含ふくまれると、その実行結果じっこうけっかが後続こうぞくの判断材料はんだんざいりょうになります。

2. 継続の理由を分ける

確認かくにんしたソースコードでは、モデル側がわの needs_follow_up と保留ほりゅう入力にゅうりょくの有無うむを合あわせて継続けいぞくを判断はんだんしています。「ツールがあったから」だけで説明せつめいせず、追加ついかの入力にゅうりょくや状態じょうたいも見みます。

3. 出口も同じ重さで読む

完了かんりょう、エラー、中断ちゅうだんの経路けいろを分わけて追おいます。ツール結果けっかの記録きろくと次つぎの要求ようきゅうの間かんで何なにが起おきるかを押おさえると、無限むげんに続つづく・早はやく終おわりすぎるといった問題もんだいを調しらべやすくなります。

03|ソースで確かめる

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

git rev-parse --short HEAD
rg -n "needs_follow_up|has_pending_input" codex-rs

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

小さく試す

run_turn 内ないで needs_follow_up を検索けんさくし、値あたいを作つくる箇所かしょと終了判定しゅうりょうはんていに使つかう箇所かしょを結むすびます。

04|30秒で復習

  • モデル呼び出よびだしを繰り返くりかえす制御せいぎょがある。
  • 継続けいぞく理由りゆうにはツール結果けっかや保留ほりゅう入力にゅうりょくがある。
  • 終了条件しゅうりょうじょうけんとキャンセル経路けいろも読よむ。

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