Communityコーディング&開発github.com

autoresearch — 自己改善プロンプト最適化

Karpathy パターン「生成→評価→スコア→保持/破棄→突然変異→繰り返し」を Rust で実装した自己改善プロンプト最適化エンジン。エージェントのツール選択、システムプロンプト、スキルファイル、構造化出力スキーマを自動改善します。

autoresearch — 自己改善プロンプト最適化 とは?

autoresearch は、大規模言語モデル(LLM)エージェントのプロンプトを自動改善するための Rust ベースのエンジンです。Karpathy の自己改善ループ(生成、評価、スコアリング、保持/破棄、突然変異)に従い、エージェントのツール選択精度、システムプロンプト品質、任意の SKILL.md ファイルの適合率、構造化出力パーサーの信頼性を最適化します。各サイクルでは、Gemini で現在のプロンプトから N 個の出力を生成し、Claude Sonnet で二値評価基準に基づいて評価し、スコアを算出。最高スコアのプロンプトを保持し、次のサイクルで突然変異を適用します。20 サイクルで約 1〜6 ドル程度のコストで永続的な改善が得られます。Python 製のダッシュボード (Streamlit) で進捗を可視化でき、Rust API と CLI (rc-cli 統合時) の両方から利用可能です。

対応✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add fortunto2/rust-code

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

/autoresearch — 自己改善プロンプト最適化

Karpathy 自己研究パターン:生成 → 評価 → スコア → 保持/破棄 → 突然変異 → 繰り返し

アーキテクチャ

コアエンジン:crates/sgr-agent/src/autoresearch.rs(Rust モジュール、genai フィーチャー) ダッシュボード:skills/autoresearch/dashboard.py(Python、スタンドアロンビューアー) テストケース:skills/autoresearch/test_cases/*.json(include_str! でコンパイル時に埋め込み)

ターゲット

ターゲット最適化対象評価指標
tool-selectionエージェントのツール説明66のテストタスクでのツール選択正解率
system-promptエージェントシステムプロンプト (SOUL.md)意思決定品質:適切なツール+一貫した推論(4基準)
skill任意の SKILL.md ファイル二値基準合格率(4基準)
decision-parser構造化出力スキーマパース成功率+フィールド品質(5基準)

使用方法(Rust API)

use sgr_agent::autoresearch::{AutoResearch, Config, Target};

let config = Config {
    target: Target::ToolSelection,
    batch_size: 10,
    cycle_secs: 120,
    gen_model: "gemini-2.5-flash".into(),
    eval_model: "claude-sonnet-4-6".into(),
    data_dir: "autoresearch_data/tool-selection".into(),
};
let ar = AutoResearch::new(config);
ar.run(20).await?; // 20サイクル

クイックスタート(CLI — rc-cli に組み込み済みの場合)

# ツール選択の最適化(最も効果的)
cargo run -- autoresearch tool-selection --cycles 20

# システムプロンプトの最適化
cargo run -- autoresearch system-prompt --cycles 10

# 特定のスキルを最適化
cargo run -- autoresearch skill --name delegate --cycles 15

# 意思決定パーサーの最適化
cargo run -- autoresearch decision-parser --cycles 10

# ダッシュボード(Python、スタンドアロン)
python3 skills/autoresearch/dashboard.py --target tool-selection --port 8501

仕組み

各サイクル:

  1. 生成 — 現在のプロンプトから N 個の出力を生成(Gemini、エージェントと同じモデル)
  2. 評価 — 各出力を二値評価基準に対して評価(Claude Sonnet、異なるモデルで客観性を担保)
  3. スコア — 全出力の合格基準の合計
  4. 保持 — スコアが best_score より高ければ保持、そうでなければ破棄
  5. 突然変異 — 勝利プロンプトを突然変異させ改善を試行
  6. ログ — ダッシュボード追跡用に JSONL に記録
  7. 待機 — 次のサイクルまで待機(デフォルト2分)

環境変数

  • GEMINI_API_KEY — 生成用(エージェントが使用するモデルと同じモデルでテスト)
  • ANTHROPIC_API_KEY — 評価・突然変異用(異なるモデルで客観性を担保)

ヒント

  • 二値評価 — yes/no 基準が最も効果的。リッカート尺度は避けること。
  • 過度な制約は避ける — 狭い基準を多く設定すると、モデルが評価をゲームする。
  • 10〜20サイクルで大幅な改善が期待できる。
  • 結果の適用 — 最良プロンプトは data/<target>/best_prompt.txt に保存される。

コスト

  • ツール選択:約 $0.05/サイクル(低コスト — テストごとに1回の LLM 呼び出し+文字列一致評価)
  • システムプロンプト:約 $0.20/サイクル(生成+テストごとの LLM 評価)
  • スキル:約 $0.30/サイクル(生成+テストごとの LLM 評価、出力が長い)
  • 意思決定パーサー:約 $0.15/サイクル(生成+部分的なローカル評価)
  • 20サイクルで約 $1〜6(ターゲットによる)。永続的な改善が得られる。

関連スキル