beita6969/ScienceClaw
Verifiable program-level self-evolution for AI-for-Science agents: Skills and typed Operators grow from replay-verified executions.
ScienceClaw – 科学研究のための自己進化型AIエージェント
概要 – ScienceClawは、言語モデル駆動型エージェントが自身の検証済み実行から学習できるようにするオープンソースフレームワークです。エージェントが科学ワークフローを修復し、その修復がクリーンな環境で*再実行(リプレイ)*可能な場合、システムは以下の2つを抽出します。
- Skill(問題を解決するために使用された高レベルの戦略)
- Operator(型付きで再利用可能な実行可能コードの断片) これらは両方とも、エージェントのプログラムに対するバージョン管理された更新として一緒に保存されます。この更新は、再現チェックに合格し、かつ独立した検証タスクでパフォーマンスが向上した場合にのみ保持されます。
🚀 クイックスタート (READMEより)
# クローンしてワンクリックインストーラーを実行
git clone https://github.com/beita6969/ScienceClaw.git
cd ScienceClaw
chmod +x setup.sh && ./setup.sh # Node, Python, 重みデータ, MCPサーバーなどをインストール
手動インストールを希望する場合は、pnpm/pipと提供されているCLIコマンド(scienceclaw.cli setup, doctor)を使用できます。フルインストールでは約19GBの事前学習済み重みデータがダウンロードされますが、スキップすることも可能です(SCIENCECLAW_SKIP_TOOLS=1)。
モデルの持ち込み – エンジンには特定のLLMは同梱されていません。OpenAI互換のエンドポイントやローカルの実行可能ファイルを指定してください:
export SCIENCECLAW_API_BASE_URL=<your endpoint>
export SCIENCECLAW_API_KEY=<your key>
export SCIENCECLAW_MODEL=<model name>
設定ファイル packages/scienceclaw/configs/default.yaml を使用して、バックエンドをコマンドラインプログラムやPythonファクトリに変更できます。
🧠 仕組み (高レベル)
- タスク定義 – タスクは、入力、目的、一連の厳格な科学的制約(単位、実現可能性、再現性など)、および検証プロトコルを提供します。
- 型付きワークフローグラフ – エージェントは、各ノードがツールまたはコードスニペットであり、各エッジがスキーマ
(type, shape, unit, provenance)を持つ有向グラフを構築します。ノードにはフィンガープリントが付与されるため、編集後には影響を受けるサブグラフのみが再実行されます。 - リプレイゲートによる検証 – 候補となる修復の後、グラフ全体がクリーンな環境から再実行されます。再現が成功し、結果がすべての制約を満たしている場合、その修復は証拠となります。
- Skill-Operatorの抽出 – 編集内容は以下のように分割されます:
- Skillパッチ – 高レベルな計画の変更(例:「データクリーニングステップを追加」)。
- Operator – 追加または変更された具体的な実行可能コンポーネント。それぞれに明示的な入出力コントラクトがあります。
- ゲート – 候補は以下の場合にのみ永続化されます:
- ソースの再現が修復を正しく再現し、かつ新しいコンポーネントが実際に使用されていること
- 独立した検証タスクで予算内に厳密な改善が見られること
- ノイズガード(≥2回の改善、≤1回の回帰検証実行)が満たされていること チェックに失敗した場合、既存のプログラムは変更されません。
- バージョン管理 – 承認された更新は、エージェントのプログラムの新しいスナップショットとなります。スナップショットはCLIを通じて昇格、検査、またはロールバックが可能です。
📊 論文で報告された結果
- 23分野(自然科学および社会科学)において、それぞれ64の分布内(IID)および64の分布外(OOD)インスタンスで評価。
- 固定されたベースラインエージェントに対する平均OODゲイン:+16.45%(範囲 +11.57% ~ +23.34%)。
- 7回の進化ラウンド後、OODマクロ成功率が 77.72% から 91.30% に上昇(+13.59pp)。
- 厳格な制約の通過率: インスタンスの98.23%。
- 昇格の選択性: 161の候補のうち70(43.5%)が承認されました。ゲートは選択的ですが、着実な改善を可能にします。
- アブレーション研究により、リンクされたSkill-Operatorメカニズムとリプレイ検証ゲートがパフォーマンスの主な要因であることが示されています。
🔌 OpenClawゲートウェイからScienceClawを使用する
~/.openclaw/openclaw.json でプラグインを有効にします。4つの新しいツールが利用可能になります:
| ツール | 操作 |
|---|---|
scienceclaw_canvas |
open, act, render, replay, finish, status, list |
scienceclaw_tools |
search, show, status, weights, setup |
scienceclaw_program |
summary, skills, operators, show, history, rollback |
scienceclaw_evolve |
val_add, val_list, val_remove, propose, gate, run, status, candidates, show |
典型的なワークフロー(CLIの例):
# 1. タスクを宣言
scienceclaw_canvas open '{"objective":"predict temperature","inputs":{...},"constraints":{...}}'
# 2. エージェントにワークフローを構築/修復させる
scienceclaw_canvas act # 1ラウンドにつき1編集、フィードバックは型付き
# 3. 結果を検証
scienceclaw_canvas replay
scienceclaw_canvas finish # 検証済みの成果物を返す
# 4. 進化候補を提案
scienceclaw_evolve val_add <validation-task>
scienceclaw_evolve propose # Skill+Operatorを抽出
scienceclaw_evolve gate # リプレイ + 検証ゲートを実行
# 5. 気に入れば昇格
scienceclaw_cli live promote <candidate-id>
プログラムによる制御のためにJSON-RPCサーバー(python -m scienceclaw.rpc)も提供されています。
🛡️ 安全性とガバナンス
- 実行可能ノードは、静的スキャンと実行時監査ガードを備えたサンドボックスコンテナ内で実行されます。
- 再現の証拠、検証による改善、予算の遵守なしに更新が永続化されることはありません。
- すべての昇格は手動でバージョン管理されます。以前のスナップショットにいつでもロールバック可能です。
📦 リポジトリの内容
packages/scienceclaw/– コアPythonライブラリ、CLI、RPCサーバー。skills/– 300以上の事前作成済みスキル。初期シードには12の汎用スキルと、分野固有のスキル(scienceclaw-benchmark-for30…for52)が含まれます。extensions/scienceclaw/– OpenClawゲートウェイ統合。- ベンチマークデータはHugging Face(
scienceclaw-eval)で個別にホストされています。 - 設計の詳細は
packages/scienceclaw/docs/DESIGN.mdおよび付属の論文(arXiv 2610.08691)に記載されています。
TL;DR
ScienceClawは、LLMベースの科学エージェントが再現検証済みの修正を再利用可能な型付きコンポーネントに変えることで継続的に改善できる、実用的な研究グレードのシステムです。完全なCLI、ゲートウェイプラグイン、数十の科学分野をカバーするベンチマークスイートを提供しており、基盤となる言語モデルを変更することなく、一貫した分布外(OOD)性能の向上が報告されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト