ITSUKI.
技術701 文字2 分

Day 10|Tools — 名前付きの要求を、実装へ届ける

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

この章しょうの答こたえ

ツールの説明せつめい・登録とうろく・振り分ふりわけ・実行じっこうを分わけると、呼び出よびだしの道筋みちすじが見みえる。

モデルは Rust の関数かんすうを直接ちょくせつ呼よんでいるわけではありません。ツール名めいと引数ひきすうを持もった要求ようきゅうを、適切てきせつな実装じっそうへ渡わたす仕組しくみが必要ひつようです。ここではツールの「メニュー」と「実行じっこう係かかり」を区別くべつします。

01|図でつかむ

図10|Tools

Registry は名前なまえと実装じっそうの対応たいおうを持もつ。Spec を定義ていぎしただけでは実行じっこうできない。

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

1. ToolSpec は使い方を伝える

名前なまえ、説明せつめい、引数ひきすうの構造こうぞうなど、モデルがツールを選えらぶための情報じょうほうを見みます。説明せつめいが実装じっそうとずれると、正ただしい処理しょりがあっても適切てきせつに呼よばれません。

2. Registry と Router を分ける

登録とうろくされた処理しょりの一覧いちらんと、届とどいた呼び出よびだしを振り分ふりわける役割やくわりを分わけます。知しらない名前なまえや不正ふせいな引数ひきすうが来きた場合ばあいの返かえし方ほうも、通常つうじょうのルートと一緒いっしょに読よみます。

3. Handler の先にも境界がある

Handler は呼び出よびだしを具体的ぐたいてきな操作そうさへ変換へんかんします。実行じっこう条件じょうけんの確認かくにんやランタイム処理しょりを経へたあと、結果けっかが ToolOutput などの形かたちで戻もどります。ツール名めいから戻り値もどりちまでを一本いっぽんで追おいます。

03|ソースで確かめる

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

git rev-parse --short HEAD
rg -n "ToolRouter|ToolInvocation|ToolOutput" codex-rs

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

小さく試す

一ひとつのツールを選えらび、定義ていぎ、登録とうろく、Handler、出力しゅつりょくの四し箇所かしょを探さがします。

04|30秒で復習

  • Spec は説明せつめい、Registry は対応表たいおうひょう。
  • Router が呼び出よびだし先さきを選えらぶ。
  • 成功せいこうと失敗しっぱいを共通きょうつうの出力しゅつりょく経路けいろへ戻もどす。

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