手法・タスク説明

前提知識ゼロから読めるよう、用語と背景を含めて噛み砕いて説明

実行結果(数値・チャート)は 結果ページ へ。

§0 このプロジェクトは何をしているか

1 行で: 「AI に研究をさせる」ことを目指して、論文を読み・再現し・改善し・関連研究を探す という研究の各ステップを自動化する 4 つの道具を作っています。

研究の現場では、人間がやっている作業の大半は実は手続き的な作業です。論文を読んで実装を真似する、ハイパラを変えて再実験する、関連論文を探す、結果が論文と一致するか検証する — こうした作業を AI が自動でできるようになれば、人間は「何を研究すべきか」という創造的な判断に集中できます。

このプロジェクトでは、研究のサイクル全体を 4 つの独立した CLI ツールに分解しました。それぞれが単独でも価値を生み、組み合わせると end-to-end の研究エージェントになります。

4 つの道具と、それぞれが担当する研究ステップ

① Literature Scout「気になるトピックの最近の論文を集めてくる」(pull 型の文献調査)
② Reproduce Pipeline「arXiv URL を入れたら論文を再現してくれる」(5 ステージの自動再現)
③ PaperBench Iter「再現コードのスコアが低いとき、AI が分析して改善版を出す」(反復改善ループ)
④ Self-Improving Agent「弱いモデルを与えると、AI が勝手に train.py を書き換えて精度を上げる」(24/365 自己改善)

以降、それぞれの道具のタスク(何を解こうとしているか)手法(どう設計したか)を、必要な前提技術を含めて説明します。

§0.5 前提となる技術・用語

本ページに何度も出てくる用語の最小限の説明です。すでにご存知なら飛ばして §1 へ。

Claude / Claude Code
Anthropic 社の大規模言語モデル(GPT 等と同類)。Claude Code はその CLI 版で、ファイル読み書き・シェル実行・スキル呼び出しなどを通じて複雑なタスクを実行する。本プロジェクトのエージェント基盤。
arXiv
論文プレプリント(査読前公開)の最大級のサーバ。機械学習・物理学・数学などの研究者が論文を最初に公開する場所。本プロジェクトでは arXiv URL を入力にして処理する。
PaperBench
OpenAI が 2025 年に公開した論文再現ベンチマーク。20 本の論文に対し、各論文ごとに「この論文を再現したと言えるための要件ツリー」(rubric)が作られている。AI が生成した再現コードがそのツリーをどれだけ満たすかを採点する。合計 8,316 サブタスク。
rubric(ルーブリック)
PaperBench の各論文に付属する評価項目の階層ツリー。例: 「U-Net 実装」→「lucidrains の repo を import」「初期化が論文通り」など細かいリーフノードに分解されている。各ノードに重みが付き、子の達成度が親に伝播する形で全体スコアが計算される。本プロジェクトの Stochastic Interpolants では 58 ノード。
SimpleJudge
PaperBench 公式の自動採点エンジン。LLM(claude-sonnet-4 等)に rubric の各ノードと生成コードを渡して、満たしているかを 0〜100 で判定させる。人間の採点と相関が報告されている。
Code-Dev mode
PaperBench の評価モードの 1 つ。コードの静的な構造のみを評価し、実行はしない(GPU 不要)。「コードは正しそうに書けたか」までを測る。一方 Full mode は実行して数値一致まで見る。本プロジェクトは Code-Dev で評価。
Stochastic Interpolants arXiv:2310.03725
PaperBench の対象論文の 1 つ。画像生成の手法。ノイズと画像の間を「補間」して滑らかに変化させ、ImageNet で FID という指標を改善する。本プロジェクトでは PaperBench 20 本のうち rubric が最小(94 ノード)= 一番扱いやすい論文として選択。
FID(Frechet Inception Distance)
画像生成の品質を測る代表的な指標。生成画像と本物画像の特徴量分布の距離。低いほど良い。Stochastic Interpolants 論文では「Dependent Coupling で FID 1.13」のような数値が主張されている。
CIFAR-10 / CNN
CIFAR-10 は 60,000 枚の小画像(32×32 ピクセル、10 クラス)で構成される機械学習の基本ベンチマーク。CNN(畳み込みニューラルネット)はその分類によく使われる標準モデル。本プロジェクトでは Self-Improving Agent の対象タスクとして使用。
autoresearch(オートリサーチ)
Andrej Karpathy(元 Tesla AI Director / OpenAI 共同創設者)が 2026/3 に公開した最小ループ。「LLM にコードを書き換えさせる → 実行 → 結果を評価 → また書き換えさせる」を無限に繰り返すだけ。これだけで nanoGPT を 11% 高速化したことで爆発的に注目され、74,500★ / 80+ 派生プロジェクトのエコシステムが形成されている。
NRR(Negative Result Repository)
本プロジェクトで自作した失敗実験のデータベース。autoresearch のような自動ループは「同じ方向の失敗」を繰り返しがち(例: 学習率を上げる提案を 4 回連続)。NRR は失敗パターンを構造化して保存し、新しい提案に対して proceed / caution / avoid を返す。Karpathy 本家・autoresearch-lite・miolini macOS 版の 3 つのフォークに統合済み。
venv / Docker
Python の依存関係を隔離する仕組み。venv はプロジェクトごとに Python 環境を分ける軽量な手段。Docker はもっと包括的で OS レベルから隔離するが、論文 arXiv:2601.12811 によれば Docker でも完全な再現性は保証できない。本プロジェクトでは venv ベースで進めている。

