研究提案

技能图谱驱动的科学数据合成提案

SkillNet + ClawHub 融合的 Skill-Aware 科学数据构建框架 V2

SkillNet 数据合成 技能图谱

SkillGraph-Driven Science Data Synthesis Proposal (V2)

Skill-Aware Benchmark & Training Data Construction for Scientific LLMs via Skill Graph Ontology and Agent Skill Ecosystems

V2 更新:在 V1 四套方案基础上,融合 OpenKG SkillNet(技能图谱知识库)和 ClawHub/OpenClaw(Agent 技能注册表生态)两大体系,新增「方案五:技能图谱驱动法」和「方案六:Agent Skill 生态复用法」,并重构混合方案为统一的 Skill-Aware 数据构建框架。

目标:基于已有的全网网页、书籍和代码数据,构建用于 LLM 训练的科学领域任务数据集,对标 Terminal-Bench-Science 的结构与质量。


一、三大参考体系总览

1.1 Terminal-Bench-Science:任务结构与质量标杆

斯坦福 & Laude Institute 出品的科学 Agent Benchmark,核心特征:

维度描述
任务形态Docker 容器内的终端科学计算任务
覆盖领域生命科学、物理科学、地球科学(10 个子领域)
质量体系21 维评分标准(可验证/新颖/反作弊/Agent 性等)
数据结构instruction.md + task.toml + Dockerfile + solve.sh + test.py
tasks/<task-domain>/<task-field>/<task-name>/
├── instruction.md          # 任务描述(人工编写,绝对路径,无解法提示)
├── task.toml               # 元数据(难度、领域、超时、资源限制)
├── environment/
│   ├── Dockerfile          # 可复现的容器环境
│   └── data/               # 输入数据文件
├── solution/
│   ├── solve.sh            # 参考解决方案(真实计算过程)
│   └── solve.py            # Python 求解脚本
└── tests/
    ├── test.sh             # 测试入口
    └── test.py             # Pytest 验证(结果导向,非过程)

1.2 OpenKG SkillNet:技能图谱作为任务生成的”骨架”

OpenKG 于 2026 年 2 月发布的大规模智能体「技能图谱」知识库,核心理念:

维度描述
定位将隐含于专家经验中的过程性知识与策略性决策,转化为可显式建模、可复用、可组合的能力结构
科学覆盖从文献检索、假设生成、实验设计到结果分析与失败归因的完整科研流程
核心属性Skill = 可执行 + 可衡量 + 可复用 + 可组合 + 可演化
设计哲学”知技·善任”——基于既有能力库高效组合与灵活迁移,摆脱从零试错
生态连接OpenKG SIGAgent、OpenMem(记忆增强)、OpenJiuwen(华为具身智能体)、OpenBMB(面壁数据治理)

SkillNet 的科学技能层次结构(推断):

科学研究技能图谱
├── 元技能(Meta Skills)
│   ├── 文献检索 (Literature Retrieval)
│   ├── 假设生成 (Hypothesis Generation)
│   ├── 实验设计 (Experimental Design)
│   ├── 结果分析 (Result Analysis)
│   └── 失败归因 (Failure Attribution)
│
├── 领域技能(Domain Skills)
│   ├── 生命科学技能簇
│   │   ├── 序列比对、基因注释、表达定量 ...
│   │   └── 蛋白质结构预测、分子对接 ...
│   ├── 物理科学技能簇
│   │   ├── 数值求解 PDE、量子化学计算 ...
│   │   └── 光谱分析、粒子模拟 ...
│   └── 地球科学技能簇
│       ├── 气候数据处理、遥感图像分类 ...
│       └── 地震波分析、洋流建模 ...
│
└── 工具技能(Tool Skills)
    ├── Python 科学栈 (numpy/scipy/pandas/matplotlib)
    ├── 领域专用库 (biopython/rdkit/astropy/xarray)
    ├── 计算框架 (pytorch/tensorflow/jax)
    └── 系统工具 (bash/docker/git/make)

对数据构建的启示:SkillNet 提供了一个自上而下的任务生成骨架——先定义科研流程中需要哪些技能,再根据技能组合生成具体任务,确保任务覆盖的系统性和科研流程的完整性。

1.3 ClawHub/OpenClaw:Agent Skill 的工业级生态

ClawHub 是 OpenClaw(GitHub 22 万+ Star 的开源 AI 助手)的公共技能注册表,核心特征:

