zcbot/SCIENTIFIC_SKILLS.md

8.6 KiB

科学 Skill 集成评估(scientific-agent-skills → zcbot)

来源:https://github.com/K-Dense-AI/scientific-agent-skills(MIT,K-Dense AI,138 个 skill)

适用对象:zcbot,服务于中国建筑材料科学研究总院 —— 无机非金属材料 R&D(水泥/混凝土/玻璃/陶瓷/耐火/新型建材)。

1. 总体结论

  • 不整包装(npx skills add),138 个 description 全进 prompt → 上下文噪声爆炸 + 误触发(用户说"分析一下"模型可能跳去 Scanpy)。
  • 挑 4 个核心新能力 fork 进来,适配 zcbot 现有 skill 格式(SKILL.md + Python helper + run_python 调用)。
  • 现有 6 个 skill 不替换,抽对方的 best practice 增强

2. 现状与目标格式

zcbot 已有 skill(D:/projects/zcbot/skills/): coding / documents / imagegen / patent / ppt / proposal / research / review / videogen

每个 skill = SKILL.md(frontmatter + 何时用 + 反模式 + 工作流)+ 配套 Python(走 run_python 注入的 PYTHONPATH 直接 import)。

scientific-agent-skills 的 skill 格式语义基本一致 —— 可以单个 fork,不要批量装

3. 推荐移植的 4 个新能力

3.1 Pymatgen ★★★

无机材料计算核心库。

对你们的价值面

  • 晶体结构 I/O(CIF/POSCAR)—— 水泥熟料相(C3S/C2S/C3A/C4AF)、玻璃晶化产物、陶瓷相、耐火砖矿物相
  • XRDCalculator —— 给定结构正向算 XRD pattern,跟实测对比
  • PhaseDiagram —— 凝胶/水化产物的热力学稳定性
  • SpacegroupAnalyzer —— 物相对称性
  • MPRester —— Materials Project 直连查无机化合物
  • 转换工具:VASP / Gaussian / Quantum ESPRESSO 输入输出文件

落地动作

.venv/Scripts/pip install pymatgen mp-api

新建 skills/materials_pymatgen/SKILL.md,在仓库原版基础上加两段:

  • 中文相名 → 标准化学式映射表(给 LLM 看):
    • C3S → Ca3SiO5,C2S → Ca2SiO4,C3A → Ca3Al2O6,C4AF → Ca4Al2Fe2O10
    • 钙矾石 → Ca6Al2(SO4)3(OH)12·26H2O
    • 莫来石 → Al6Si2O13,堇青石 → Mg2Al4Si5O18
  • Materials Project API key 配置走 zcbot env —— 用户得去 https://materialsproject.org/api 申请,写进 RUN.md 一次性初始化段

  • MPRester 必须 context manager(with MPRester() as mpr:),否则连接泄漏 —— 抄进反模式段
  • from_file() 优先,不要自己 parse CIF

3.2 stats_ml(scikit-learn + statsmodels + PyMC) ★★★

合并成一个 skill,按场景导航。

对你们的价值面

  • 配方-性能建模:掺合料比例 → 28 天抗压强度回归
  • DoE 响应面拟合
  • 配方聚类 / 异常实验检测
  • 工艺参数 → 性能的特征重要性

落地动作

skills/stats_ml/SKILL.md 入口先做场景导航:

你要做
要 p-value、置信区间、假设检验 statsmodels(OLS / ANOVA)
要预测精度高、不在乎模型可解释性 sklearn(RF / GBDT)
样本小(< 30)且要不确定度估计 PyMC(贝叶斯)
要可解释的线性关系 statsmodels OLS / sklearn LinearRegression

抄仓库的反模式段(高频踩坑):

  1. 别在 pipeline 外预处理 → 交叉验证会数据泄漏
  2. scaler 别 fit 在 test 上
  3. 分类任务记得 StratifiedKFold
  4. 树模型不用 scale 特征
  5. 收敛 warning 别忽略,要么加 max_iter 要么 scale

依赖:你们 requirements.txt 多半已有 sklearn,确认下 statsmodels + pymc 装没装。

3.3 matplotlib(出版级) ★★★

对你们的价值面

  • XRD pattern(底图 + 标峰)
  • TG-DSC 双 Y 轴曲线
  • 应力-应变曲线多组样本对比
  • 多 panel 出版图(Cement and Concrete Research、JACerS 风格)

落地动作

新建 skills/plot_pub/SKILL.md,关键内容(原仓库的反模式 + 你们的中文场景补丁):

# zcbot 出版级绘图规范

# 1. OO 接口(必须),不用 plt.xxx 隐式
fig, ax = plt.subplots(figsize=(6, 4), dpi=150)
ax.plot(...)

# 2. 中文字体(Windows 必配,否则方块)
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

# 3. colormap 用 viridis / cividis,不用 jet(色觉障碍不友好,审稿人会喷)

