ITSUKI.
技術832 文字3 分

Day 02|Coding Agent を、6つの役割に分けてみる

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

この章しょうの答こたえ

入口いりぐち・画面がめん・共通きょうつうメッセージ・Core・Model・Tools の役割やくわりを分わける。

「Codex」という一ひとつの箱はこを開ひらくと、入力にゅうりょくを受うける部品ぶひん、画面がめんを描えがく部品ぶひん、モデルとツールをつなぐ部品ぶひんが見みえてきます。今日きょうは関数かんすうを深追ふかおいせず、どこに何なにを聞きけばよいか分わかる地図ちずを作つくります。

01|図でつかむ

図02|Coding Agent を、6つの役割に分けてみる

Core から Model と Tools へ。Protocol は部品間ぶひんかんの共通言語きょうつうげんごで、図ずの矢印やじるしを支ささえる。

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

1. CLI は入口、TUI は人との接点

CLI は引数ひきすうや subcommand を読よみ、起動きどう先さきを選えらびます。TUI は入力にゅうりょく欄らんだけでなく、進行状況しんこうじょうきょう・承認しょうにん・差分さぶん・実行結果じっこうけっかを表示ひょうじします。「何なにを起動きどうするか」と「作業さぎょうをどう見みせるか」を分わけて考かんがえます。

2. Core に、画面から独立した処理を集める

Core は Codex の主要しゅような処理しょりを担にないます。モデル呼び出よびだしや作業さぎょう状態じょうたいの管理かんりを画面がめんコードから分わけることで、別べつの UI からも利用りようしやすくなります。TUI と Core の間あいだにある App Server の接続せつぞくは Day 16 で詳くわしく見みます。

3. Protocol は配線の途中に置く装置ではない

UserInput や ThreadId などの型かたは、部品ぶひんが同おなじ意味いみで情報じょうほうをやり取とりするための約束やくそくです。Model は判断はんだんを返かえし、Tools はファイルやプロセスへ働はたらきかけます。図ずの箱はこを順番じゅんばんに通とおるだけでなく、誰だれがどの型かたを送受信そうじゅしんするかを読よみます。

03|ソースで確かめる

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

git rev-parse --short HEAD
rg -n "MultitoolCli|AppServerClient|codex_protocol" codex-rs

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

小さく試す

cli/src/main.rs、tui/src/lib.rs、core/README.md、protocol/src/lib.rs を開ひらき、それぞれの責務せきむを一文いちぶんで書かきます。AI に聞きいた説明せつめいは検索けんさくの出発点しゅっぱつてんとして使つかい、実際じっさいのファイルで確認かくにんします。

04|30秒で復習

  • CLI は起動きどう先さきを選えらぶ。TUI は作業さぎょうを見みせる。
  • Core は UI から独立どくりつした中核ちゅうかくを担になう。
  • Protocol は共通きょうつうの型かた、Model は判断はんだん、Tools は操作そうさ。

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