维度描述
规模5,490+ 社区构建的 Agent Skills(过滤后)
Skill 格式以文件夹为单位,核心为 SKILL.md(YAML 元数据 + Markdown 描述)
核心字段name / description / when-to-use / how-to-use / edge-cases
搜索机制基于向量嵌入的语义搜索(非关键词)
版本管理语义版本(semver)+ 标签系统 + 内容哈希
Agent 集成Agent 自动读取 SKILL.md → 理解何时调用、如何使用
安装方式clawhub install <slug> → 下一个会话自动识别

OpenClaw SKILL.md 格式规范:

---
name: skill-name
description: 一句话描述
version: 1.0.0
author: 作者
permissions: 网络访问权限、文件写入权限
---

# Skill Name

## 1. Description
详细功能说明和应用场景

## 2. When to use
- 用户说:"..."(触发条件示例)
- 用户说:"..."

## 3. How to use
1. 从用户消息中提取信息
2. 调用工具/API
3. 返回结果格式

## 4. Edge cases
异常情况处理方案

## 5. Implementation(代码型 Skill)
依赖库、核心函数、参数说明

ClawHub 中与科学计算相关的 Skill 分类:

分类数量代表 Skills
Search & Research350academic-research、agentic-paper-digest、academic-deep-research
Data & Analytics28csv-pipeline、data-analyst、duckdb-en
Coding Agents & IDEs1,222agent-evaluation、agentic-devops
CLI Utilities186bun-runtime、behavioral-invariant-monitor
DevOps & Cloud408Docker/K8s 管理相关

对数据构建的启示:ClawHub 的 SKILL.md 格式提供了将科学能力标准化描述为 Agent 可理解的技能的成熟方案。将科学计算任务封装为 Skill 格式,可以直接复用 Agent 生态进行任务理解和执行。


二、V2 方案总览

在 V1 的四套方案基础上,新增两套方案并重构混合方案:

═══════════════════════════════════════════════════════════════════
  V1 方案(保留)                    V2 新增方案
═══════════════════════════════════════════════════════════════════
  方案一:论文驱动提取法              方案五:技能图谱驱动法 ← SkillNet
  方案二:LLM 合成增强法             方案六:Agent Skill 生态复用法 ← ClawHub
  方案三:领域专家协作法
  方案四:真实轨迹挖掘法
═══════════════════════════════════════════════════════════════════
  V1 混合方案  →  V2 统一框架:Skill-Aware 数据构建流水线
═══════════════════════════════════════════════════════════════════

三、方案五:技能图谱驱动法(SkillNet 启发)

3.1 核心思路

借鉴 SkillNet 的「技能图谱」理念,先构建科学研究的技能本体(Skill Ontology),再用技能组合系统性地生成任务。这解决了 V1 方案中”任务生成缺乏系统性覆盖”的问题。

传统方式:  论文/代码 → 提取任务 → 分类标注  (自底向上,覆盖随机)
SkillNet方式:技能图谱 → 技能组合 → 生成任务  (自顶向下,覆盖系统)

3.2 技能本体构建

Step 1:定义三层技能体系

SCIENCE_SKILL_ONTOLOGY = {
    # Layer 1: 元技能(科研流程通用)
    "meta_skills": {
        "literature_retrieval": {
            "description": "检索、筛选和综合科学文献",
            "sub_skills": ["keyword_search", "citation_tracing", "systematic_review",
                          "meta_analysis", "gap_identification"]
        },
        "hypothesis_generation": {
            "description": "基于已有知识提出可检验的科学假设",
            "sub_skills": ["pattern_recognition", "analogy_reasoning",
                          "contradiction_identification", "novel_combination"]
        },
        "experiment_design": {
            "description": "设计可重复、可控的实验方案",
            "sub_skills": ["variable_control", "sample_sizing", "protocol_design",
                          "baseline_selection", "ablation_planning"]
        },
        "result_analysis": {
            "description": "分析实验结果并提取科学结论",
            "sub_skills": ["statistical_testing", "visualization", "error_analysis",
                          "significance_assessment", "comparison_with_baselines"]
        },
        "failure_attribution": {
            "description": "诊断实验失败原因并提出改进策略",
            "sub_skills": ["error_diagnosis", "sensitivity_analysis",
                          "debugging", "parameter_tuning", "alternative_approach"]
        }
    },

    # Layer 2: 领域技能(科学分支专用)
    "domain_skills": {
        "life_sciences": {
            "genomics": ["sequence_alignment", "variant_calling", "gene_expression",
                        "genome_assembly", "phylogenetic_analysis"],
            "proteomics": ["structure_prediction", "molecular_docking",
                          "functional_annotation", "ppi_network"],
            "neuroscience": ["brain_imaging_analysis", "spike_sorting",
                            "connectivity_mapping", "signal_processing"],
            "drug_discovery": ["virtual_screening", "admet_prediction",
                              "target_identification", "lead_optimization"]
        },
        "physical_sciences": {
            "quantum_mechanics": ["wavefunction_calculation", "dft_computation",
                                 "quantum_circuit_simulation"],
            "astrophysics": ["spectral_analysis", "exoplanet_detection",
                            "gravitational_wave_analysis", "stellar_evolution"],
            "materials_science": ["molecular_dynamics", "crystal_structure",
                                 "band_structure", "phase_diagram"]
        },
        "earth_sciences": {
            "climate": ["climate_pattern_analysis", "extreme_event_detection",
                       "downscaling", "trend_testing"],
            "seismology": ["seismic_wave_analysis", "tomography",
                          "source_localization", "earthquake_prediction"],
            "remote_sensing": ["satellite_image_processing", "land_classification",
                              "change_detection", "ndvi_analysis"]
        }
    },

    # Layer 3: 工具技能(执行层面)
    "tool_skills": {
        "python_scientific": ["numpy", "scipy", "pandas", "matplotlib", "sympy"],
        "domain_specific": ["biopython", "rdkit", "astropy", "xarray", "obspy",
                           "scanpy", "pymatgen", "fenics", "openMM"],
        "ml_frameworks": ["pytorch", "tensorflow", "scikit-learn", "jax"],
        "system_tools": ["bash", "docker", "git", "make", "conda", "pip"],
        "data_formats": ["csv", "json", "hdf5", "netcdf", "fits", "pdb", "fasta"]
    }
}

Step 2:从已有数据中填充技能图谱

def populate_skill_graph(skill_ontology, data_sources):
    """用网页/书籍/代码数据填充每个技能节点的上下文"""

    for layer, categories in skill_ontology.items():
        for category, skills in categories.items():
            for skill in skills:
                # 1. 从网页中提取该技能的教程和最佳实践
                skill.tutorials = web_corpus.search(
                    f"{skill.name} tutorial python scientific",
                    top_k=50
                )

                # 2. 从书籍中提取该技能的理论基础
                skill.theory = book_corpus.search(
                    f"{skill.name} method algorithm principle",
                    top_k=20
                )

                # 3. 从代码中提取该技能的实现模式
                skill.code_patterns = code_corpus.search(
                    f"def {skill.name}|class {skill.name}",
                    filter=lambda r: r.has_tests,
                    top_k=100
                )

                # 4. 标注技能间的依赖关系
                skill.prerequisites = infer_prerequisites(skill, skill_ontology)
                skill.composable_with = infer_composability(skill, skill_ontology)

Step 3:基于技能组合系统性生成任务

def generate_tasks_from_skill_graph(skill_ontology):
    """通过技能组合矩阵,系统性生成任务候选"""
    tasks = []

    for domain_field, domain_skills in skill_ontology["domain_skills"].items():
        for sub_field, specific_skills in domain_skills.items():
            for meta_skill_name, meta_skill in skill_ontology["meta_skills"].items():

                # 组合:1 个元技能 × 1-3 个领域技能 × 1-N 个工具技能
                for skill_combo in generate_combinations(
                    meta_skills=[meta_skill],
                    domain_skills=specific_skills,
                    combo_size=(1, 3)  # 1到3个领域技能组合
                ):
                    # 推断所需的工具技能
                    tool_skills = infer_tool_requirements(skill_combo)

                    # 评估组合难度
                    difficulty = estimate_combo_difficulty(skill_combo)

                    # 生成任务描述
                    task = llm_generate_task(
                        meta_context=meta_skill.description,
                        domain_context=skill_combo,
                        tool_context=tool_skills,
                        difficulty=difficulty,
                        tutorials=merge_tutorials(skill_combo),
                        code_patterns=merge_patterns(skill_combo)
                    )

                    tasks.append(task)
    return tasks

技能组合生成任务的示例:

元技能领域技能工具技能生成的任务难度
实验设计序列比对biopython, blast设计一个基因组比较流水线,比对 3 个物种的同源基因Medium
结果分析光谱分析 + 系外行星检测astropy, numpy从恒星光谱数据中识别径向速度变化并计算行星轨道参数Hard
失败归因DFT 计算pymatgen, ase调试一个材料能带计算,定位收敛失败原因并修复Hard
假设生成气候模式分析xarray, cartopy分析 ENSO 事件期间的全球温度异常模式Medium
文献检索 + 结果分析分子对接rdkit, openbabel对候选药物分子进行虚拟筛选,并用 ADMET 指标排序Hard

3.3 技能覆盖度矩阵

用技能图谱监控任务生成的覆盖系统性:

                    │ 文献检索 │ 假设生成 │ 实验设计 │ 结果分析 │ 失败归因 │
────────────────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
基因组学             │  ██████  │  ████░░  │  ██████  │  ██████  │  ██░░░░  │
蛋白质组学           │  ████░░  │  ██░░░░  │  ████░░  │  ██████  │  ████░░  │
量子力学             │  ██░░░░  │  ██████  │  ████░░  │  ████░░  │  ██████  │
天体物理             │  ██████  │  ████░░  │  ██░░░░  │  ██████  │  ██░░░░  │
气候科学             │  ████░░  │  ██████  │  ██████  │  ████░░  │  ████░░  │
地震学               │  ██░░░░  │  ██░░░░  │  ████░░  │  ██████  │  ██████  │
────────────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘
■ 已有任务  ░ 缺口 → 优先补充

3.4 预期产出

指标估计值
技能本体中的节点数300-500 个技能
技能组合空间10,000+ 可能组合
生成的任务候选5,000-20,000 个
验证后的高质量任务1,000-5,000 个
覆盖率保证每个元技能 × 每个子领域至少 2 个任务

四、方案六:Agent Skill 生态复用法(ClawHub 启发)

4.1 核心思路

借鉴 ClawHub 的 Agent Skill 生态,将科学计算任务封装为标准化的 Agent Skill 格式(SKILL.md),并复用 Agent 工具链进行任务执行和轨迹生成。

这带来三重价值:

  1. 标准化:用 SKILL.md 格式统一描述科学计算能力
  2. 可复用性:生成的 Skills 可直接部署到 OpenClaw 等 Agent 系统
  3. 生态杠杆:复用 ClawHub 已有的 5,490+ Skills 作为基础能力

4.2 Science Skill 格式设计

将 Terminal-Bench 的任务格式与 SKILL.md 格式融合:

---
name: protein-folding-energy
description: 计算蛋白质折叠自由能并进行构象分析
version: 1.0.0
domain: life-sciences
field: biology
subfield: proteomics
difficulty: medium
tags: [protein, folding, free-energy, biophysics]
metadata: {"openclaw": {"requires": {"bins": ["python3"], "env": ["OPENMM_AVAILABLE"]}}}
---

# Protein Folding Energy Calculation

## 1. Description
在终端环境中完成蛋白质折叠自由能的计算任务。
给定一条蛋白质序列(FASTA格式),需要预测其三维结构、
进行分子动力学模拟,并计算折叠自由能。

## 2. When to use
- 用户需要预测蛋白质结构稳定性
- 用户需要比较不同突变体的热力学性质
- 用户需要分析蛋白质构象变化

## 3. How to use
1. 读取 /root/data/sequence.fasta 获取蛋白质序列
2. 使用 OpenMM 构建分子力场
3. 运行分子动力学模拟(至少 100ps)
4. 使用自由能微扰法计算折叠自由能
5. 将结果写入 /root/output/energy.csv(格式:residue_id,energy_kcal)
6. 生成能量景观图保存为 /root/output/landscape.png

## 4. Verification
- energy.csv 中所有能量值的平均误差 < 0.5 kcal/mol(与参考值比较)
- landscape.png 文件存在且大小 > 10KB
- 模拟步数 >= 50000

## 5. Environment
- Python 3.11, OpenMM, MDAnalysis, BioPython
- 数据位于 /root/data/
- 输出写入 /root/output/

## 6. Edge cases
- 序列过长(>500aa):提示使用隐式溶剂模型
- GPU 不可用:回退到 CPU 计算,减少模拟步数
- 力场参数缺失:使用 AMBER14 作为默认力场

4.3 从 ClawHub 已有 Skills 中挖掘科学能力

def mine_science_skills_from_clawhub():
    """从 ClawHub 已有 5,490+ Skills 中挖掘可用于科学计算的能力"""

    science_relevant_categories = {
        # 直接相关
        "academic-research": "学术文献检索和综述",
        "academic-deep-research": "深度学术研究",
        "agentic-paper-digest": "论文摘要和分析",
        "csv-pipeline": "数据处理和ETL",
        "data-analyst": "数据分析和可视化",
        "duckdb-en": "SQL数据分析",

        # 基础能力(可组合)
        "agentic-devops": "Docker/系统管理",
        "agent-evaluation": "Agent测试和基准",
        "behavioral-invariant-monitor": "行为一致性验证",
    }

    # 将这些 Skills 作为「工具层」直接集成到科学任务中
    # Agent 在执行科学任务时,可以调用这些 Skills 作为子能力
    return build_tool_skill_layer(science_relevant_categories)

4.4 双格式产出:Task + Skill

每个科学任务同时产出 Terminal-Bench 格式和 SKILL.md 格式:

