技能图谱驱动的科学数据合成提案
SkillNet + ClawHub 融合的 Skill-Aware 科学数据构建框架 V2
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 & Research | 350 | academic-research、agentic-paper-digest、academic-deep-research |
| Data & Analytics | 28 | csv-pipeline、data-analyst、duckdb-en |
| Coding Agents & IDEs | 1,222 | agent-evaluation、agentic-devops |
| CLI Utilities | 186 | bun-runtime、behavioral-invariant-monitor |
| DevOps & Cloud | 408 | Docker/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 工具链进行任务执行和轨迹生成。
这带来三重价值:
- 标准化:用 SKILL.md 格式统一描述科学计算能力
- 可复用性:生成的 Skills 可直接部署到 OpenClaw 等 Agent 系统
- 生态杠杆:复用 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-2K | 100-1K | 高 | — |
| 方案二(合成增强) | 低 | 中 | $1K-5K | 1K-10K | 中 | — |
| 方案三(专家协作) | 高 | 低 | $200-500 | 100-500 | 极高 | — |
| 方案四(轨迹挖掘) | 低 | 高 | $2K-10K | 10K-100K | 中高 | — |
| 方案五(技能图谱) | 中 | 低 | $500-2K | 1K-5K | 高 | 系统性覆盖 |
| 方案六(Skill 生态) | 低 | 低 | $200-1K | 200-500 | 高 | Agent 可部署 |
| V2 混合方案 | 中高 | 中高 | $5K-20K | 50K-100K | 高 | 全栈价值 |
8.2 V2 新增投入
| 项目 | 工作量 | 价值 |
|---|---|---|
| 技能本体构建 | 1-2 人周 | 一次构建,长期复用 |
| SKILL.md 格式设计 + 转换器 | 3-5 人天 | 打通 Agent 生态 |
| 技能覆盖度监控系统 | 2-3 人天 | 持续保证数据系统性 |
| ClawHub Skills 适配 | 1-2 人天 | 免费复用社区资产 |
九、V1 vs V2 核心差异总结
| 维度 | V1 | V2 |
|---|---|---|
| 任务生成逻辑 | 自底向上(从数据到任务) | 自顶向下 + 自底向上结合 |
| 覆盖性保证 | 无系统性保证 | 技能覆盖度矩阵强制保证 |
| 任务描述 | 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 维质量标准 | 任务结构标杆 |
| TermiGen | 3,500+ 验证环境,轨迹合成 | 轨迹生成参考 |
| ScienceAgentBench | 102 个来自论文的科学任务 | 论文→任务提取参考 |
| SWE-bench | 2,294 个 GitHub Issue 修复任务 | 从真实仓库提取任务 |
| OpenKG SkillNet | 大规模智能体技能图谱知识库 | 技能本体、系统性覆盖 |
| ClawHub | 5,490+ Agent Skills,向量搜索 | Skill 格式、生态复用 |
| OpenClaw | 22万 Star 开源 AI 助手 | SKILL.md 规范、Agent 集成 |
| MegaMath | 3,710 亿数学 token | 大规模多源数据混合 |
| Self-Instruct | 175 条种子 → 52K 指令 | 合成数据扩展方法 |
| Evol-Instruct | 指令进化增加复杂度 | 难度梯度构建 |
文档版本: V2 更新时间: 2026-03-07 V2 新增: 方案五(技能图谱驱动)、方案六(Agent Skill 生态复用)、Skill-Aware 统一框架 适用场景: 构建科学领域 LLM 训练数据(Benchmark + SFT + Agent RL + Agent 生态部署)