§1 PaperBench Iteration — 再現コードを反復改善する

このコンポーネントは何か: AI が論文を再現するコードを書いた後、PaperBench の rubric で採点し、低スコアの項目を分析して改善版を再生成する、という反復改善ループ。1 回目より 2 回目、2 回目より 3 回目とスコアが伸びていく様子を実証する。
具体的なタスク
論文 Stochastic Interpolants(画像生成手法) に対して、Claude が再現コードを書く。
その code を PaperBench rubric(58 ノードの評価ツリー)で採点する。
低スコアのノードを分析して改善版コードを Claude に再生成させる。これを反復してスコアが伸びるか検証する。

提案手法 — generate-then-iterate

多くの再現エージェント(DeepCode、IterativeAgent 等)は「1 回コードを生成 → 評価」で止まります。我々は 「生成 → 評価 → 失敗分析 → 改善コード生成」を反復する ことでスコアを引き上げます。背景の問題意識:

  • 業界の再現エージェントは 1-shot 生成が主流で、PaperBench Code-Dev で 43-75% に頭打ち
  • 人間の研究者は「初稿 → 動かして直す → また直す」と反復して仕上げる
  • AI も同じことをすればスコアは伸びるはず(仮説)

1 反復のステップ

  1. 初期コードを生成: Reproduce Pipeline の Stage 2(Code Finding)で Claude が論文記述だけからコードを書く(v0 = baseline)
  2. PaperBench で採点: SimpleJudge(claude-sonnet-4)が 58 ノードの rubric を 0〜100 で採点。0-25 / 26-50 / 51-75 / 76-100 の 4 段階で集計
  3. 低スコアノードを抽出: スコアが低かった項目とその reasoning(「なぜ低かったか」の説明)を集める
  4. 改善コードを生成: 論文 + 既存コード + 低スコアの分析結果を Claude に渡し、改善版を作らせる(v1, v2)
  5. 再採点: 同じ rubric で新コードを採点。スコア推移を記録

実処理の流れ — どこで Claude が呼ばれ、何が起きているか