science-tasks/
├── terminal-bench-format/           # 用于 Benchmark 评测
│   └── tasks/
│       └── life-sciences/biology/protein-folding-energy/
│           ├── instruction.md
│           ├── task.toml
│           ├── environment/Dockerfile
│           ├── solution/solve.sh
│           └── tests/test.py
│
├── skill-format/                    # 用于 Agent 生态部署
│   └── skills/
│       └── protein-folding-energy/
│           ├── SKILL.md             # 标准 Agent Skill 描述
│           ├── agent.py             # 可选:执行逻辑
│           └── references/          # 参考资料
│
└── training-format/                 # 用于 LLM 训练
    └── trajectories/
        └── protein-folding-energy.jsonl

4.5 Skill-as-Curriculum:技能即课程

将 ClawHub 的 Skill 层次结构用作 LLM 训练课程设计:

Training Curriculum(训练课程)
│
├── Stage 1: 工具技能(Tool Skills)
│   训练数据: 基础 Python/Bash 操作、包管理、文件处理
│   来源: ClawHub CLI Utilities + 代码语料
│   规模: ~10K samples
│
├── Stage 2: 数据技能(Data Skills)
│   训练数据: CSV/JSON/HDF5 处理、SQL 查询、可视化
│   来源: ClawHub Data & Analytics + 网页教程
│   规模: ~5K samples
│
├── Stage 3: 研究技能(Research Skills)
│   训练数据: 文献检索、论文分析、假设生成
│   来源: ClawHub Search & Research + 书籍语料
│   规模: ~5K samples
│
├── Stage 4: 领域技能(Domain Skills)
│   训练数据: 领域专用科学计算任务
│   来源: 技能图谱驱动生成 + 论文代码提取
│   规模: ~20K samples
│
└── Stage 5: 综合技能(Composite Skills)
    训练数据: 多技能组合的端到端科研工作流
    来源: 专家协作 + 轨迹挖掘
    规模: ~10K samples

4.6 预期产出

指标估计值
科学 Skill 定义数200-500 个标准 SKILL.md
可复用的基础 Skills(from ClawHub)50-100 个
双格式任务1,000-5,000 个
分阶段训练数据~50K samples

五、V1 方案精要保留

以下四套方案保持 V1 设计(详见 V1 文档),此处仅做摘要和 V2 融合点标注:

5.1 方案一:论文驱动提取法

Pipeline: 论文-代码对发现 → 工作流分解 → 任务结构化 → 验证

V2 融合点:用 SkillNet 技能本体标注提取出的任务所覆盖的技能,填充覆盖度矩阵。

5.2 方案二:LLM 合成增强法

Pipeline: 种子数据提取 → LLM 合成(Self/Evol-Instruct)→ 执行验证

V2 融合点:

  • 用技能图谱引导 Evol-Instruct 的进化方向(按技能组合而非随机进化)
  • 合成任务同时输出 SKILL.md 格式

5.3 方案三:领域专家协作法

Pipeline: 专家提出任务 → AI 辅助生成环境/测试 → 交叉审核

V2 融合点:专家使用技能覆盖度矩阵识别缺口,优先填补空白区域。

5.4 方案四:真实轨迹挖掘法

Pipeline: 科学仓库筛选 → 环境复现 → Agent 轨迹合成

V2 融合点:

  • 轨迹中的每个 action 标注对应的技能节点
  • 用 SKILL.md 格式描述轨迹中使用的能力

六、V2 统一框架:Skill-Aware 数据构建流水线

6.1 整体架构

