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ファクトリに変更できます。


🧠 仕組み (高レベル)

  1. タスク定義 – タスクは、入力、目的、一連の厳格な科学的制約(単位、実現可能性、再現性など)、および検証プロトコルを提供します。
  2. 型付きワークフローグラフ – エージェントは、各ノードがツールまたはコードスニペットであり、各エッジがスキーマ (type, shape, unit, provenance) を持つ有向グラフを構築します。ノードにはフィンガープリントが付与されるため、編集後には影響を受けるサブグラフのみが再実行されます。
  3. リプレイゲートによる検証 – 候補となる修復の後、グラフ全体がクリーンな環境から再実行されます。再現が成功し、結果がすべての制約を満たしている場合、その修復は証拠となります。
  4. Skill-Operatorの抽出 – 編集内容は以下のように分割されます:
    • Skillパッチ – 高レベルな計画の変更(例:「データクリーニングステップを追加」)。
    • Operator – 追加または変更された具体的な実行可能コンポーネント。それぞれに明示的な入出力コントラクトがあります。
  5. ゲート – 候補は以下の場合にのみ永続化されます:
    • ソースの再現が修復を正しく再現し、かつ新しいコンポーネントが実際に使用されていること
    • 独立した検証タスクで予算内に厳密な改善が見られること
    • ノイズガード(≥2回の改善、≤1回の回帰検証実行)が満たされていること チェックに失敗した場合、既存のプログラムは変更されません。
  6. バージョン管理 – 承認された更新は、エージェントのプログラムの新しいスナップショットとなります。スナップショットは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)性能の向上が報告されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト