← Về thư mục
📄 / / profiles / r-and-d / raw_evidence / OpenAI4S / skills / catalyst_sar_screening / README_zh.md

Catalyst SAR Screening Skill

单原子催化剂 SAR 筛选的渐进披露 recipe,能量引擎是写死的:石墨烯 M–N4 结构只能用 FAIRChem UMA uma-s-1p1 / oc20 评估,然后排序、出报告。UMA、Hugging Face 访问或凭据不可用时,这个 recipe 只能停下来问用户;悄悄换成查表、经验规则或别的 MLIP 都是禁止的。

Python sidecar 里是真实的 pipeline 代码,但要跑出可用的结果,还需要兼容的科学计算依赖包、模型权重、按需提供的 HF_TOKEN 或可达的 hub、算力,以及一个全新的工作目录。仓库里提交的 metal_center_dissolution_* 文件是刻意抽掉数值的开发者演示壳,绝不能当成真实运行结果返回给用户。

就算这一趟跑得干干净净,也别忘了 UMA 是什么。oc20 任务下的 uma-s-1p1 是机器学习势,是用来逼近 DFT 能量的代理模型,而不是真去解它;报告里每一个溶解电位、每一个 ORR 过电位,都是从它预测的结合能推出来的。所以这个 Skill 给出的排序只是一份分诊清单:接下来哪些金属中心值得排进 DFT 计算或者实验合成。它不是对这些催化剂真实稳定性或活性的测量。

安装

一个 Skill 就是一个文件目录,所谓安装,就是把这个目录复制到 Agent 会去读的地方。有 Node 18+、且 PATH 上有 git(npm 靠它解析 github: 形式的包名)即可,无需先克隆仓库:

npx github:PKU-YuanGroup/OpenAI4S install catalyst_sar_screening --target claude

--target claude 写入 ~/.claude/skills,claude-project 写入 ./.claude/skills,openai4s 写入 <data_dir>/user-skills,--dir <path> 则写到你指定的任意位置。往目标写任何东西之前,都会先打印解析出的绝对路径;--dry-run 到此为止,不再写入。重装时,若目标副本被你改过、或者不是它自己装的,就拒绝覆盖;uninstall 也只删除它自己写过的文件。对于 npm 发布版中包含的配方,可用 npx @pku-yuangroup/openai4s-skills install catalyst_sar_screening --target claude 安装发布版本。npm 目录可能与当前仓库不同。

没有 Node 时,直接取这个目录——需要 .zip 上传时再打包。tarball 是整个仓库(超过 100 MB),下面这条管道是 POSIX shell(macOS、Linux、WSL)写法,只解出这一个目录:

curl -L https://codeload.github.com/PKU-YuanGroup/OpenAI4S/tar.gz/refs/heads/main \
  | tar -xz --strip-components=2 OpenAI4S-main/skills/catalyst_sar_screening
python3 -m zipfile -c catalyst_sar_screening.zip catalyst_sar_screening

同一份内容的图形界面版本是点击下载整个仓库 zip 包,Windows 上也走这条路:解压后把 skills/catalyst_sar_screening/ 拷出来即可(unzip main.zip 'OpenAI4S-main/skills/catalyst_sar_screening/*' 只解这一个目录)。如果你本来就在跑 OpenAI4S,那这里没有任何东西需要安装——wheel 自带全部内置 Skill,且内置 Skill 优先于 <data_dir>/user-skills 里的同名副本。目标目录、来源记录,以及安装器拒绝去做的那些事:tools/skills-installer/。

文件

文件 职责
.gitignore 把 Python 构建、缓存文件以及所有图片格式挡在 Skill 根目录之外,避免真实运行产生的图被误认成仓库里提交的用户交付物。
SKILL.md 硬锁定的 recipe 本身:需要哪个 UMA 后端和运行环境、什么时候必须停下来问用户而不是自己变通、如何把 run_pipeline 跑进一个全新的工作目录、固定的流程阶段、哪些文件才算交付物、开发者演示的警告,以及分析人员的自检清单。
kernel.py 可选的 sidecar,也是 pipeline 真正的所在。它加载结构 catalog,把一条描述解析成 POSCAR(先在 catalog 里精确匹配,匹配不到就替换金属中心派生),提供只走 UMA 的 CalculationTools,并在开跑前检查依赖、hub 可达性和模型是否就绪。之后评估溶解与 ORR 指标、对候选结构排序、分析 SAR 趋势、把结构解析回来,并渲染图、dashboard 和报告。run_pipeline 把整条链路串起来;run_metal_center_dissolution_case 是受约束的 helper,固定 M–N4 motif,只改变金属中心。
contcar_catalog.json 内嵌 catalog 的第 2 版:28 段石墨烯 / pyridineN M–N4 slab 的 POSCAR 文本,能对上时作为精确模板,对不上时作为最接近的起始结构。它是合成的 fixture,明确不是实验数据集发布。
build_example.py 只重建文本和 HTML 的开发者演示壳:清掉数值结果、后端字段和图片路径,写入免责声明,全程不调用 UMA。
metal_center_dissolution_descriptions.json 三个演示用的结构请求(Mn-N4、Fe-N4、Cu-N4),用来说明输入长什么样。
metal_center_dissolution_summary.json 溶解模式下经过净化的三行演示元数据。里面没有收敛的数值预测,标了 demo: true,不是用户交付物。
metal_center_dissolution_dashboard.html 生成出来的演示壳 dashboard:自包含的 HTML,带免责声明,不含真实的 UMA 图或指标。
metal_center_dissolution_report.md 生成出来的演示壳方法与报告文本,其中明说不包含任何已算出的候选结果。