╔═══════════════════════════════════════════════════════════════════════╗
║                     Skill-Aware 数据构建流水线                        ║
╠═══════════════════════════════════════════════════════════════════════╣
║                                                                       ║
║  ┌─────────────┐   ┌──────────────────┐   ┌────────────────────┐     ║
║  │  数据输入层   │   │  技能图谱层       │   │  Agent Skill 层    │     ║
║  │             │   │  (SkillNet)       │   │  (ClawHub)         │     ║
║  │ • 全网网页   │   │                  │   │                    │     ║
║  │ • 书籍      │   │ • 元技能定义      │   │ • SKILL.md 格式    │     ║
║  │ • 代码      │   │ • 领域技能图谱    │   │ • 5,490+ 已有Skills│     ║
║  │             │   │ • 技能依赖关系    │   │ • 版本管理         │     ║
║  │             │   │ • 覆盖度矩阵      │   │ • 向量搜索         │     ║
║  └──────┬──────┘   └────────┬─────────┘   └─────────┬──────────┘     ║
║         │                   │                        │                ║
║         ▼                   ▼                        ▼                ║
║  ┌════════════════════════════════════════════════════════════════┐   ║
║  ║              任务生成引擎(六方案融合)                         ║   ║
║  ║                                                                ║   ║
║  ║  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        ║   ║
║  ║  │ 论文驱动  │ │ LLM合成  │ │ 专家协作  │ │ 轨迹挖掘  │        ║   ║
║  ║  │ (方案一)  │ │ (方案二) │ │ (方案三)  │ │ (方案四)  │        ║   ║
║  ║  └──────────┘ └──────────┘ └──────────┘ └──────────┘        ║   ║
║  ║         ┌──────────┐          ┌──────────┐                    ║   ║
║  ║         │ 技能图谱  │          │ Skill    │                    ║   ║
║  ║         │ 驱动     │          │ 生态复用  │                    ║   ║
║  ║         │ (方案五) │          │ (方案六)  │                    ║   ║
║  ║         └──────────┘          └──────────┘                    ║   ║
║  ╚════════════════════════════════════════════════════════════════╝   ║
║                              │                                        ║
║                              ▼                                        ║
║  ┌════════════════════════════════════════════════════════════════┐   ║
║  ║              质量保证 & 验证层                                  ║   ║
║  ║                                                                ║   ║
║  ║  Docker 环境构建 → Oracle 执行 → 测试验证 → Agent 难度校验     ║   ║
║  ║       ↓                                         ↓              ║   ║
║  ║  21维质量评分                              技能覆盖度审查       ║   ║
║  ╚════════════════════════════════════════════════════════════════╝   ║
║                              │                                        ║
║                              ▼                                        ║
║  ┌════════════════════════════════════════════════════════════════┐   ║
║  ║              多格式输出层                                      ║   ║
║  ║                                                                ║   ║
║  ║  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────┐ ║   ║
║  ║  │ Terminal-Bench │  │ SKILL.md     │  │ Training Data        │ ║   ║
║  ║  │ Format        │  │ Format       │  │ (SFT/RL/Trajectory)  │ ║   ║
║  ║  │ (Benchmark)   │  │ (Agent生态)  │  │ (LLM训练)           │ ║   ║
║  ║  └──────────────┘  └──────────────┘  └──────────────────────┘ ║   ║
║  ╚════════════════════════════════════════════════════════════════╝   ║
╚═══════════════════════════════════════════════════════════════════════╝

6.2 V2 分阶段执行计划

Phase 0: 基础设施(第 0-1 周)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ├── 构建技能本体(方案五 Step 1)
  │   - 定义 300+ 技能节点
  │   - 标注技能间依赖关系
  │   - 初始化覆盖度矩阵
  ├── 设计 Science SKILL.md 格式(方案六)
  │   - 融合 Terminal-Bench task.toml + ClawHub SKILL.md
  │   - 工具链搭建(格式转换器 / 验证器)
  └── 从 ClawHub 导入基础 Skills
      - 安装 academic-research / csv-pipeline / data-analyst 等
      - 适配为科学任务的工具层

Phase 1: 快速启动(第 2-3 周)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ├── 方案一(论文驱动)→ 100-500 个任务
  ├── 方案五(技能图谱驱动)→ 覆盖度矩阵首轮填充
  └── 输出:Terminal-Bench + SKILL.md 双格式

Phase 2: 规模扩展(第 4-6 周)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ├── 方案二(LLM合成)→ 技能组合引导的 Evol-Instruct
  ├── 方案六(Skill 生态复用)→ 基础能力层训练数据
  ├── 方案五(覆盖度审查)→ 识别缺口,定向补充
  └── 输出:1,000-5,000 个验证任务 + 10K 训练样本

Phase 3: 质量打磨(第 7-9 周)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ├── 方案三(专家协作)→ 200+ 专家级高质量任务
  ├── 覆盖度矩阵空白区定向补充
  └── 输出:全领域系统性覆盖的精品任务集

Phase 4: 轨迹生成(第 10-14 周)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ├── 方案四(轨迹挖掘)→ 大规模 Agent 轨迹
  ├── 轨迹技能标注(每个 action 关联技能节点)
  ├── Skill-as-Curriculum 分阶段训练数据打包
  └── 输出:50K-100K 训练样本(含技能标签)
Week 0-1   ██░░░░░░░░░░░░░░░░░░░░░░░░░░  Phase 0: 基础设施
Week 2-3   ░░████░░░░░░░░░░░░░░░░░░░░░░  Phase 1: 快速启动
Week 4-6   ░░░░░░██████░░░░░░░░░░░░░░░░  Phase 2: 规模扩展
Week 7-9   ░░░░░░░░░░░░██████░░░░░░░░░░  Phase 3: 质量打磨
Week 10-14 ░░░░░░░░░░░░░░░░░░██████████  Phase 4: 轨迹生成

