3.1 KiB
4.1. 例:AI用Tools
目的
AI用Toolsは、WIP ClientがAIへ提供する想定インターフェースである。Core Protocolをそのまま露出せず、Clientが保持するKnown Space / Discoverable Spaceと組み合わせて、AIがWorldspaceを理解・探索・操作しやすい形へ投影する。
現時点では、discover / inspect / invoke の3操作を基本とする。
discover
discover(scope, query) は、Clientが保持するDiscoverable Spaceから目的に関連するエントリを探す。
検索対象は、Hostからfetch_treeによって取得されたindexableなエントリ公開情報に限定する。OperationやLinkによって新たに発見されたエントリはKnown Spaceには追加されるが、それだけではdiscoverの検索対象にはならない。
discoverはドメインデータを検索する操作ではない。Issue本文やRAG corpusなどを検索する場合は、その能力を持つObjectのOperationをinvokeする。
inspect
inspect(target) は、対象エントリ / Objectについて何ができるかを把握するための操作である。
Objectのドメインデータをpropertiesとして直接公開することは前提としない。データを読む行為もOperationとして表現する。
例えばIssueでは、次のような操作が示され得る。
read_body()— 本文を読む。get_metadata()— 期日、担当者、ラベル、関連ObjectへのLinkなどを取得する。close(reason: string)— 理由を添えてIssueをクローズする。
Operationはシグネチャだけでなく、AIが用途を判断できる短いdescriptionを持つ。長文ドキュメントを埋め込むことは想定しない。
invoke
invoke(target, operation, input) は、inspectによって発見したOperationを実行する。
PTC / REPL bindingでは、通常のメソッド呼び出しへ投影してよい。
issue.close(reason="duplicate")
ClientはエントリをObjectへ解決し、WIPのcall_operationを利用して実行する。Object同一性やエントリとObjectの観測整合性はClient側で処理し、AI自身に追跡させない。
エントリの発見
AIが新しいエントリを知る経路は複数ある。
discoverによってDiscoverable Spaceから見つける。- Known Space上の既知エントリを辿る。
- Operationの結果としてエントリまたはエントリツリーを受け取る。
- Operation結果に含まれるLinkから別エントリを知る。
新たに発見されたエントリの保持、Treeへの統合、indexableな範囲の管理はClientの責務とし、このページではAI向けToolの意味論だけを扱う。
ドメイン検索
全文検索、semantic retrieval、外部API検索などはWIP固有のToolにはしない。
検索能力を持つObjectがqueryやsearchなどのOperationを公開し、AIはそれをinvokeする。結果としてエントリやエントリツリーが返された場合、それらはClientを通して新たなKnown Spaceとして利用可能になる。