Lesson 0005 | Mission: pi × herdr による自律型開発・研究開発ワークフロー
前レッスンまでは、親エージェントが bash ツールを介して herdr pane split ... などのシェルコマンドやシェルスクリプトを呼び出していました。
しかし、これには「LLMがシェル構文や jq パースを間違えるリスク」「環境依存」という課題があります。
本レッスンでは、pi-coding-agent の Extension 機能(TypeScript)を活用し、herdr の操作を LLM のネイティブ関数(ツール)として再利用可能にカプセル化する設計 を学びます。
| 比較項目 | bash ツール経由で呼ぶ場合 | pi Extension として実装する場合 |
|---|---|---|
| LLMの認識 | 「シェルコマンドを組み立てて実行する」 | 「herdr_spawn_worker という専用ツールを引数付きで呼ぶ」 |
| パラメータ堅牢性 | 引用符のエスケープミスや構文エラーが起きやすい | typebox のスキーマ定義により型が保証される |
| 再利用性 | プロジェクトごとにスクリプトをコピーする必要がある | ~/.pi/agent/extensions/ に置けば全プロジェクトで即座に共有可能 |
.pi/extensions/herdr-orchestrator.ts)herdr_spawn_worker (LLM用 Tool):
name (ワーカ名), kind (pi, copilot等), direction (right/down)
herdr pane split と herdr agent start を自動実行し、成功した pane_id を返す。
herdr_prompt_worker (LLM用 Tool):
name (ワーカ名), prompt (タスク指示), wait (完了待機フラグ)
herdr agent prompt --wait を実行し、完了後の端末出力サマリーを親エージェントに返す。
/herdr-status (人間用 Command):
~/.pi/agent/extensions/herdr-orchestrator.ts に配置します。どのディレクトリで pi を起動しても自動認識されます。
.pi/extensions/herdr-orchestrator.ts に配置して Git コミットします。チームメンバーが pi を立ち上げた際にそのまま利用できます。
問: 作成した pi Extension を特定のリポジトリだけでなく、PC全体のあらゆるプロジェクトで常に自動ロードさせて再利用したい場合、どこに配置するのが正解?