6.3 V2 数据格式设计

格式 A:带技能标注的 Terminal-Bench 任务

# task.toml(扩展版)
version = "2.0"

[metadata]
author_name = "Auto-Generated"
difficulty = "medium"
domain = "life-sciences"
field = "biology"
subfield = "proteomics"
tags = ["protein", "folding", "free-energy"]

# V2新增:技能标注
[skills]
meta_skills = ["experiment_design", "result_analysis"]
domain_skills = ["structure_prediction", "molecular_dynamics"]
tool_skills = ["openmm", "biopython", "numpy", "matplotlib"]
skill_composition = "experiment_design + structure_prediction + molecular_dynamics → result_analysis"

[verifier]
timeout_sec = 120.0

[agent]
timeout_sec = 1200.0

格式 B:带技能标注的训练轨迹

{
  "task_id": "bio/proteomics/protein-folding-energy",
  "instruction": "...",
  "skill_annotation": {
    "required_meta_skills": ["experiment_design", "result_analysis"],
    "required_domain_skills": ["structure_prediction", "molecular_dynamics"],
    "required_tool_skills": ["openmm", "biopython", "numpy"],
    "skill_composition": "experiment_design + structure_prediction + molecular_dynamics → result_analysis",
    "curriculum_stage": 4
  },
  "trajectory": [
    {
      "turn": 1,
      "thought": "先检查环境和数据...",
      "action": "ls /root/data && pip list | grep -i openmm",
      "observation": "sequence.fasta\nOpenMM 8.0.0",
      "skills_used": ["tool:bash", "tool:pip"]
    },
    {
      "turn": 2,
      "thought": "读取蛋白质序列...",
      "action": "python3 -c \"from Bio import SeqIO; ...\"",
      "observation": "Sequence length: 156 aa",
      "skills_used": ["tool:biopython", "domain:sequence_analysis"]
    },
    {
      "turn": 3,
      "thought": "构建力场并运行 MD 模拟...",
      "action": "python3 /root/solve.py",
      "observation": "MD simulation complete. 50000 steps.",
      "skills_used": ["domain:molecular_dynamics", "meta:experiment_design"]
    }
  ],
  "reward": 1.0,
  "metadata": {
    "difficulty": "medium",
    "num_turns": 8,
    "total_tokens": 6200
  }
}

格式 C:Science SKILL.md(Agent 部署格式)

---
name: protein-folding-energy
description: 计算蛋白质折叠自由能并进行构象分析
version: 1.0.0
domain: life-sciences
field: biology
difficulty: medium
metadata: {"openclaw": {"os": ["linux"], "requires": {"bins": ["python3"]}}}
---

# Protein Folding Energy Calculation

## 1. Description
在终端环境中完成蛋白质折叠自由能的计算...

## 2. When to use
- 用户需要预测蛋白质结构稳定性
- 用户需要比较不同突变体的热力学性质

## 3. How to use
1. 读取 FASTA 格式的蛋白质序列
2. 使用 OpenMM 构建分子力场
3. 运行分子动力学模拟
4. 计算折叠自由能
5. 输出结果为 CSV 和可视化图表

## 4. Required Skills
- meta: experiment_design, result_analysis
- domain: structure_prediction, molecular_dynamics
- tool: openmm, biopython, numpy, matplotlib

## 5. Edge cases
- 序列过长:使用隐式溶剂模型
- GPU不可用:回退CPU计算

七、V2 质量保证体系(增强版)

7.1 三维质量检查

维度V1 方法V2 新增
任务质量21 维评分标准不变
技能覆盖无技能覆盖度矩阵审查(每个元技能×子领域至少 N 个任务)
生态兼容无SKILL.md 格式验证 + Agent 加载测试

7.2 自动化检查清单(V2 扩展)

检查项方法必须通过
Dockerfile 可构建docker build✅
Oracle 通过solve.sh reward = 1.0✅
绝对路径正则检查✅
无解法泄露Canary string✅
依赖固定pip 版本号✅
Agent 难度SOTA Agent < 50%建议
技能标注完整验证 skills 字段非空✅
SKILL.md 格式合规YAML frontmatter 解析✅
技能覆盖度矩阵无全空行/列✅
课程阶段标注curriculum_stage ∈ {1,2,3,4,5}✅

八、成本估算(V2)

8.1 方案对比

方案人力计算LLM API产出规模质量V2 特有价值
方案一(论文驱动)中中$500-2K100-1K高—
方案二(合成增强)低中$1K-5K1K-10K中—
方案三(专家协作)高低$200-500100-500极高—
方案四(轨迹挖掘)低高$2K-10K10K-100K中高—
方案五(技能图谱)中低$500-2K1K-5K高系统性覆盖
方案六(Skill 生态)低低$200-1K200-500高Agent 可部署
V2 混合方案中高中高$5K-20K50K-100K高全栈价值

