beita6969/ScienceClaw

Verifiable program-level self-evolution for AI-for-Science agents: Skills and typed Operators grow from replay-verified executions.

ScienceClaw – 用于科学工作的自我演化 AI 代理

它是什么 – ScienceClaw 是一个开源框架,让语言模型驱动的代理能够从其自身的验证执行中学习。当代理修复科学工作流程且该修复可以在干净环境中重现时,系统会提取两样东西:

  • 一个 Skill(用于解决问题的高阶策略),以及
  • 一个 Operator(一个类型化、可重复使用的可执行代码片段)。 两者会一起存储为代理程序的一个版本化更新。只有在通过重现检查并且在独立验证任务上提升性能时,才会保留该更新。

🚀 快速开始 (来自 README)

# Clone 并执行一键安装程序
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)。完整安装会下载约 19 GB 的预训练权重,但您可以跳过它们(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. 类型化工作流程图 – 代理建立一个有向图,其中每个节点是一个工具或代码片段,每条边带有一个 schema (type, shape, unit, provenance)。节点会被指纹化,因此编辑后只有受影响的子图会被重新执行。
  3. 重现网关验证 – 在候选修复后,整个图会从干净环境中重新执行。如果重现成功且结果符合所有限制,则该修复即为证据。
  4. Skill-Operator 提取 – 编辑会被拆分:
    • Skill patch – 高阶规划变更(例如,“新增数据清理步骤”)。
    • Operator – 新增或修改的具体可执行组件,每个组件都有明确的输入/输出合约。
  5. 网关 – 候选项目仅在以下情况下保留:
    • 来源重现成功重现了修复且新组件确实被使用,
    • 独立验证任务在预算内显示严格改进,
    • 满足噪声防护(≥2 次改进,≤1 次回归验证执行)。 如果任何检查失败,现有程序将保持不变。
  6. 版本控制 – 被接受的更新成为代理程序的新快照。快照可以通过 CLI 进行推广、检查或复原。

📊 论文报告的结果

  • 23 个学科(自然科学与社会科学),每个学科评估 64 个分布内 (IID) 和 64 个分布外 (OOD) 实例。
  • 相较于冻结基准代理的 平均 OOD 增益:+16.45 %(范围 +11.57 % 至 +23.34 %)。
  • 在七轮演化后,OOD 宏观成功率从 77.72 % 上升至 91.30 % (+13.59 pp)。
  • 严格限制通过率: 98.23 % 的实例。
  • 推广选择性: 161 个候选项目中 70 个 (43.5 %) 被接受;网关具有选择性,但仍允许稳定改进。
  • 消融研究显示,链接的 Skill-Operator 机制和重现验证网关是性能的主要贡献者。

🔌 使用 OpenClaw 网关使用 ScienceClaw

在 ~/.openclaw/openclaw.json 中启用插件。将提供四个新工具:

工具 操作
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   # 每轮一次编辑,反馈是类型化的

# 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)。

总结

ScienceClaw 是一个真实的、研究级系统,让基于 LLM 的科学代理能够通过将重现验证过的修复转化为可重复使用的、类型化的组件来持续改进。它提供完整的 CLI、网关插件和涵盖数十个科学领域的基准测试套件,作者报告在不更改底层语言模型的情况下,获得了持续的分布外增益。

相关

  • 项目
  • 项目
  • 项目
  • 项目