davebcn87/pi-autoresearch
Autonomous experiment loop extension for pi
pi‑autoresearch – pi コーディングエージェント向け自律最適化ループ
何であるか – オープンソースのターミナルベースAIコーディングアシスタント pi (https://pi.dev) の拡張機能(およびいくつかの「スキル」)。piにautoresearchサイクルを実行させる能力を提供します:変更案を提案し、ベンチマークを実行し、保持するかロールバックするかを判断し、停止条件が満たされるまで自動的に繰り返します。
なぜ重要か – autoresearchの核となるアイデア(アンドレイ・カーパティが最初に実証)は、LLMが自己改善型エンジニアとして振る舞うことを可能にすることです。pi‑autoresearchはこのワークフローを再利用可能でドメインに依存しないツールチェーンとしてパッケージ化し、コマンドラインでのメトリクスで測定可能なあらゆるものを最適化できるようにします – テスト実行時間、バンドルサイズ、ビルド時間、Lighthouseスコア、さらにはLLMの訓練損失まで。
主要なコンポーネント
| コンポーネント | 役割 |
|---|---|
拡張機能(pi install npm:pi-autoresearch でインストール) |
3つの低レベルツール(init_experiment、run_experiment、log_experiment)と、エディタの上に表示されるライブダッシュボードウィジェットを提供します。 |
スキル autoresearch-create |
インタラクティブなウィザードで最適化目標を尋ね(または推定)し、Gitブランチを作成し、セッションファイル(.auto/prompt.md、.auto/measure.sh など)を生成してループを開始します。 |
スキル autoresearch-finalize |
ループ終了後、ログを読み取り、成功した実行を独立したレビュー可能なGitブランチに分割します。 |
スキル autoresearch-hooks(オプション) |
各イテレーションの前後で実行される before.sh / after.sh スクリプトを配置可能。JSONコンテキストを受け取り、エージェントに自由形式のメッセージを返すことができます。 |
セッションの流れ
- 作成 –
/skill:autoresearch-createを実行。piが目標(例:「テスト実行時間を短縮」)、測定用コマンド、メトリクス(秒、KB、スコアなど)を尋ねます。次のようなファイルを生成します:.auto/prompt.md– 実験の動的な説明。.auto/measure.sh– コマンドを実行し、METRIC name=number形式の行を出力するスクリプト。- (オプション)
.auto/checks.sh– 各成功したベンチマーク後に実行される正しさのチェック。
- ループ – エージェントは繰り返し:
- コードを編集し、
run_experiment→measure.shを実行し、ウォールクロック時間を記録し、log_experiment→.auto/log.jsonlにJSON行を追加し、自動コミット、ウィジェットを更新。- メトリクスとオプションの信頼度スコアに基づいて、保持(コミットを残す)またはロールバック(以前の状態に戻す)を判断。
- ループは中断されるか
maxIterationsの上限に達するまで、手動で監視せずに実行されます。
- 監視 – 組み込みウィジェット、
/autoresearch dashboard(フルスクリーンターミナルビュー)、または/autoresearch export(ライブブラウザダッシュボード)を使って、実行履歴のテーブル、信頼度スコア、現在の実験のスピナーを確認できます。 - 最終化 – 満足したら、
/skill:autoresearch-finalizeを実行。piは保持された実行を個別のブランチにグループ化し、それぞれが単一の論理的変更を含むようになり、コードレビューに適した状態になります。
信頼度スコア(オプション)
3回の実行後、拡張機能は 信頼度 値 = |best_improvement| / MAD(メトリクス値の中央絶対偏差)を計算します。これは緑(≥ 2×、実際の改善の可能性が高い)、黄色(1–2×、限界)、赤(< 1×、ノイズ内)として表示されます。このスコアは参考情報にすぎず、変更を保持するかどうかはエージェントが判断します。
拡張性
- ドメインに依存しないコア – 拡張機能はコマンドの実行、結果のログ記録、Gitの管理方法のみを知っています。すべてのドメイン知識は、あなたが作成(または提供された
autoresearch-createウィザードを使用)するスキルにあります。 - フック –
.auto/hooks/にスクリプトを配置することで、外部データの取得、デスクトップ通知の送信、アイデアのローテーションなどを実現できます。フックはstdinからJSONペイロードを受け取り、piが方向性の手がかりとして扱う短いメッセージを返すことができます。 - 設定 –
.auto/config.jsonでworkingDir(ファイルの読み書き先を上書き)とmaxIterations(実験のハード上限)を設定できます。
インストールとクイックスタート
# piセッションから
pi install npm:pi-autoresearch # 拡張機能とスキルを取得
# その後、新しいループを開始
/skill:autoresearch-create
手動インストールも可能で、extensions/ と skills/ フォルダを ~/.pi/agent/ にコピーし、piを再読み込みすればOKです。
セキュリティとコストに関する注意点
- 拡張機能は任意のシェルスクリプト(
measure.sh、checks.sh、フック)を実行し、Gitコミットを行います – 専用のブランチまたはワークツリーで実行してください。 - ループが各イテレーションでLLMを呼び出すため、トークン使用量は急速に増加する可能性があります。プロバイダーのAPIキー制限や
maxIterationsの設定でコストを制御してください。
ライセンス
MIT – 無料で使用・改変・再配布可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト