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 |
抄仓库的反模式段(高频踩坑):
- 别在 pipeline 外预处理 → 交叉验证会数据泄漏
- scaler 别 fit 在 test 上
- 分类任务记得
StratifiedKFold - 树模型不用 scale 特征
- 收敛 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. 三个决策点(写代码前需要你确认)
- 新 skill 命名风格:用
materials_pymatgen/stats_ml/plot_pub/materials_db这种业务前缀,还是直接pymatgen/sklearn这种工具名?- 业务前缀:更贴你们院的场景导航
- 工具名:跟开源生态对齐,容易回查官方文档
- Materials Project API key 走
.env还是单独配置文件? - USPTO 并入
skills/patent还是单独建skills/uspto?(我倾向并入,因为 patent skill 已经有中国专利逻辑)
定下这三点我就开始动 #1(matplotlib)。