pi-autoresearch: Karpathyの「AI自律実験」アイデアを汎用化したオープンソース
(github.com/davebcn87)一行要約
アイデアを試し → 測定し → 改善したら維持、そうでなければ捨てる → これを永遠に繰り返す。
pi-autoresearchは、ターミナルAIコーディングエージェント pi の拡張であり、Karpathyの autoresearch コンセプトを あらゆる最適化問題に適用できるよう一般化 したプロジェクトです。
まず、piとは?
piは ターミナルで動作するAIコーディングエージェント です。CursorやWindsurfのようなIDEベースのツールと異なり、ターミナルネイティブに設計されているため、SSH接続環境やヘッドレスサーバーでもそのまま利用できます。
piの中核的な特徴は Extension と Skill システム です:
- Extension — エージェントに新しいツールを追加します。ファイルの読み書き、コマンド実行のような基本ツールに加えて、カスタムツールをプラグインのように差し込めます。
- Skill — 特定の作業パターンを教えます。「こういう状況ではこの順番でこれらのツールを使う」というワークフローを定義します。
pi install <github-url> の一行でコミュニティ製の Extension と Skill をインストールできるため、エージェントの能力を自由に拡張できる構造です。pi-autoresearch はまさにこのシステム上に作られた Extension+Skill パッケージです。
背景: Karpathyの autoresearch
2026年3月、Karpathyが公開した autoresearch のアイデアはシンプルでした:
- AIエージェントにLLM学習コード(
train.py)を1つ与え - コードを修正させ、5分間学習させて
- 検証 loss が改善したら keep、そうでなければ discard
- 一晩中繰り返す → 朝起きると実験ログ + より良いモデルがある
極度にミニマルな設計(ファイル3つ、GPU 1枚、メトリクス1つ)で、"エージェントが研究者の役割を自律的に果たす" というコンセプトを証明することに集中したプロジェクトでした。ただし、NVIDIA GPU専用 + LLM学習にしか適用できないという生来的な限界がありました。
pi-autoresearchの違い
1. ドメインの制限がない
LLM学習の loss だけでなく、テスト実行速度、バンドルサイズ、ビルド時間、Lighthouseスコア など、測定可能なものであれば何でも最適化対象にできます。これは、piの「インフラ(Extension)とドメイン知識(Skill)」を分離する構造のおかげです。
- テスト速度 — seconds ↓ —
pnpm test - バンドルサイズ — KB ↓ —
pnpm build && du -sb dist - LLM学習 — val_bpb ↓ —
uv run train.py - Lighthouse — perf score ↑ —
lighthouse --output=json
2. 再起動しても記憶を失わない
AIエージェントにはコンテキストウィンドウの限界があるため、長時間の実験中にコンテキストがリセットされたり、プロセスが落ちたりすることがあります。pi-autoresearch は2つのファイルでセッション状態を完全に保存します:
autoresearch.jsonl— すべての実験の append-only ログautoresearch.md— 目標、試したこと、行き止まり、主要な成果の要約
まったくメモリを持たない新しいエージェント でも、この2つのファイルを読むだけで正確に前のセッションを引き継げます。事実上、"エージェントのための外部メモリ" パターンです。
3. ノイズの中から本当の改善を見分ける
ベンチマークは同じコードを走らせても毎回結果が異なります。3回以上実験した後、MAD(Median Absolute Deviation)ベースの confidence score を自動計算し、その改善が本物なのかノイズなのかを視覚的に示します。
- 🟢 ≥ 2.0× — 改善が本物である可能性が高い
- 🟡 1.0–2.0× — ノイズ以上だが小さい
- 🔴 < 1.0× — ノイズの範囲内、再実行を推奨
ただし、自動で実験を捨てることはせず、最終判断はエージェントに委ねます。
4. 最適化が整合性を壊すのを防ぐ
autoresearch.checks.sh を置いておくと、ベンチマーク通過後に テスト・型チェック・lint のような整合性検証が自動で実行されます。"速くはなったがテストが壊れる" という典型的な落とし穴をシステムレベルで防ぎます。
5. 実験結果をきれいなPRに整理する
実験が終わると autoresearch-finalize スキルが keep された実験を論理的な changeset としてグループ化し、独立した git ブランチ に分離してくれます。ファイルが重ならないことを保証するため、各ブランチを独立してレビューし、マージできます。
ワークフロー
1. /autoresearch optimize unit test runtime
→ 目標・コマンド・メトリクスを設定 → baseline を測定 → ループ開始
2. 自律ループ(無限反復)
→ コード修正 → git commit → ベンチマーク → 整合性検証
→ 改善? keep / 悪化? revert → .jsonl に記録 → 繰り返し
3. /skill:autoresearch-finalize
→ keep された実験を独立ブランチに整理 → レビュー・マージ
コスト制御
自律ループはトークンを継続的に消費するため、APIキーの上限設定と maxIterations(セッションごとの最大実験回数)という2つのガードレールを提供します。
なぜ注目に値するのか
Karpathyの autoresearch が 「AIが自分で実験する」 という興味深いコンセプト実証だったとすれば、pi-autoresearch はそれを 実際の開発現場で使える汎用ツール にした試みです。piの Extension/Skill アーキテクチャ上に構築されているため、インストール一行で既存の pi ワークフローにすぐ組み込める点も導入障壁を下げています。
セッション状態の保存、統計的信頼度の検証、整合性の保護、Gitネイティブなワークフローといった実運用上の問題を体系的に解決している点が印象的で、夜に回して朝にPRをレビューするワークフローが現実になるのか注目に値します.
2件のコメント
やはり pi
pi がとても好きです