Claude Opus 4.6 科学計算のための長時間実行エージェントワークフロー

TL;DR

Anthropic は、Claude Opus 4.6 を HPC クラスタ上で長時間実行される自律型コーディングエージェントとして動作させ、数日間で微分可能な宇宙論的ボルツマンソルバーを完成させ、CLASS リファレンス実装に対してサブパーセント精度を達成するワークフローを公開しました。これは、エージェントによるコード生成が、明確にスコープされた科学タスクにおいて、数か月分の専門家の労力を数日に圧縮できることを示しています。


自律エージェントが科学コードで機能する理由

結論: LLMの長期的推論の最近の改善により、エージェントは最小限の人間の監督で動作し、高レベルの目標を実行可能な研究プログラムに変換できるようになりました。

科学者は伝統的に、AIエージェントを段階的に導いてきました。モデルが長期的なタスクで大幅に向上するにつれて(時間的視野に関するMetrの研究を参照)、新しいパラダイムが出現します:目標を指定し、エージェントのチームを起動し、自律的に反復させるというものです。明確に範囲が定められ、成功基準が明確で、時折の人間によるチェックを許容するタスク(数値ソルバーの再実装やレガシーFortranの移植など)は、このモデルに適合します。

Anthropicの以前のCコンパイラプロジェクトは、このアプローチを大規模に実証しました(約2,000のClaudeセッションでLinuxカーネル対応コンパイラを構築)。今回の作業は、単一の順次エージェントとサブエージェントが密結合パイプラインを処理できる科学計算向けにこのパターンを適応させたものです。


プロジェクト概要:微分可能ボルツマンソルバー

結論: Claude Opus 4.6 は、宇宙論的ボルツマンソルバーのJAXベースの微分可能バージョンの作成を任され、CLASSリファレンスとの差が1%未満を達成しました。

対象コードは、光子、バリオン、ニュートリノ、暗黒物質の結合方程式を発展させて宇宙マイクロ波背景放射(CMB)パワースペクトルを予測します。微分可能な実装により勾配ベースの推論が可能になり、PlanckやSimons Observatoryなどのサーベイにおけるパラメータ推定が劇的に高速化されます。

要点:

  • 著者であるSiddharth Mishra-Sharma氏はこの分野の専門家ではなく、最小限の誘導でエージェントが成功できるかをテストすることが目的でした。
  • JAXにおける既存の微分可能ソルバーは、数か月から数年の専門家の労力を要し、CLASSの機能の一部しかカバーしていませんでした。
  • 成功指標は、主要な科学的出力においてCLASSとの一致度が0.1%であり、典型的なCLASS–CAMBの一致度に相当します。

計画と指示の設計(CLAUDE.md)

結論: 成果物、設計上の決定、および変更可能なルールをコード化した、適切に作成されたCLAUDE.mdファイルが、エージェントの中心的な調整成果物です。

  1. 高レベルの目標 – CLASSとの完全な機能同等性を達成し、完全に微分可能であり、0.1%の精度目標を満たすこと。
  2. 反復的な改良 – 研究者は計画が安定するまでClaudeと反復作業を行います。Claudeは実行中にCLAUDE.mdを編集して新しい知見を取り込むことができます。
  3. 場所 – CLAUDE.mdはリポジトリのルートに置かれ、Claude Codeによって特別に扱われ、セッション中ずっとコンテキストに保持されます。

プロジェクトの公開CLAUDE.mdはGitHubで入手できます(リンク先のファイルを参照)。これは、計画が初期スケッチから詳細なロードマップへとどのように進化するかを示しています。


永続メモリ: CHANGELOG.md ファイル

結論: 構造化された進捗ファイル(CHANGELOG.md)がエージェントの長期記憶として機能し、繰り返される行き詰まりを防ぎ、精度のマイルストーンを記録します。

Claude には以下を記録するよう指示されました:

  • 現在のステータスと完了したタスク
  • 失敗したアプローチとその説明(例:「Tsit5 ODE が硬すぎる → Kvaerno5 に切り替え」)
  • 主要なチェックポイントでの精度テーブル
  • 既知の制限事項

チェンジログは公開されており、他の研究者が監査できるラボノート形式の履歴を示しています。


テストオラクルと回帰安全性

結論: 信頼できるテストオラクル(ここではCLASSのCソース)が、エージェントに進捗を測定し回帰を回避するための客観的なシグナルを提供します。

Claudeに課されたタスク:

  • JAX実装をCLASS出力と比較するユニットテストを生成する。
  • 各コード変更後にテストスイートを継続的に実行する。
  • 時間の経過とともにテストカバレッジを拡大する(最初は単一の基準パラメータ点、後により広いグリッド)。

このオラクルにより、自律ループはオープンエンドな科学的発見に頼るのではなく、定量化可能な成功指標を持つことが保証されます。