flowchart TD A[arXiv URL: 2310.03725] --> B["論文 PDF 取得"] B --> C["Claude #40;sonnet#41;
論文記述から実装を一から生成"] C --> D["v0 code"] D --> E["PaperBench SimpleJudge
Claude #40;sonnet-4#41; が 58 ノードを採点"] E --> F["v0 = 43.2%
各ノードに score + reasoning"] F --> G["低スコアノード抽出"] G --> H["Claude
論文 + v0 code + 失敗分析を入力
→ 改善版コードを生成"] H --> I["v1 code"] I --> J["再採点"] J --> K["v1 = 67.5%"] K --> L["同じ反復"] L --> M["v2 = 94.5%"] style C fill:#fff8e1,stroke:#f9a825 style E fill:#fff8e1,stroke:#f9a825 style H fill:#fff8e1,stroke:#f9a825 style M fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
黄色 = Claude API が呼ばれる箇所。1 反復で 2 回 Claude が呼ばれる(採点と改善生成)。Stochastic Interpolants の場合、合計で約 ¥300〜500 / 1 反復。

各反復で具体的に変えたこと(Stochastic Interpolants の例)

反復主な変更点(人間が見ても分かるレベルで)
v0 → v1ImageNet データを HuggingFace から取得するように変更 / 64-tile マスク戦略の実装 / step ベース訓練(200,000 ステップ)に変更 / クラス条件付けを追加
v1 → v2論文指定の Dopri5 ODE ソルバ(torchdiffeq)に切替 / FID 評価コード追加 / Uncoupled モデルの分離 / ODE 関数のラッピング修正

結果が示すこと

  • v0 = 43.2%: 1 回生成だけで IterativeAgent o1-high の 20 本平均(43.4%)とほぼ同等。「初期生成は SOTA レベル」
  • v2 = 94.5%: 2 回反復で同じ論文に対し SOTA を超える
  • 反復改善ループは効くことの単一論文での実証 ✓
注意: 94.5% は最易論文(94 ノード)1 本の結果。SOTA の数字は 20 本平均なので公平な比較ではない。残課題は「他論文・他ドメインでも同じ伸びが見られるか」の検証。

§2 Self-Improving Agent — モデルを自動で改善し続ける

このコンポーネントは何か: 弱い CIFAR-10 分類モデルを与えると、Claude が train.py(訓練スクリプト)を自動で書き換えて再訓練し、精度を改善し続ける自己改善ループ。Karpathy の autoresearch を発展させ、失敗履歴の管理(NRR)と退行時の自動ロールバックを追加した最小実装。
具体的なタスク
CIFAR-10(32×32 ピクセル画像 10 クラス分類)で、わざと弱い CNN(テスト精度 65-70%)から始める。
人手の介入なしに train.py を自動で書き換えて、85%+ に伸ばすことを目指す。「止まらない研究エージェント」の最小プロトタイプ。

提案手法 — autoresearch + NRR + rollback

Karpathy の autoresearch(edit → execute → measure → evaluate のループ)は「動く」が、長く回すと同じ失敗方向を繰り返す傾向があります(LLM の弱点)。本コンポーネントは 3 つの拡張で対処:

  • NRR 統合: 失敗実験を構造化保存。新提案に対して proceed / caution / avoid を返し、avoid なら別方向を強制
  • 自動ロールバック: 精度が best から大きく退行したら、自動で best チェックポイントに戻す
  • 提案カテゴリの強制多様化: scheduler / regularization / architecture / optimizer / augmentation / other の 6 種類から偏らずに選ばせる

1 サイクルの流れ

  1. 現在の train.py で訓練(CPU で 1-3 分)→ CIFAR-10 テスト精度・損失を測定
  2. Claude が失敗分析: なぜこの精度なのか、どこを変えれば改善できそうか
  3. Claude が改善案を提案(カテゴリ + 具体的な diff)
  4. NRR が過去の類似失敗を照合: proceed / caution / avoid を返す。avoid なら別方向を Claude に再提案させる
  5. train.py を自動修正して再訓練
  6. 精度が best から大きく退行したら自動ロールバック。そうでなければ次サイクルへ
  7. 結果(精度・損失・提案内容・diff)を cycle-NNNN.json に記録

実処理の流れ — 1 サイクルで何が呼ばれるか

flowchart TD A["現在の train.py"] --> B["訓練 #40;CPU 1-3分#41;
CIFAR-10 でテスト精度測定"] B --> C{"精度 vs best"} C -->|"退行 #40;Δ大きく負#41;"| RB["best チェックポイントへ自動ロールバック"] C -->|"通常"| D["Claude
失敗分析 + 改善案生成
#40;6 カテゴリから1つ#41;"] D --> E["NRR check_proposal#40;#41;
過去の類似失敗を照合"] E --> F{"判定"} F -->|"avoid"| G["Claude に別方向を再提案させる"] G --> E F -->|"proceed / caution"| H["train.py を自動修正
#40;diff を適用#41;"] H --> I["再訓練"] I --> J["cycle-NNNN.json に記録
#40;精度・損失・diff・カテゴリ・信頼度#41;"] J --> A RB --> A style D fill:#fff8e1,stroke:#f9a825 style G fill:#fff8e1,stroke:#f9a825 style E fill:#f0f4ff,stroke:#0066cc
黄色 = Claude API、青 = NRR(自作の失敗 DB)。NRR が avoid を返したら強制的に別方向を提案させる仕組みが、LLM の偏りを抑える鍵。

実際に走った 5 サイクル(結果ページの数字に対応)

サイクル提案結果
1StepLR スケジューラ追加精度 0.6782(baseline)
2FC 層に dropout 追加0.6861(+0.008)
33 つ目の畳み込み層 + BatchNorm 追加0.6224(退行、より深く=より弱い)
4BatchNorm を GroupNorm に置換0.6957(best)
54 つ目の畳み込み層追加0.6416(退行、容量増やしすぎ)

結果が示すこと(工学的知見)

  • 毎サイクル改善するわけではない: 5 回中 2 回は退行。LLM が常に賢い提案をするわけではない
  • LLM の提案には偏りがある: 何度も同じ方向(深くする・容量増やす)を提案しがち。NRR が無いと延々と同方向で失敗を続ける
  • ロールバックが死活的: 退行を放置すると best が失われる。自動ロールバックがあれば「悪い試行は無害化」できる
「24/365 止まらないエージェント」のミニ版: いまは 5 サイクルで止めているが、原理的には永続ループ可能。CIFAR-10 を別タスク(PaperBench スコア改善 / 新手法提案)に置き換えれば、研究エージェントの土台になる。

§3 Reproduce Pipeline — arXiv URL から再現結果まで

このコンポーネントは何か: arXiv URL を 1 つ与えると、論文を解析 → コード取得・生成 → 環境構築 → 実行 → 数値検証までを自動でやる、5 ステージのパイプライン。人がやれば数時間〜1 日かかる作業を 3 分で完走する。
具体的なタスク
入力: arXiv URL(例: https://arxiv.org/abs/2310.03725
出力: 再現コード + 実行結果 + 「論文の数値と一致したか」の検証レポート。
人間の介入なしに完走することを目指す。

背景の問題意識

研究自動化の最大ボトルネックは 環境構築(成功率 < 7% / EnvBench)と 実行検証(end-to-end 数値一致 0% / PRBench)です。コード生成自体(PaperBench Code-Dev で 75% 程度)はかなり commoditize していますが、実際に動かして論文の数値が出るところは未解決の領域です。本コンポーネントはこのパイプライン全体を観測可能にし、どこで何が起きているかを分解します。

5 ステージの設計

  1. Paper Fetching(論文取得・解析) 〜15 秒
    arXiv API で PDF 取得 → Claude が方法論・claims(主張する数値)・hyperparameters を構造化抽出。なぜ Claude か: 構造化抽出は LLM が得意、ヒューリスティックパーサーより堅牢。
  2. Code Finding(コード取得・生成) 〜90 秒
    論文に公式 GitHub があればクローン、なければ Claude が論文記述から実装を生成。なぜ生成 fallback: 論文の 60-70% は公開コード無し or 部分的のため、生成パスが必要。
  3. Environment Building(環境構築) 〜0.3 秒
    Python venv 作成 + 依存解決。なぜ Docker 不採用: arXiv:2601.12811 が「Docker でも完全な再現性は保証されない」と示している。まず軽量な venv で進める。
  4. Experiment Execution(実験実行) 〜56 秒
    訓練スクリプトを実行、GPU/CPU 自動判定、stdout/stderr を構造化キャプチャ
  5. Result Verification(数値検証) <1 秒
    Claude が論文の Table/Figure から数値を抽出 → 実行結果の metrics と ±5% 許容で比較。一致しなければ理由を記録

実処理の流れ — 5 ステージそれぞれで何が起きるか

flowchart TD A["arXiv URL"] --> S1["Stage 1: Paper Fetching #40;~15s#41;"] S1 --> S1a["arXiv API で PDF 取得"] S1a --> S1b["Claude
論文から claims/hyperparams を構造化抽出"] S1b --> S2["Stage 2: Code Finding #40;~90s#41;"] S2 --> S2a{"公式 GitHub あり?"} S2a -->|"yes"| S2b["clone"] S2a -->|"no"| S2c["Claude
論文記述から一から生成"] S2b --> S3["Stage 3: Env Building #40;~0.3s#41;"] S2c --> S3 S3 --> S3a["venv 作成 + 依存解決"] S3a --> S4["Stage 4: Execution #40;~56s#41;"] S4 --> S4a["訓練/推論実行 + stdout/stderr キャプチャ"] S4a --> S5["Stage 5: Verification #40;<1s#41;"] S5 --> S5a["Claude
論文 Table から数値抽出 → 実行結果と ±5% 比較"] S5a --> R["再現スコア + claim 検証結果"] style S1b fill:#fff8e1,stroke:#f9a825 style S2c fill:#fff8e1,stroke:#f9a825 style S5a fill:#fff8e1,stroke:#f9a825
黄色 = Claude API が呼ばれる箇所。5 ステージのうち 3 箇所で Claude を使う(解析・生成・検証)。Stage 2 が時間の 56%(90 秒)を占める。

Stochastic Interpolants での実走 — 161 秒で完走

5 ステージ全て成功で、合計 161 秒。人手なら数時間の作業がエージェント単独で完了。ただし再現スコアは 0.5(後述)。

Code Finding が時間の 56% を占める理由

Stochastic Interpolants には公式 GitHub があるが、Claude による生成 fallback を選択したため、論文を読んで一からコードを書く時間(90 秒)が長くなった。公式コードをクローンする選択肢なら数秒で済む。これは設計上のトレードオフ(生成精度 vs 速度)。

結果が示すこと

  • 5 ステージ全て成功・合計 161 秒で完走 ✓
  • 再現スコア 0.5: 3 つの数値主張のうち untested(実行出力に該当 metric が無かった)が多かった
  • つまり 「動かすところまでは行った」が「数値完全一致は未達」。これは EnvBench / PRBench で示された業界全体のギャップと一致
  • 残課題: Stage 2(コード生成精度)は §1 PaperBench Iter で +51.3pp 改善できることを実証済み。Stage 5(数値抽出)は強化が必要
⚡ 続編: 0.5 という数字を放置せず、4 つのコード改善を入れて 5 論文で再測定しました。 → Reproduce Pipeline Deep Dive

§4 Literature Scout — 関連論文の自動発見

このコンポーネントは何か: 「自分の研究テーマに関連する論文を探したい」と思った瞬間に、クエリ + 進行中研究のコンテキストを渡すと 30〜60 秒で関連度ランクされた論文リストを返す CLI ツール。
具体的なタスク
入力例: "self-improving ML agents" --context "Building a system that autonomously improves model performance"
出力: 関連度(0.0〜1.0)+ 判断理由付きの論文カード(5〜10 件)
所要時間: 30〜60 秒

背景: push 型 vs pull 型の文献調査

本プロジェクトには既に Intel というpush 型の自動収集システムがあり、5 つのコレクターが日次で 200+ 件の論文・ブログを収集しています。これは「毎日勝手に入ってくる」ストリーム型。

一方 Literature Scout は pull 型: 「いま、この瞬間に、このトピックを深掘りたい」というオンデマンドの問いに応える道具。両者を使い分けます。

動作の流れ

  1. ユーザーが自然言語クエリ + 任意の --context(進行中研究の説明)を入力
  2. arXiv API と Semantic Scholar API を並列呼出(同じクエリでも取れる論文集合が大きく異なるため、両方叩く)
  3. 各論文の title + abstract を Claude に渡す
  4. Claude が --context に対する関連度(0.0〜1.0)+ 判断理由を出力
  5. 関連度でソート、上位 N 件を CLI 出力

実処理の流れ — クエリから論文カードまで

flowchart TD Q["ユーザー入力
クエリ + --context"] --> P1["arXiv API
キーワード検索"] Q --> P2["Semantic Scholar API
意味検索"] P1 --> M["重複除去 + マージ"] P2 --> M M --> CL["Claude
各論文の title+abstract を読み
--context に対する関連度+理由を出力"] CL --> R["関連度ソート"] R --> O["上位 N 件の論文カード
#40;関連度 + 判断理由 + arxiv_id#41;"] style CL fill:#fff8e1,stroke:#f9a825 style P1 fill:#f0f4ff,stroke:#0066cc style P2 fill:#f0f4ff,stroke:#0066cc
黄色 = Claude API、青 = 外部 API。各論文の関連度判定で 論文数だけ Claude が呼ばれる(5 件なら 5 回)。30〜60 秒で完了。

なぜ 2 ソース並列か

arXiv は preprint(査読前)中心で機械学習の最新動向に強い。Semantic Scholar は引用ネットワークと意味検索が強く、「同じトピックで似た論文」を取りやすい。同じクエリで取れる論文集合が大きく異なるので、両方叩いて重複除去するのが取りこぼしを最小化する設計です。

Claude による関連度判定が効く理由

title + abstract のキーワードマッチだけでは「関連あり」と「真に役立つ」の区別が難しい。--context として「ML 実験を自律実行して精度改善するシステムを作っている」のような文脈を Claude に渡すと、「この研究文脈で読む価値があるか」を判定してくれます。判断理由(reasoning)も同時に出るので、なぜ関連と判定したかが透明です。

結果が示すこと

  • 30〜60 秒で関連論文リストが返る(API 呼び出し + Claude 分析の合計)
  • Intel(push)と Scout(pull)の使い分けで「毎日勝手に入ってくる」+「気になった瞬間に深掘れる」が両立
  • 残課題: 関連度判定の精度評価、autoresearch の program.md(次に試すべき手法リスト)への自動追記との連携
注意: 本ショーケースのライブ取得は、arXiv が rate limit(429)を返し、Semantic Scholar が一時的に 0 件返却で当面動かない状態。代表的な擬似サンプル出力を 結果ページ §4 に表示しています。

§5 4 コンポーネントの関係 — 個別と統合

4 つはそれぞれ単独で動く独立した CLI ツールですが、組み合わせると研究の end-to-end ループになります。

シナリオ別の使い分け

やりたいこと使うコンポーネント
新トピックの論文を探したい① Literature Scout
気になる論文を再現したい② Reproduce Pipeline
再現コードを SOTA レベルに引き上げたい③ PaperBench Iter
新しいモデル / ハイパラを自動で探させたい④ Self-Improving Agent
上記を全部つなげて止まらない研究エージェントにしたい4 つを統合運用(最終形)

統合運用 — 4 コンポーネントが end-to-end でどう繋がるか

flowchart TD H["人間: 研究テーマを設定
例: self-improving ML agents"] --> LS["① Literature Scout
関連論文リスト #40;5-10件#41;"] LS --> SEL["人間 or Claude が 1 本選ぶ"] SEL --> RP["② Reproduce Pipeline
arXiv URL → 5 ステージ #40;~3分#41;"] RP --> RPout["再現コード v0 + 実行結果
+ 再現スコア"] RPout --> CHECK{"スコア許容?"} CHECK -->|"低い"| PB["③ PaperBench Iter
反復改善ループ"] PB --> PBout["改善コード v1, v2..
#40;43% → 67% → 94%#41;"] PBout --> SI CHECK -->|"OK"| SI["④ Self-Improving Agent
ハイパラ/アーキテクチャ自動探索
#40;NRR + rollback#41;"] SI --> NEW["新しい知見
#40;改善された train.py +
失敗パターン蓄積#41;"] NEW --> KNOW["知見ストア #40;NRR + claims#41;"] KNOW -.->|"次の探索を方向づける"| LS style LS fill:#e3f2fd,stroke:#1976d2 style RP fill:#e3f2fd,stroke:#1976d2 style PB fill:#e3f2fd,stroke:#1976d2 style SI fill:#e3f2fd,stroke:#1976d2 style KNOW fill:#fff8e1,stroke:#f9a825
青いボックス = 4 コンポーネント。点線矢印 = 蓄積した失敗パターンが次の文献探索を方向づけるフィードバックループ。これが回り続けると「24/365 止まらない研究エージェント」になる。

同じことを別の見方で(時間軸)

  1. Literature Scout が「今日の関連論文 5 本」を返す(30 秒)
  2. 選択 1 本を選ぶ(人間 or 自動)
  3. 3 分後 Reproduce Pipeline が再現完了。Stage 2 のコードと再現スコアが出る
  4. 15 分後 PaperBench Iter で 2 反復まわす。スコアが 43% → 67% → 94% と上がる
  5. 1 時間後 Self-Improving Agent が改善された train.py を走らせ、ハイパラ自動探索を開始
  6. 翌朝 新しい知見(改善版モデル + 失敗パターン)が NRR に蓄積される。次の Literature Scout がこれを参考に次の論文探索を方向づける
現状: ②③④ は単独運用で動作確認済み。①②③④ を完全に自動連結して 24/365 で回す統合運用は次の段階。Self-Improving Agent の対象タスクを「PaperBench スコア改善」に置き換えれば原理的に可能。

残された大きな課題(AutoRes グループとして取り組みたい領域)

  • 環境構築の堅牢化: 業界全体で 7% 未満の成功率。最大のボトルネック。Docker や仮想化を超えた解が必要
  • 数値結果の検証強化: PRBench end-to-end は 0%。論文の Table/Figure から正確に数値を取り出し、実行出力と比較する仕組みが弱い
  • 暗黙知の補完: 論文に書かれない関係的・身体的・集団的知識(コード作者と話さないと分からない細部)
  • 長時間運用の安定性: 24/365 ループのメモリ管理、コスト管理、ドリフト検出

これらは AutoRes グループとして次の 12〜18 ヶ月で取り組むべき領域です。各コンポーネントを個別に磨きつつ、統合運用への橋渡しを進めていきたいと考えています。

§6 並行実験のセットアップ — agent に同じ問題を解かせる

何をするセクションか

§3 Reproduce Pipeline の続編 (Deep Dive) で、 「Reproduce Pipeline を強くする」というタスクを 人間 + Claude の手作業自律研究エージェント (ARA) 2 系列に並列で投げ、結果を比較しました。 このセクションでは、その実験をどう setup したかを説明します。 方法論として「agent に研究タスクを並行で投げる」フローを再利用可能にするのが目的です。

登場する 3 つのリポジトリ

autonomous-research-agent (ARA) 自律研究エージェント本体。scripts/sustainer.sh が Researcher → Evaluator → Reviewer → Improver の 4 phase を 1 cycle として回す。 charter (research-charter.md) で「AI 研究自動化の自動化」を明示しているので、メタな自己改善タスクに向く。
research-prime ARA + AI-Research-SKILLs (Orchestra) を融合したスキル集約リポ。Phase α で autonomous runner はまだ無いが、 skills/ 以下に 123 件の SKILL.md を持つ (ARA 16 + Orchestra 95 + 新規 12)。 本実験では「skills だけ拝借して ARA harness で回す」という使い方をした。
autores/reproduce 本日のタスク対象。§3 で説明した 5 stage の Reproduce Pipeline。 ARA からは 読み取りのみ、改善案は ARA project 内 experiments/ に閉じる。

セットアップフロー (Mermaid)

graph TB Q["Research Question:
PaperBench Code-Dev で
hierarchical_score を上げる"] Q --> SCAFFOLD["scripts/new-research.sh
(ARA 標準の scaffold)"] SCAFFOLD --> A_DIR["runs/2026-04-30-reproduce-automation-ara/
.claude/skills = 15 (ARA 同梱)"] SCAFFOLD --> P_DIR["runs/2026-04-30-reproduce-automation-prime/
.claude/skills = ?"] P_DIR -->|"rsync research-prime/skills/"| P_DIR2[".claude/skills = 123
(ARA 16 + Orchestra 95 + new 12)"] A_DIR --> A_RUN["sustainer.sh --loop 2
tmux ara-reproduce-a"] P_DIR2 --> P_WRAP["sustainer-no-infra-update.sh
(skills を rsync --delete で
wipe しないため sed wrapper)"] P_WRAP --> P_RUN["sustainer.sh --loop 2
tmux ara-reproduce-p"] A_RUN --> A_OUT["claims, ledger,
experiments, reports"] P_RUN --> P_OUT["claims, ledger,
experiments, reports"] classDef question fill:#fff8e1,stroke:#f9a825,stroke-width:2px; classDef scaffold fill:#f0f4ff,stroke:#0066cc; classDef run fill:#f0fff4,stroke:#0066cc; classDef out fill:#e3f2fd,stroke:#1976d2; class Q question class SCAFFOLD,A_DIR,P_DIR,P_DIR2,P_WRAP scaffold class A_RUN,P_RUN run class A_OUT,P_OUT out
3 主体並列実験のセットアップ。ARA scaffold (左下) と research-prime skill 注入 (右下) で skill の数だけが違う 2 つの ARA project を作り、tmux で並列実行する。

「ペッコ (project copy isolation)」 — 元 repo を汚さない

ARA の scripts/new-research.sh は、研究テーマごとに runs/<name>/ という独立 dir を作り、.claude/ (skills, hooks, agents, settings)、 research-workspace/pyproject.toml、独立 git を完全コピーします。元の ARA repo は変更されません。 これによって複数の研究プロジェクトを並列で動かしても、互いの skill 検証や ledger を汚染し合わない仕組みになっています。

4 phase ループ (sustainer)

  1. Researcher — research-question.md と前 session の current-focus.md を読み、 文献調査・仮説生成・実装・検証の 1 ターンを回す。Belief Store に Claim を起票し、Ledger に試行記録を残す。
  2. Evaluator — Researcher の Claim と Ledger を読み直し、誇張・未検証・mock を flag。 findings-registry.md を更新。これが「agent が自分の主張を盛らない」内蔵ガード。
  3. Reviewer — Evaluator の findings に基づき、次 session の優先タスクを current-focus.md に固定。
  4. Improver — systematic な問題があれば ARA 自体のコード/skill を修正提案。 改善 PR は git stash + commit で記録、cohesion 検証後に採択。

--loop 2 指定で 2 cycle 連続実行 = 8 phase。 主体 B は完走、主体 C は cycle 1 の Reviewer に進む前で harness 早期 exit (set -e 周辺の未調査バグ)。 これは ARA harness 自体の改善ネタ (= 主体 C が cycle 2 で取り組むはずだった項目)。

結果の比較は Deep Dive §4

methods.html では セットアップ までを説明します。 定量結果と「人間 +3.6pt / バグ 0 件」 vs 「agent +24.3pp / バグ 4 件」の比較、 ARA が見つけた既存バグ 4 件、H4 仮説の per-node breakdown、failure taxonomy 4 クラスタ、 CLIIntrospector の F2 実証例、Self-Evaluator の自己校正は、 すべて Reproduce Deep Dive の §4 に収めています。