# 4. 画完必须 close,run_python 多任务跑容易堆积
fig.savefig(out_path, bbox_inches='tight')
plt.close(fig)

# 5. 矢量优先:SVG / PDF 给论文,PNG 给 PPT(dpi >= 300)

仓库还提到一个 scientific-visualization skill 专门做期刊样式多面板,这个可以一并扒进来作为 plot_pub 的进阶段。

3.4 materials_db(COD + NIST + USPTO 三合一) ★★

原仓库 database-lookup 78 个库,只 5 个对你们直接有用,不要整体抄,做精简子集:

DB 用途
Materials Project 已被 Pymatgen 的 MPRester 覆盖,不重复
COD(Crystallography Open Database) 免费晶体结构库,补充 MP 没收的实验结构
NIST 标准参考数据,材料热物性、相平衡
USPTO 美国专利全文检索 → 并入 skills/patent
PubChem / ChEMBL 只在做外加剂(减水剂、缓凝剂)这类有机分子时用 → 不常用,可后置

落地动作

  • skills/patent 加一个 query_uspto(keyword, ...) helper(USPTO Open Data Portal API)
  • 新建 skills/materials_db/SKILL.md,封 COD + NIST 两个查询函数
  • Materials Project 让 Pymatgen 走,本 skill 不重复

  • USPTO 要 API key(免费),申请走 https://developer.uspto.gov/
  • COD 是 RESTful,免 key,但限速,加 sleep
  • NIST 各子库 API 不统一(WebBook / Materials Data Repository / ICSD 镜像),要分别封装

4. 现有 6 个 skill 的增强参考(不替换)

把仓库对应 skill 的 SKILL.md 拿来读,把"何时用 / 反模式 / 标准工作流"段落里你们没写的合理项抽进现有 SKILL.md。不要整体替换,你们的 paper_server / proposal 模板 / patent 流程都是定制化的。

仓库 skill 对应你们 可抄的部分
Literature Review / Paper Lookup skills/research 多库 fallback 策略、引文格式标准化
Scientific Writing skills/proposal 章节结构、claim-evidence 写作规范
Scientific Slides / LaTeX Posters skills/ppt 多 panel 布局、color palette 规范
Document Skills(PDF/DOCX/XLSX/PPTX) skills/documents 表格读取、复杂 PDF 抽取
Peer Review skills/review 审稿 checklist
Scientific Schematics (新加) 工艺流程图、装置示意图自动生成

5. 不推荐(直接跳过)

领域 仓库代表 skill 跳过原因
生物信息 / 基因组 BioPython / Scanpy / scVelo / Arboreto / anndata / esm 跟无机材料无交集
药物发现 DiffDock / DeepChem / Datamol / adaptyv 同上,RDKit 偶尔有边但太窄
临床研究 ClinicalTrials.gov / ClinVar / COSMIC / Open Targets 同上
医学影像 pydicom / histolab / PathML 同上
量子计算 Cirq / Qiskit / PennyLane / QuTiP 除非真做第一性原理(成本极高)
代谢建模 COBRApy 同上
地理空间 GeoPandas 同上
天文 astropy 同上

6. 中间档(暂不动,记下来,有场景再说)

skill 触发场景
OpenMM + MDAnalysis 水泥水化分子模拟、玻璃网络结构 MD —— 门槛高,看院里有没有人真做计算
NetworkX 知识图谱、合作网络分析
SymPy 推传热扩散、强度模型公式
scikit-image SEM 图像分析(粒径分布、形貌识别) —— 仓库没单列,如要做自己装

7. 落地排期建议

顺序 skill 工作量估计 收益
1 plot_pub(matplotlib)SKILL.md 0.5 day 立刻见效,所有出图任务受益,中文字体坑也一次扫掉
2 materials_pymatgen 装包 + SKILL.md + 化学式映射 1 day 打开无机材料计算能力(XRD/相图/对称性)
3 stats_ml SKILL.md(sklearn + statsmodels + PyMC) 1 day 配方-性能建模常态化
4 materials_db(COD + NIST + USPTO) 2 day(每个 API 都要踩坑) 中等,可后置;USPTO 部分先并入 patent
5 现有 6 个 skill 抽 best practice 增强 各 0.5 day 渐进改善,不阻塞

8. 三个决策点(写代码前需要你确认)

  1. 新 skill 命名风格:用 materials_pymatgen / stats_ml / plot_pub / materials_db 这种业务前缀,还是直接 pymatgen / sklearn 这种工具名?
    • 业务前缀:更贴你们院的场景导航
    • 工具名:跟开源生态对齐,容易回查官方文档
  2. Materials Project API key.env 还是单独配置文件?
  3. USPTO 并入 skills/patent 还是单独建 skills/uspto?(我倾向并入,因为 patent skill 已经有中国专利逻辑)

定下这三点我就开始动 #1(matplotlib)。