Gitベースの調整

結論: エージェントに意味のある作業単位ごとにコミットを要求することで、回復可能で監査可能な履歴が作成され、エージェントはテストスイートを常にパスさせることを強いられます。

CLAUDE.md 内の典型的な指示スニペット:

意味のある作業単位ごとにコミットしてプッシュする。
各コミットの前に `pytest tests/ -x -q` を実行する。
既存の合格テストを壊すコードをコミットしない。

Git 履歴は、進捗ダッシュボードと、計算割り当てが予期せず終了した場合の安全網を兼ねます。


HPC 上での実行ループ(SLURM + tmux)

結論: SLURM で割り当てられたノード上の tmux セッション内で Claude Code を実行することで、完全に手を離した実行が可能になり、研究者はデタッチして断続的に進捗を確認できます。

ワークフローの手順:

  1. ローカルで CLAUDE.md を下書きし、確定する。
  2. tmux 内で Claude Code を起動する SLURM ジョブを提出する。
  3. tmux にアタッチし、初期指示(例:「CHANGELOG.md を読んで次のタスクを選べ」)を与えてからデタッチする。
  4. 必要に応じて再アタッチし、方向修正やログ確認を行う。

この投稿にはサンプルの SLURM スクリプトが含まれています(ここでは省略)。また、研究者が列に並んで待っている間にスマートフォンから進捗を監視した様子も示されています。


Ralph ループ:エージェントの怠慢への対策

結論: Ralph ループはエージェントに完了確認を繰り返し促すことで、長時間実行タスクの早期終了を防ぎます。

実装の詳細:

  • Claude Code の /plugin で Ralph プラグインをインストールします。
  • 最大反復回数(例: 20)と「DONE」終了トークンを指定して /loop を呼び出します。
  • ループは各反復後に、タスクが仕様を本当に満たしているかエージェントに尋ね、満たしていなければエージェントは続行します。

このパターンは、モデルがさらなる作業を避けるために完了したと主張する「エージェントの怠惰」現象を軽減します。


結果:精度の推移と実践的観察

結論: Claude は数日以内に CMB 角度パワースペクトル全体で CLASS とのサブパーセント一致を達成しましたが、ソルバーはまだ本番運用には耐えられません。

  • 精度: プロットは誤差の着実な減少を示し、数回の反復後に < 1 % に達しました。
  • テストカバレッジのギャップ: 初期段階では単一の基準パラメータ点のみをテストしており、バグ検出が制限されていました。
  • 初歩的なミス: エージェントはゲージの取り決めを誤って扱うことがあり、専門家なら即座に見抜ける行き止まりのバグを追いかけました。
  • 学習の副次効果: 研究者はコミットログを読むことでかなりの専門知識を得ました。そのログは、勤勉なポスドクのラボノートのように読めました。

最終的なソルバーはすべてのレジームの精度要件を満たすわけではありませんが、この実験は、明確に定義された科学ソフトウェアタスクにおいて、自律エージェントが数か月分の専門家の作業を数日に圧縮できることを検証しています。


科学研究ワークフローへの影響

結論: 計算リソースが利用可能な場合、エージェントを一晩実行させておくことで測定可能な進捗が生まれ、アイドル状態の計算時間を生産的な研究に変えることができます。

この実験は、科学者が時間を割り当てる方法の変化を示唆しています:

  • アイドルエージェントの機会費用 – 自律セッションを開始しないことは、トレーニングジョブを実行しないことに類似しており、進歩の損失を意味します。
  • スケーラビリティ – このパターンは、明確な参照実装と定量化可能な成功指標を持つ他の領域(例:数値PDEソルバー、データパイプラインの移行)にも適用できます。
  • 人間の役割 – 研究者は、ステップバイステップのコーディングから、ハイレベルなオーケストレーション、計画の洗練、結果の解釈へと移行します。

再現のためのチェックリスト

結論: 以下のチェックリストは、長時間実行するClaude Codeプロジェクトを運用するために必要な必須コンポーネントを示しています。

  1. 高レベルの目標を定義する – CLAUDE.md ファイルに記述します。
  2. 永続メモリを設定する – CHANGELOG.md の進捗ログを使用します。
  3. テストオラクルを作成する(参照実装または定量的メトリクス)。
  4. Gitフックを設定して、コミットとテストの規律を強制します。
  5. HPC環境を準備する(SLURM、tmux、Claude Codeバイナリ)。
  6. Ralphプラグインをインストールし、/loopの終了条件を設定します。
  7. ジョブを起動し、デタッチして、Gitまたは時折のSSHで監視します。

これらの手順に従うことで、Anthropicが実証した自律開発パイプラインを再現できます。


完全なコード、チェンジログ、およびCLAUDE.mdファイルは、プロジェクトのGitHubリポジトリで公開されています。

Sources