把“怎么做研究”写进文件:从 scientific-agent-skills 看科研 Agent 的程序性知识层
目录
一、一个没有运行时的仓库为什么会登上周榜
(一)从一周七千余星说起
(二)问题与结论说明
二、科研 Agent 工具化的三代路径
(一)第一代:领域工具集
(二)第二代:工具宇宙
(三)第三代:程序性知识库
(四)三代的分水岭
三、拆解一个技能:结构、规模与工程契约
(一)Agent Skills 规范下的技能是什么
(二)163 项技能的实测规模
(三)技能在 16 个领域的分布
(四)两个典型技能
1、database-lookup:78 个数据库的路由表
2、rdkit:版本钉死与陷阱清单
(五)工程契约:CI、测试树与安全扫描
四、程序性知识究竟补了哪一层
(一)语法正确不等于语义正确
(二)标识符命名空间与来源标注
(三)与检索增强、工具与工作流引擎的边界
五、上下文经济学:技能库越大越好吗
(一)三层渐进披露的真实成本
(二)46 条工作流的窗口测算
(三)选择问题:描述之间分得开吗
(四)规模化之后的检索与“克制”
六、质量、安全与信任
(一)审核不均:核心技能与边缘技能经历的不是同一套流程
(二)安全扫描:28 项严重级发现与“自我引用指令”
(三)供应链视角:技能是需要治理的第三方依赖
(四)“论文经过评审”不等于“代码经过审计”
七、维护负担:上游会动,技能会过期
(一)四个真实的接口漂移节点
(二)版本钉死的双刃剑
(三)路由表策略的耐久性
八、同类横向对比
(一)五个项目的对比矩阵
(二)互补而非替代
九、落地判断与接入建议
(一)已确认、待验证、存疑
(二)科研团队的四步接入路径
(三)企业研发部门的额外考量
十、结语
参考资料
干货分享,感谢您的阅读!
2026 年 9 月第一周,K-Dense 维护的开源仓库 scientific-agent-skills 在 GitHub 周榜上新增七千余星,累计突破四万星。它没有模型权重,没有服务端,甚至没有一个可以被调用的函数:仓库里的核心资产是 163 个目录,每个目录下有一份名为 SKILL.md 的 Markdown 文件,写着某一类科研任务“应该怎么做”。
本文从这件看似平淡的事实出发,回答三个问题:第一,为什么科研 Agent 的工具化在经历了“领域工具集”与“工具宇宙”两代之后,会走到“程序性知识库”这一步;第二,一份技能文件究竟解决了工具与模型都解决不了的哪一层问题,它的三层渐进披露结构在上下文经济学上意味着什么;第三,这个库在质量、安全与维护上的真实状况如何,科研团队与企业研发部门应当以什么姿态接入。
这个库的贡献不在于“又多了一批工具”,而在于第一次把科研领域的隐性惯例变成了可安装、可版本化、可跨宿主复用的文本资产;但它的作者自己也承认没有任务级的对照评估,安全扫描找出了 28 项严重级发现,上游数据库接口的漂移会让技能中的示例静默失效。它更准确的定位是“科研惯例的可安装文档”,而不是“科研 AI 的标准库”。把它当第三方依赖来治理,收益是真实的;把它当成结论的担保,风险同样是真实的。
一、一个没有运行时的仓库为什么会登上周榜
(一)从一周七千余星说起
按 GitHub 周度趋势榜的数据,scientific-agent-skills 在 2026 年 9 月第一周新增约 7,558 星,累计约 42,000 星;到本文写作时,仓库页面显示的数字已经超过 43,800 星、4,000 次分叉。对一个面向科研群体的开源项目来说,这是相当罕见的增速。它的仓库描述写得很直接:让任何 AI Agent 变成 AI 科学家,宣称有 19 万以上科学家在使用,并列出了 Cursor、Claude Code、Codex、Pi、Antigravity 等兼容宿主。
值得注意的是这个仓库里没有的东西。它没有训练任何模型,没有部署任何服务,也不像 ToolUniverse 那样提供数千个可以被 MCP 协议调用的工具端点。打开 skills 目录,看到的是 163 个子目录,每个子目录下有一份带 YAML 头部的 Markdown 文件,部分目录附带 scripts、references、assets 三个可选子目录。换句话说,它的主体是文档,而不是代码。一个以文档为主体的仓库能吸引如此规模的关注,说明科研群体缺的不只是“能调用的工具”,还有“知道该怎么用工具”的那一层知识。
这一层知识过去散落在各个实验室的内部 Wiki、师兄师姐的口头传授、以及每个研究者自己维护的 Prompt 片段里。一个典型的场景是:某个蛋白质工程组花了几周把 PDB 结构解析、UniProt 查询、RDKit 描述符计算串成一条流程,另一个药物发现组做了几乎一样的事,两边的 Agent 各自跑得很好,却完全无法互换。第三个团队想做蛋白与小分子的相互作用分析,要么重新适配两套接口,要么再写第三套。这种碎片化在传统软件领域早已被“标准库”和“包管理器”解决,而在科研 Agent 领域,直到 2025 年底 Agent Skills 开放规范发布之前,甚至连一个统一的“技能是什么”的定义都不存在。
(二)问题与结论说明
本文不打算重复仓库 README 里的功能清单,而是围绕三个问题展开。第一个问题是历史定位:科研 Agent 的工具化已经走过 ChemCrow 一类的领域工具集,以及 Biomni、ToolUniverse 一类的大规模工具库,为什么还需要一个“程序性知识库”?第二个问题是机制:一份技能文件到底在补什么,它和工具、检索增强、工作流引擎的边界在哪里,它的渐进披露结构在上下文成本上有什么真实的数字?第三个问题是判断:这个库的质量、安全和维护状况如何,科研团队和企业研发部门应当以什么方式接入?
这个库最有价值的部分是把“语义正确性”从模型与工具都覆盖不到的盲区中拎出来,写成可安装的文本;它的渐进披露设计让全量安装的常驻成本只占 20 万 token 窗口的 7.1%,但一旦把参考文件全部读入,46 条文档化工作流里有 29 条会撑爆窗口;它的作者在论文中坦率地写明“没有任务级评估”,2026 年 9 月 7 日的安全扫描找出了 28 项严重级发现,其中包括要求 Agent 在用户成果里插入对本库引用的“自我引用指令”。因此,它值得被认真采用,但采用的正确姿态是把它当作需要治理的第三方依赖,而不是当作科研结论的担保。
二、科研 Agent 工具化的三代路径
(一)第一代:领域工具集
2023 年 4 月发布的 ChemCrow 是这一代的代表。它把 GPT-4 与 18 个化学专用工具组合起来,覆盖有机合成、药物发现和材料设计,能够自主完成合成规划并在机器人平台上执行。它的评估方式是让大模型与专家化学家共同打分,作者同时也注意到一个尴尬的事实:用 GPT-4 做评估者时,它分不清 GPT-4 自己明显错误的输出与 ChemCrow 的正确输出。这个细节预示了后来所有科研 Agent 项目都要面对的评估困境。
同一时期的 PaperQA2 走的是另一条窄而深的路。它的 Agent 只有三个核心工具:论文检索、证据收集、答案生成,外加正在开源的引文遍历能力。它宣称在科学问答、摘要与矛盾检测等任务上超过了人类表现,仓库有 9,200 余星。它擅长文献分析,但完全不涉及实验数据处理。
这一代的共同特点是:工具由团队手写并硬编码进自己的 Agent 框架,数量在几个到二十个之间,领域边界清晰。它回答的问题是“模型能不能调用外部计算与检索”,答案是能。它没有回答的问题是跨团队复用与跨学科覆盖:ChemCrow 的合成规划工具不会出现在 PaperQA2 里,反过来也一样。
(二)第二代:工具宇宙
2025 年出现了两个规模上完全不同量级的项目。斯坦福团队的 Biomni 从 bioRxiv 全文语料中挖掘生物医学研究者实际使用的软件与数据库,整合了约 150 个工具、105 个软件包和 59 个数据库,覆盖 25 个生物医学子领域,2026 年在 Science 正刊发表。哈佛团队的 ToolUniverse 则把规模推到了另一个极端:标准化了 2,700 余个科学工具和 130 余项研究技能,每个工具都用自然语言声明用途、用类型化 schema 声明输入输出,并采用与后端无关的调用格式,可以接入任何语言模型。
这一代的关键词是“接口一致性”。MCP 一类的协议把“调用”这个动作标准化了:任何工具只要按规范声明自己的 schema,任何宿主就可以发现并调用它。规模问题和一致性问题在这一代得到了解决。
但一个新的问题浮现出来:调对了接口,不等于做对了研究。工具能告诉 Agent 如何向 UniProt 发请求并解析返回的 JSON,却不会告诉它“应该先把基因符号解析成 UniProt 登录号再查,否则同名基因会跨物种混淆”;工具能算出两组数据的 t 检验 p 值,却不会提醒它“3 只小鼠各测 100 个细胞时样本量是 3 而不是 300”。这些是学科内部的惯例,不是接口的一部分。
(三)第三代:程序性知识库
2025 年 12 月 18 日,Anthropic 把 Agent Skills 作为开放规范发布。规范本身极简:一个技能就是一个目录,目录里必须有一份 SKILL.md,文件由 YAML 头部和 Markdown 正文组成;宿主启动时只加载每个技能的名字和描述,任务匹配时再读取完整正文,正文引用的脚本与参考文档只在执行到具体步骤时才被读取。几周之内,OpenAI 的 Codex、Google 的 Antigravity、GitHub Copilot、Cursor 等宿主相继支持了这一规范,第三方索引站点在三个月内收录了超过 40 万个技能。
scientific-agent-skills 是这一规范在科研领域最大的一次落地。它的论文给出了一个精确的定义:技能是“被编写的工序”,区别于检索增强中被召回的“段落”,也区别于工具,因为“技能不提供任何可供调用的运行时”。它要解决的是前两代留下的那个空洞:程序性知识,也就是“该怎么做”而不是“能不能做”。
(四)三代的分水岭
把三代放在一起看,它们并不是替代关系,而是逐层叠加。第一代证明了模型可以调工具,第二代把调工具这件事标准化并推到数千的规模,第三代则在工具之上补了一层“领域惯例”。一个成熟的科研 Agent 需要同时拥有三层:能调用的工具、标准化的调用协议、以及告诉它何时调用哪个工具并如何解释结果的程序性知识。
这也是为什么 scientific-agent-skills 与 ToolUniverse 之间并不构成竞争关系。前者的很多技能正文里,实际执行的动作就是调用某个 Python 包或某个 HTTP 端点;后者提供的正是这些端点。技能层的脚本可以调用工具,工具的返回结果由技能规定如何解释。
三、拆解一个技能:结构、规模与工程契约
(一)Agent Skills 规范下的技能是什么
按照 agentskills.io 发布的规范,SKILL.md 的 YAML 头部只允许六个字段。name 与 description 必填,前者限 64 字符、只允许小写字母数字与连字符且必须与目录名一致,后者限 1,024 字符,要求同时说明“做什么”与“何时用”。license、compatibility、allowed-tools、metadata 四个字段可选,其中 compatibility 用于声明环境、密钥与网络需求,allowed-tools 是实验性字段,用于预授权宿主工具,metadata 是自由的键值映射。
scientific-agent-skills 在规范之上加了自己的约束。每份 SKILL.md 必须有带引号的 metadata.version,新技能从 1.0 起步,普通改进递增小版本,破坏性变更递增大版本,且版本递增必须与改动在同一次提交中完成。metadata 必须写成块映射而不是单行 JSON,因为校验器使用的 strictyaml 解析器会直接拒绝流式映射。技能目录只允许 SKILL.md、scripts、references、assets 四个成员,测试、夹具、生成物一律放在库根目录的 tests 树下,不随技能载荷装进 Agent。
(二)163 项技能的实测规模
项目论文对 v2.65.0 快照做了细致的统计。163 份 SKILL.md 正文的中位长度是 285 行,最长 496 行,没有一份超过规范建议的 500 行上限;每份文件中位有 10 个二级标题、8 个代码块,全库共 1,489 个代码块,其中 760 个 Python、625 个 Shell。105 项技能附带可执行脚本,共 651 个文件,其中 527 个 Python 脚本;154 项技能附带参考文档,中位每项 6 个文件,最多的一项有 80 个;34 项技能附带静态资源。
作者分布是理解这个库质量结构的关键数字:131 项由 K-Dense 内部编写,24 项来自 17 位外部贡献者,4 项从 Anthropic 的公开技能库移植,另有 4 项没有署名。也就是说,超过八成的技能出自同一家公司,这既保证了风格与结构的一致,也意味着库的走向与这家公司的商业路线高度绑定。
(三)技能在 16 个领域的分布
论文把 163 项技能归入 16 个实践领域。前两位分别是科学交流与图表 22 项、科学计算与数据工程 21 项,其后是基因组与序列分析 17 项、数据与文献检索 15 项、研究平台与实验室自动化 13 项。化学信息学与药物发现只有 9 项,结构生物学与蛋白设计只有 4 项,蛋白质组、代谢组与分析化学只有 3 项。
这个分布揭示了一个容易被忽视的事实:这不是一个“化学工具箱”或“生物工具箱”,而是一个覆盖研究全流程的技能库。写论文、做海报、画示意图、管理引用、做统计检验、清洗数据这类通用科研能力合计 76 项,学科专属能力 69 项,实验室自动化与云计算等平台类 18 项。对一个研究者来说,Agent 犯错最多的地方往往不是某个高深的专业计算,而是把图画错、把引用格式弄乱、把多重检验漏掉,这正是通用能力占比最高的原因。
需要提醒的是,仓库 README 采用的是另一套 20 余类的分类口径,数字与论文的 16 领域不完全一致;仓库描述中的“165 项技能”与论文的 163 项之间的差异,则来自库以每月约 9.7 次的频率持续发布。引用任何一个数字时都应注明快照标签。
(四)两个典型技能
1、database-lookup:78 个数据库的路由表
database-lookup 是理解这个库设计哲学最好的样本。它的描述写道:以明确的端点、过滤条件、分页与来源标注查询有文档的公开数据库接口,适用于“必须从具名来源可复现地获取科学、监管、金融或其他数据库事实,而不是从一般知识中推断”的场景。它对接 78 个数据库:生物与基因组 33 个,疾病与临床 12 个,化学与药物 9 个,经济与金融 8 个,物理与天文 5 个,地球与环境 4 个,社会科学 3 个,材料科学与专利监管各 2 个。
它的核心工序有六步:确认问题属于哪类事实,选源并核对标识符格式,构造带过滤与分页的请求,处理速率限制与重试,按模板输出结构化结果,最后附上来源、版本与访问时间。它把访问规则写得很具体:NCBI 系列匿名每秒 3 次、携带密钥后每秒 10 次;Ensembl 每秒 15 次;SEC EDGAR 每秒 10 次且必须带 User-Agent;18 个数据库需要免费密钥;DrugBank、COSMIC、BRENDA 三个为付费或受限访问。失败恢复也有固定的四步:核对标识符、换备用标识符、换数据库、带上下文报告失败。
关键在于它不封装任何一个数据库的客户端。它不是 78 套需要跟随上游接口演进的代码,而是一张“去哪、怎么问、怎么记来源”的路由表,具体的 HTTP 请求交给通用工具与宿主的抓取能力。这种设计的好处是维护成本远低于封装客户端,代价是同样的请求在不同宿主上的执行细节可能不同,可复现性依赖技能对“记录来源与版本”的强制要求。
2、rdkit:版本钉死与陷阱清单
rdkit 技能展示的是另一种类型:围绕单一软件包的操作指南。它的头部声明许可证为 BSD-3-Clause,与仓库的 MIT 不同,提醒使用者技能级许可证需要单独核对。正文明确写出基线版本是 RDKit 2026.03.3,核对日期为 2026 年 6 月 7 日,并推荐用 conda-forge 安装以保证跨平台一致。
它的“常见陷阱”一节列了六条:解析后必须校验分子对象是否为空,检查净化是否成功,计算性质前要补氢,区分二维与三维坐标生成,理解 SMARTS 匹配的语义,避免在多线程中共享供应器对象。三个脚本分别处理分子性质计算、相似性搜索和子结构过滤,三份参考文档分别是 API 参考、描述符参考和 SMARTS 模式。正文约 1,200 字,把细节推到了参考文档中。
这两个样本代表了库内技能的两种基本形态:面向“事实获取”的路由型技能,与面向“计算操作”的包指南型技能。前者的价值在于来源可追溯,后者的价值在于把某个包的踩坑经验固化下来。
(五)工程契约:CI、测试树与安全扫描
这个库在工程上的严格程度超过多数以文档为主的开源项目。库根目录的 tests/_meta 是阻塞式检查,覆盖头部字段合规、500 行上限、技能目录下不得出现测试与编译产物、本地链接可解析、脚本可解析、禁止 eval 与 exec 与 os.system、脚本不得与标准库模块同名、不得出现硬编码本地路径、Shell 脚本语法有效。作者强调这套检查“不需要任何科学软件包,几秒内完成”。
含脚本的技能必须在 tests 目录下有同名测试套件,每个套件在独立进程中运行以避免不同技能的 scripts 目录之间模块名冲突,并复用共享的 --help 行为契约。每周有基于 Cisco AI Defense Skill Scanner 的增量安全扫描,每 30 天全量重扫,结果发布在 docs/security-report.md。所有技能都通过了规范的参考校验器。
不过论文也坦率写明:十项结构契约只覆盖 163 项中的 105 项,也就是那些带脚本的技能;58 项纯文档技能在 CI 循环之外,其中两项存在失效的本地路径。这是后文讨论质量不均时会回到的数字。
四、程序性知识究竟补了哪一层
(一)语法正确不等于语义正确
论文用一个例子界定了“程序性知识”:3 只小鼠、每只测 100 个细胞,样本量是 3 而不是 300。这是统计学里的伪重复问题。把细胞当成独立样本,p 值会被人为压低几个数量级,显著性完全是假象。任何一个统计软件包都不会对此报错,语言模型在没有明确提示的情况下也很少主动纠正,只有学科内的人知道这条惯例。
同类的错误可以列出一长串。用基因符号直接去查蛋白数据库,把 TP53 当成一个蛋白条目,忽视了同名基因跨物种、别名冲突与历史改名的问题。对两万个基因逐一做差异检验后只报告原始 p 值,上千个“显著”结果里大半是噪声,却没有做多重检验校正。计算分子描述符前忘记补氢,得到的极性表面积与实际相差甚远。这些错误的共同点是:代码跑通了,结果看起来很正常,结论却是错的。
技能补的正是这一层。它把“哪个检验适用、哪个标识符命名空间是权威的、哪些注意事项必须附带”写成 Agent 必须执行的步骤,而不是依赖模型“恰好记得”。用论文的话说,程序性知识针对的是语义正确性,即生成的代码是否遵循学科惯例,而不是语法上的可执行性。
(二)标识符命名空间与来源标注
科学数据的一个基本困难是同一个实体在不同数据库里有不同的标识符。一个人类蛋白在 UniProt 有登录号,在 NCBI Gene 有基因 ID,在 Ensembl 有另一套 ID,在 HGNC 有官方基因符号,在 PDB 里对应的可能是多个结构条目。database-lookup 技能专门有一节“常见标识符格式”做跨库映射,规定了先解析到权威命名空间再查询的顺序。
来源标注是另一条被写成硬性要求的惯例。技能规定每一条从数据库取回的事实都要附来源数据库、版本或发布号、访问时间。这在传统的人工研究中是基本素养,在 Agent 场景里却经常被省略:模型生成的报告看起来很完整,但没有人知道某个数字是从哪个版本的数据库、哪一天取回的。当数据库在几个月后更新,结果就无法复现。
(三)与检索增强、工具与工作流引擎的边界
论文用三组对比划清了技能的边界。与检索增强相比,技能是“被编写的工序”而不是“被召回的段落”:检索给出的是相关文本,技能给出的是有顺序、有条件、有检查点的操作步骤。与工具相比,技能“不提供运行时”:它不能被调用,只能被阅读与遵循。与 Nextflow、Snakemake 一类工作流引擎相比,技能是补充而非替代:引擎负责把已确定的步骤可靠地执行,技能负责在步骤确定之前告诉 Agent 应该走哪条路。
论文也引用了两个对技能不利的先行研究,值得记住。一项研究表明,当 Agent 从未经筛选的大规模技能库中自行选择技能时,技能带来的收益会缩小。另一项网络安全领域的再分析发现,当工具层已经返回经过严格 schema 校验的输出时,技能的收益几乎消失。这两条提示了一个边界:技能最有价值的地方是工具输出松散、领域惯例复杂的场景,而不是工具已经把一切约束好的场景。
五、上下文经济学:技能库越大越好吗
(一)三层渐进披露的真实成本
渐进披露是 Agent Skills 规范的核心设计,也是这个库能装下 163 项技能而不撑爆上下文的原因。第一层是常驻元数据,只有名字和描述,启动时全部载入;第二层是完整的 SKILL.md 正文,任务匹配时载入一份;第三层是 references、scripts、assets,只在执行到具体步骤时读取。
论文用 o200k_base 分词器对 v2.65.0 快照做了精确测算。第一层 163 项技能合计 14,246 个 token,占 20 万 token 窗口的 7.1%。第二层全库合计 482,506 个 token,单技能中位 2,857 个。第三层 2,480,674 个 token,分布在 1,033 个参考文件中。整个文档语料 2,963,180 个 token,其中 83.7% 在未被激活前不会进入上下文。
7.1% 这个数字说明全量安装的常驻代价是可以接受的。但这只是“装得多”的问题,真正的考验在于“用得深”。
(二)46 条工作流的窗口测算
论文从库内文档中提取了 46 条完整的工作流,测算每条工作流涉及的技能如果全部载入需要多少上下文。只载入涉及技能的 SKILL.md 正文时,中位工作流需要 47,706 个 token,占窗口 23.9%,46 条全部放得下。如果再把这些技能的参考文件全部载入,中位工作流需要 225,498 个 token,占窗口 112.7%,46 条中有 29 条溢出。
换一个角度看这组数字:扣除技能正文后,中位工作流的剩余窗口能容纳其参考材料的 85%,下四分位工作流只能容纳 61%,最重的一条只能容纳 35%。
这组数字对使用者有三层含义。第一,渐进披露解决的是安装成本,没有解决执行深度:技能库越大、单条工作流涉及的技能越多,可承受的参考深度反而越紧。第二,宿主的加载策略决定实际成本:一个倾向于一次读全所有 references 的宿主,会在三分之二的工作流上把窗口撑爆,而一个严格按需读取的宿主则可以把大部分工作流控制在四分之一窗口以内。第三,更长的上下文窗口只是把这条线右移,参考文件的分片粒度以及技能自身对“先读哪一份”的路由提示才是结构性解法。
(三)选择问题:描述之间分得开吗
常驻层只有描述文字,宿主凭它决定读哪一份技能。如果两份技能的描述高度相似,宿主就可能读错,或者两份都读、白白消耗窗口。论文对 163 条描述做了词汇相似度分析:中位技能与其最近邻技能的余弦相似度只有 0.15,第 90 百分位是 0.26,最接近的一对是 datamol 与 rdkit 的 0.40,这两个包在化学信息学中本来就是互相封装的关系。此外有 33 条描述直接点名另一项技能,起到“这类任务请去那边”的路由作用,且这些指针在相似描述之间的出现频率是随机水平的约 14 倍。
论文对这项测算的局限说得很清楚:词汇距离是宿主真实选择行为的代理,并不等于宿主实际会选对。库没有测过任何宿主的真实选择率。
(四)规模化之后的检索与“克制”
当技能库从数百扩展到数千项,朴素的全量装载会遇到两个问题:常驻层随规模线性膨胀,语义检索能找到主题相关的技能却漏掉前置依赖,导致执行断链。2026 年 4 月发表的 Graph-of-Skills 研究针对这一问题提出离线构建技能依赖图、在线按预算取一束相关技能的方法,在 SkillsBench 上相比全量装载把峰值奖励提高了 25.55%,同时把总 token 消耗降低了 56.72%,且在 200 到 2,000 项技能的规模区间内结论一致。需要注意这项研究并非针对 scientific-agent-skills 测得,但它说明了“越大越好”在技能库上并不成立。
scientific-agent-skills 对此的应对是“克制”。论文写明库主动拒收三类技能:通用软件工程技能,因为写代码、调 Git、配环境的能力交给宿主自带即可;编排器技能,因为不希望一个“总控 Agent”吞掉所有任务;冗余供应商技能,因为同一能力收多家同质供应商会让描述相互重叠。这三条拒收原则的目的都是维持常驻层的选择压力。
六、质量、安全与信任
(一)审核不均:核心技能与边缘技能经历的不是同一套流程
论文在方法部分坦率地描述了技能的编写方式:“我们的编写流程通常从一份语言模型草稿开始,然后人工审阅文本,并测试所记录工作流的基本功能。”换句话说,163 项技能的第一稿大多是模型写的,人工审阅与基本功能测试是质量的主要保障。131 项 K-Dense 内部技能经过内部审核,24 项社区技能的审核深度则取决于贡献者与维护者的投入。
自动化检查的覆盖也是不均的。规范校验器覆盖全部 163 项,十项结构契约只覆盖 105 项带脚本的技能,58 项纯文档技能不在 CI 循环之内,其中两项被发现有失效的本地链接。这印证了一个直觉:文献检索、数据库查询这类被高频使用的核心技能,经过的实际测试远多于某个特定领域的边缘计算技能。使用者需要知道自己装的是哪一类。
(二)安全扫描:28 项严重级发现与“自我引用指令”
仓库 docs 目录下公开了 2026 年 9 月 7 日用 Cisco AI Skill Scanner 2.1.0 对全部 163 项技能的全量扫描报告。结果是 28 项严重级、4 项高级、45 项以上中级、500 项以上低级发现,152 项技能零发现。
严重级发现集中在少数技能的“环境变量读取加网络外发”链路:脚本读取密钥后向外部端点发送数据。报告对多数此类发现附了上下文说明,指出它们属于“对目标服务的正常 API 鉴权,而非隐蔽外传”,但仍然保留为严重级以便使用者自行判断。另外三类被点名的模式是:含 eval、exec 或 subprocess 的代码块;把远程脚本直接管道给 bash 的安装步骤;为寻找凭据文件而向上级目录宽泛遍历。
最值得单独讨论的是“自我引用指令”。扫描发现部分技能正文要求 Agent 在用户的成果中插入对本库的引用,被判定为策略层问题。rdkit 技能正文中确实有一节“引用 Scientific Agent Skills”。从学术规范看,使用了某个工具在方法部分注明是合理的;但由技能正文指示 Agent 在用户不知情的情况下自动插入引用,就越过了工具与营销之间的边界。这个细节提醒使用者:技能正文是会被模型逐字执行的指令,其中任何一句都可能影响最终交付物。
(三)供应链视角:技能是需要治理的第三方依赖
2026 年 2 月发表的一篇关于 Agent Skills 的综述对整个生态做了抽样,发现 26.1% 的社区贡献技能含有漏洞,并提出了一个四级、基于门控的“技能信任与生命周期治理框架”,按技能来源分配逐级递增的部署权限。Anthropic 自己的工程文章也明确建议“只从可信来源安装技能”,并审阅技能中的代码依赖、捆绑资源以及任何可能连接不可信外部网络的指令。
这些提醒指向同一个结论:技能不是无害的文档,而是会被执行的代码与会被遵循的指令。它应当被当作第三方依赖来治理:区分来源等级,审阅附带脚本,最小化技能可用的密钥与网络权限,定期用扫描器重扫。scientific-agent-skills 在这方面做得比多数技能库好,它有公开的扫描报告、有阻塞式 CI、有 SECURITY.md,但这些机制降低的是风险,不是消除风险。
(四)“论文经过评审”不等于“代码经过审计”
这个库的另一个信誉来源是它的 arXiv 论文。论文的价值是真实的:它给出了精确的规模统计、token 测算、相似度分析和完整的局限说明,是本文大部分数字的来源。但需要认清两件事。第一,它是一篇“资源型论文”,作者自己写明其目的是介绍这个库,“而不是验证安装任何单个技能的效果”,全文没有任务级评估,也没有宿主选择率。第二,arXiv 预印本本身不经过同行评审,即便被会议接收,评审的对象也是论文的论证,而不是 163 份技能正文与 651 个脚本的科学正确性。
论文列出的八项局限值得每个使用者读一遍:没有任务级评估;选择性只在语料上测过;被选中的技能仍可能在科学上失败;克隆数不等于使用量;跨宿主兼容是意图而非测试结果;审核不均;测量依赖分词器等约定;库是每月近十次发布的动态快照。作者在“反应”这一项的诚实值得特别提及:他们估算 14 天窗口内约有 36,000 个不同的克隆客户端,并明确指出这是“影响力的代理指标,不是 Agent 实际使用的证据”,与仓库描述中“19 万以上科学家在使用”的表述形成了有趣的对照。
七、维护负担:上游会动,技能会过期
(一)四个真实的接口漂移节点
科学数据库的接口并不稳定,这是任何“集成 100 多个数据库”的项目都必须面对的现实。2022 年 6 月,UniProt 网站与 REST 接口整体改版,旧地址虽然重定向,返回的 JSON 结构却完全不同,大量依赖旧字段路径的解析器批量失效;一个被记录在案的案例是某商业质谱软件的数据库管理器因新接口不再返回 Last-Modified 头,判定“没有新数据”而永远无法更新。2024 年 6 月,NCBI Datasets 的 v1 接口、v13 及更早的命令行工具与 v1 Python 库被标记弃用,2024 年 12 月 31 日起彻底不可用。2025 年 4 月,PMC 的 eFetch 输出格式调整。2026 年 2 月,PMC 的 E-utilities 更换底层引擎,ESearch 只能访问前 10,000 条结果,依赖深分页的脚本需要重写。
每一次这样的变更,都可能让某项技能里的示例代码在下一次调用时静默失效,而不是在安装时报错。database-lookup 对接 78 个数据库,就意味着 78 条独立的变更流;维护负担随集成数量接近线性增长。
(二)版本钉死的双刃剑
这个库对漂移的应对是钉死版本与高频发布。技能正文写明基线软件包版本与核对日期,每个技能有独立的 metadata.version,每个技能有独立的依赖文件以避免 70 余个包之间的版本冲突,仓库以每月约 9.7 次的频率发布。论文特别强调:“没有标签的引用无法说明到底运行了什么。一篇报告某项技能所得结果的论文,应当同时写出该技能的名字与它的 metadata.version。”
钉死版本的好处是结果可复现,代价是钉住的基线会过期。rdkit 技能里写的是“2026 年 6 月 7 日核对过的 2026.03.3”,半年后这个版本可能已经落后两个发布周期,而正文里的接口用法可能与最新版本不再一致。对使用者的要求由此变得明确:把技能当作依赖锁文件来管理,记录安装时的仓库标签,定期升级并在自己的数据上回归测试。
(三)路由表策略的耐久性
回到 database-lookup 的设计。它之所以选择维护“路由表”而不是封装客户端,正是对维护负担的一种回应。封装客户端意味着每次上游改版都要改代码、跑测试、发版本;路由表只维护“去哪、怎么问、怎么记来源”的文字与少量脚本,接口细节交给通用的 HTTP 工具与宿主的抓取能力,改版时只需更新几行说明。这种策略的耐久性明显更好,代价是可复现性更多地依赖执行时记录来源与版本,而不是依赖固定的代码路径。对于把“可复现”当作硬要求的科研场景,这个代价必须被明确管理。
八、同类横向对比
(一)五个项目的对比矩阵
把 scientific-agent-skills 与 ChemCrow、PaperQA2、Biomni、ToolUniverse 放在一起,可以看出它们在形态上就不属于同一类。ChemCrow 与 Biomni 是带工具的 Agent,PaperQA2 是检索问答系统,ToolUniverse 是工具协议与工具库,只有 scientific-agent-skills 是没有运行时的程序性知识库。
在规模上,五者的计数口径完全不同:技能、工具、软件包不能直接相加比较。163 项技能对应的是 163 类“该怎么做”的工序,2,700 个工具对应的是 2,700 个可调用的端点,两者是不同层的资产。在领域覆盖上,scientific-agent-skills 的 16 个领域是唯一真正跨出生命科学的,包含了物理、材料、地球科学、经济金融与工程仿真;Biomni 与 ToolUniverse 以生物医学为主,ChemCrow 与 PaperQA2 各守一域。在宿主可移植性上,scientific-agent-skills 与 ToolUniverse 分别依托 Agent Skills 规范与 MCP 协议,可以接入多种宿主;其他三者自带框架。
在学术验证上,情况反过来:Biomni 有 Science 正刊论文,ChemCrow 有专家化学家参与的评估,scientific-agent-skills 的论文则明确不含任务级评估。在安全治理上,只有 scientific-agent-skills 公开了周度扫描报告。在协议上,五者都是 MIT 或 Apache-2.0,商用与学术均友好,但 scientific-agent-skills 的技能级许可证可以与仓库不同,需要逐项核对。
(二)互补而非替代
这张矩阵的正确读法不是“谁更强”,而是“谁在哪一层”。一个想构建蛋白与小分子相互作用分析 Agent 的团队,很可能同时需要 ToolUniverse 或自建 MCP 服务器提供的工具端点、scientific-agent-skills 提供的 database-lookup 与 rdkit 工序、以及 PaperQA2 式的文献证据链。三者叠加才构成一个完整的科研 Agent。scientific-agent-skills 的独特贡献是补上了过去最缺的那一层,而不是取代其他层。
九、落地判断与接入建议
(一)已确认、待验证、存疑
综合前文,可以把对这个库的判断分为三栏。
已经确认的部分:它遵循开放的 Agent Skills 规范,可以装进多种宿主;163 项技能全部通过规范校验器;常驻层只占窗口 7.1%,全量安装成本低;105 项含脚本技能有结构契约与独立测试套件;每周安全扫描并公开报告;MIT 协议对商用友好。
有待验证的部分:任务级效果,作者自述没有对照评估;宿主真实选择率,只测了描述的词汇可分性;跨宿主兼容矩阵,声称支持但未逐项测试;19 万用户为官方口径,论文估算的克隆客户端约 3.6 万;边缘技能的科学正确性依赖社区自查;参考文件全载时三分之二工作流溢出,实际体验取决于宿主的加载策略。
仍然存疑的部分:扫描出 28 项严重级发现,含自我引用指令;58 项无脚本技能不在结构契约覆盖内;上游接口漂移会导致示例静默失效;钉死的基线版本会随时间过期;K-Dense 商业平台与开源库之间的边界,八成技能出自同一家公司;“论文经过评审”的说法不等于代码经过审计。
(二)科研团队的四步接入路径
第一步是按需选装。不要一次装 163 项,先装与课题直接相关的 5 到 15 项,逐份读一遍 SKILL.md 的描述与正文,知道自己装进 Agent 的是什么。常驻层的成本虽低,但选择噪声与安全面都随安装数量增长。
第二步是钉版本与自测。记录安装时的仓库标签与每项技能的 metadata.version,在自己的数据上跑通附带的示例脚本,核对技能正文写明的基线软件包版本是否仍然有效。对于依赖外部数据库的技能,确认速率限制与密钥要求是否与自己的环境匹配。
第三步是复核与溯源。要求 Agent 的每一项输出都能回溯到数据库版本与访问时间,统计结论必须由领域内人员复核,并把复核清单本身写成团队的私有技能。技能减少的是低级错误,不是对结论的责任。
第四步是私有技能与回流。把实验室自己的惯例写成技能,形成与公共库并行的私有层;对公共技能发现的问题提交回上游;建立季度重扫与升级的节奏。这一步是把“使用者”变成“共建者”的关键,也是应对上游漂移最可持续的方式。
(三)企业研发部门的额外考量
对制药、材料、化工等企业的研发部门,还有几条额外考量。第一是数据出境与密钥管理:技能中的数据库查询会把查询词发往公共端点,涉及未公开靶点或化合物的查询需要评估泄露风险;扫描报告中“环境变量读取加网络外发”的模式即便属于正常鉴权,也应在企业环境中被限制到最小权限。第二是许可证合规:仓库为 MIT,但单项技能的许可证可以不同,且技能封装的软件包各有自己的许可证,rdkit 的 BSD-3 只是最简单的一例,商业使用前需要逐项核对。第三是供应商依赖:八成技能出自 K-Dense 一家公司,其商业平台与开源库并行存在,企业应评估开源库长期维护的可持续性,并保留分叉自维护的能力。第四是自我引用类指令:企业交付物中不应出现未经审阅的第三方引用,接入前应审阅技能正文中所有面向 Agent 的指令性语句。
十、结语
scientific-agent-skills 在一周内新增七千余星,反映的是科研群体对“标准化程序性知识”的真实需求,而不是对又一批工具的热情。它的贡献是把过去散落在实验室 Wiki 和口头传授中的领域惯例,第一次变成了可安装、可版本化、可跨宿主复用的文本资产,并用渐进披露把全量安装的常驻成本压到窗口的 7.1%。它的局限也同样清晰:没有任务级的对照评估,审核覆盖不均,安全扫描找出了 28 项严重级发现,上游接口的漂移会让示例静默失效。
因此,它更准确的定位不是“科研 AI 的标准库”,而是“科研惯例的可安装文档”。安装它换来的是少犯领域内的低级错误,而不是自动得到正确的科学结论。对科研团队来说,正确的姿态是按需选装、钉住版本、复核溯源、写自己的技能并回流上游;对企业研发部门来说,还要加上数据出境、许可证、供应商依赖与指令审阅四道关口。把它当第三方依赖来治理,收益是真实的;把它当成结论的担保,风险是真实的。
至于更长远的问题,有两个值得持续观察。一是当技能库从数百扩展到数千项时,依赖图检索一类的方法能否成为宿主的标准配置,否则“越大越好”在技能层不成立。二是任务级评估何时出现:当有人在带答案的科研任务上对照测出“装与不装某项技能”的差异,这一代程序性知识库的真实价值才算被量化。在那之前,它是一个值得认真使用、也值得认真怀疑的工程实践。
参考资料
- K-Dense-AI/scientific-agent-skills 仓库主页
- 仓库 README(含安装方式、技能分类与安全策略)
- 仓库 CONTRIBUTING.md(技能结构、头部字段、测试与 CI 契约)
- 仓库安全扫描报告 docs/security-report.md
- database-lookup 技能正文
- rdkit 技能正文
- Kassis 等,Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents,arXiv:2609.00065
- Agent Skills 开放规范(agentskills.io)
- Anthropic 工程文章:Equipping agents for the real world with Agent Skills
- Bran 等,ChemCrow: Augmenting large-language models with chemistry tools,arXiv:2304.05376
- Future-House/paper-qa 仓库(PaperQA2)
- snap-stanford/Biomni 仓库
- Biomni: Autonomous biomedical research with an artificial intelligence agent,Science
- Gao 等,Democratizing AI scientists using ToolUniverse,arXiv:2509.23426
- Graph-of-Skills: Dependency-Aware Structural Retrieval for Massive Agent Skills,arXiv:2604.05333
- Agent Skills for Large Language Models: Architecture, Acquisition, Security, and the Path Forward,arXiv:2602.12430
- Laurent Kempé:Agent Skills: From Claude to Open Standard to Your Daily Coding Workflow
- knightli:Scientific Agent Skills 评述
- NCBI Insights:Coming Soon: Updated PubMed Central (PMC) E-Utilities
- NCBI Datasets API 版本说明(v1 弃用与停用)
- UniProt REST API 教程(2022 年接口改版)
- Matrix Science:Downloading UniProt proteomes via new API
- Accel Atoms 与 Google AI Futures Fund 2026 AI 创业营公告(含 K-Dense)
- K-Dense 官方网站