8.2 V2 新增投入

项目工作量价值
技能本体构建1-2 人周一次构建,长期复用
SKILL.md 格式设计 + 转换器3-5 人天打通 Agent 生态
技能覆盖度监控系统2-3 人天持续保证数据系统性
ClawHub Skills 适配1-2 人天免费复用社区资产

九、V1 vs V2 核心差异总结

维度V1V2
任务生成逻辑自底向上(从数据到任务)自顶向下 + 自底向上结合
覆盖性保证无系统性保证技能覆盖度矩阵强制保证
任务描述Terminal-Bench 单格式Terminal-Bench + SKILL.md 双格式
技能标注无每个任务/轨迹带完整技能标注
训练课程扁平数据集Skill-as-Curriculum 分阶段
生态复用孤立数据集可直接部署到 Agent 系统
社区杠杆无复用 ClawHub 5,490+ Skills
知识结构隐式(靠标签分类)显式(技能图谱 + 依赖关系)

十、附录

A. 技能组合生成 Prompt 模板(V2 新增)

你是一个科学计算任务设计专家。基于以下技能组合,设计一个终端环境下的科学计算任务。

## 技能组合
- 元技能: {meta_skill}({meta_skill_description})
- 领域技能: {domain_skills}
- 工具技能: {tool_skills}
- 技能组合路径: {skill_composition}

## 参考材料
- 相关教程: {tutorials}
- 相关代码模式: {code_patterns}
- 相关书籍知识: {book_knowledge}

## 任务设计要求
1. 任务必须综合运用上述所有技能
2. 使用绝对路径描述所有文件位置
3. 描述要实现的目标,不要提示解法
4. 难度: {difficulty}
5. 必须可通过程序化测试验证正确性

## 输出格式
同时输出以下两种格式:
### 格式A: Terminal-Bench 格式
1. instruction.md
2. task.toml(包含 [skills] 段)
3. solve.py
4. test.py
5. Dockerfile

### 格式B: SKILL.md 格式
完整的 SKILL.md 文件(含 YAML frontmatter)

B. Science SKILL.md 到 Terminal-Bench Task 的自动转换

def skill_to_task(skill_md_path: str) -> TaskPackage:
    """将 SKILL.md 格式转换为 Terminal-Bench 任务格式"""

    skill = parse_skill_md(skill_md_path)

    # 生成 instruction.md
    instruction = f"""# {skill.name}

{skill.sections['Description']}

## 任务要求
{skill.sections['How to use']}

## 注意事项
{skill.sections['Edge cases']}
"""

    # 生成 task.toml
    task_toml = {
        "version": "2.0",
        "metadata": {
            "author_name": skill.frontmatter.get("author", "Auto"),
            "difficulty": skill.frontmatter.get("difficulty", "medium"),
            "domain": skill.frontmatter.get("domain", ""),
            "field": skill.frontmatter.get("field", ""),
            "tags": skill.frontmatter.get("tags", []),
        },
        "skills": extract_skill_annotations(skill),
        "verifier": {"timeout_sec": 120.0},
        "agent": {"timeout_sec": 1200.0},
    }

    # 生成 Dockerfile(从 SKILL.md 的 Environment 段推断)
    dockerfile = generate_dockerfile_from_skill(skill)

    return TaskPackage(instruction, task_toml, dockerfile)

C. 相关项目参考(V2 扩展)

项目特点V2 中的角色
Terminal-Bench-Science科学任务 Benchmark,21 维质量标准任务结构标杆
TermiGen3,500+ 验证环境,轨迹合成轨迹生成参考
ScienceAgentBench102 个来自论文的科学任务论文→任务提取参考
SWE-bench2,294 个 GitHub Issue 修复任务从真实仓库提取任务
OpenKG SkillNet大规模智能体技能图谱知识库技能本体、系统性覆盖
ClawHub5,490+ Agent Skills,向量搜索Skill 格式、生态复用
OpenClaw22万 Star 开源 AI 助手SKILL.md 规范、Agent 集成
MegaMath3,710 亿数学 token大规模多源数据混合
Self-Instruct175 条种子 → 52K 指令合成数据扩展方法
Evol-Instruct指令进化增加复杂度难度梯度构建

文档版本: V2 更新时间: 2026-03-07 V2 新增: 方案五(技能图谱驱动)、方案六(Agent Skill 生态复用)、Skill-Aware 统一框架 适用场景: 构建科学领域 LLM 训练数据(Benchmark + SFT + Agent RL + Agent 生态部署)