1096个技能如何不打爆上下文?AERS的SKILL.md路由器与catalog.json分层加载架构完整指南
【免费下载链接】Auto-Empirical-Research-Skills🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.项目地址: https://gitcode.com/gh_mirrors/aw/Auto-Empirical-Research-Skills
Auto-Empirical-Research-Skills(AERS)是斯坦福 REAP 团队 × CoPaper.AI 维护的实证研究 AI Agent 技能库,收录了 76 个合集、1,096 个技能,覆盖 8 大社会科学学科的因果推断、数据清洗到论文写作全流程。一个绕不开的问题是:这 1,096 个SKILL.md如果一次性塞进模型上下文,约等于 64k tokens,再叠加运行时对超长技能列表的截断,匹配效果反而更差。AERS 的解法是一套三层架构:根目录 SKILL.md 当路由器、catalog/ 目录做机器可读索引、子技能做渐进式加载。本文带你逐层拆解这套设计。
痛点:为什么"全量加载"是死路
先看一组数字:
| 文件 | 规模 | 角色 |
|---|---|---|
skills/目录 | 1,096 个SKILL.md | 技能本体 |
| catalog/skills.json | ~890 KB / 1.9 万行 | 机器可读索引 |
| catalog/skills-enriched.json | ~1 MB / 2.4 万行 | 带分层标签的增强索引 |
| catalog/curation.json | ~7 KB / 85 行 | 人工策展的路由分层 |
AERS 的根 SKILL.md 在 "Install Notes" 一节直接写明了反模式:不要把整个技能库"扁平安装"(比如把所有子目录软链进~/.claude/skills)。每个注册技能的 description 都会在会话启动时加载,1,096 个技能全注册约产生64k tokens,而多数运行时会截断过长的技能列表——结果不是匹配更准,而是更差。
所以 AERS 的思路是:技能本体留在磁盘上,上下文里永远只放"一张地图 + 一个技能的正文"。
第一层:根 SKILL.md 是路由器,不是技能
整个仓库的入口是根目录的 SKILL.md——它只有 127 行,开头就声明了自己的身份:
"Treat it as a router and catalog, not as a request to load every vendored
SKILL.md."(把它当作路由器和目录,而不是"加载所有子 SKILL.md"的指令)
这个路由器的核心是一个五步工作流(见 SKILL.md 的 "Workflow" 一节):
- 按"阶段"分类用户任务:完整论文流水线 → 找编排器;因果推断 → 查方法对照表;AER 顶刊写作 → 直接进对应合集;
- 只读取选中那一个子技能的
SKILL.md,随后按它的"渐进式披露"指令按需加载references/、scripts/、assets/; - 方法表没命中时,回落到目录检索(下一节细讲);
- 安装问题查 docs/INSTALL.md;
- 编辑仓库时注意子模块边界。
其中最有意思的是Method → where to start 对照表:它把 DiD / IV / RDD / 合成控制 / 面板固定效应 / DML / 贝叶斯等几十种任务映射到起始合集。但它刻意声明自己是快捷方式而非完整索引——"命名的合集不到总数的一半,其余只能经由catalog/skills.json到达"。查不到 ≠ 没有技能,必须继续走检索兜底。
第二层:catalog.json 三件套,各司其职
catalog/ 目录是"地图",由三个文件构成,分工非常清晰:
① catalog/skills.json —— 基础索引每个技能一条记录,字段包括path、name、description、line_count,以及全局唯一的qualified_name(格式为<合集>::<技能名>,如12-pedrohcgs-claude-code-my-workflow::data-analysis)。它解决的是同名冲突:目录里有 47 个裸name在多个合集间重复(如data-analysis、lit-review、proofread),靠qualified_name或完整路径消歧。
② catalog/skills-enriched.json —— 增强索引在基础字段上追加tier、tags、quality_score、license、commercial_use,供排序和过滤使用。tags由 docs/TAXONOMY.md 中的工作流阶段(analysis 141 个、writing 88 个……)和方法标签(iv 28 个、rdd 25 个、staggered-did 17 个……)共同标注。
③ catalog/curation.json —— 人工策展的路由分层这是唯一手写的文件,定义四级排序分层:
| Tier | 数量 | 权重 | 含义 |
|---|---|---|---|
core | 22 | 1.5× | 自研旗舰合集(StatsPAI、AER 技能、论文流水线等 8 个前缀) |
extended | 877 | 1.0× | 默认层,绝大多数社区技能 |
duplicate | 84 | 0.6× | 同名技能的冗余副本,canonical字段指定唯一"正本" |
out-of-domain | 113 | 0.35× | 自然科学/CS 类指南,排到最后 |
关键设计原则写在该文件的注释里:分层只改变排序,从不删除任何技能——out-of-domain的技能在你真的问到相关话题时依然会浮出来。
根 SKILL.md 对这两个大 JSON 也给了明确的使用纪律:查询它们,而不是整读("query them instead of reading them whole"),比如用一行 Python 过滤关键词,或者退而求其次用grep。
第三层:子技能的渐进式披露
路由选中某个子技能后,才加载它的SKILL.md;而这个子技能内部又是同样的"按需披露"模式。以旗舰 Python 分析技能为例,它的正文只写工作流骨架,细节拆在 skills/00.1-Full-empirical-analysis-skill_Python/references/ 下的 8 个主题文件:数据清洗、描述统计、统计检验、建模、稳健性、表格与图表……每一步用到才读哪一步。
这样,一次"做 DiD 分析"的完整会话,上下文里大致只有:
- 根路由器的 127 行(会话启动时);
- 1,096 条索引中命中的几条记录(字段级查询,非全文);
- 选中子技能的
SKILL.md正文; - 子技能中被点名加载的 1–2 个 reference 文件。
上下文占用从 O(全部技能) 降到了 O(1),且与技能库规模几乎解耦——这就是"分层加载"的实际含义。
兜底检索:find-skill.py 的 BM25 + 分层排序
方法表覆盖不到的任务(表里明说了不到一半合集),走的是排序检索脚本 scripts/find-skill.py。它的算法很轻但很讲究:
对
skills-enriched.json做BM25,按字段加权:name3.0 >tags2.0 >description1.0 >path0.5——技能自己名字里的命中比路径里的命中重要得多;叠加 curation 分层权重(core 1.5 / extended 1.0 / duplicate 0.6 / out-of-domain 0.35);
内置术语别名扩展:
did→ "difference-in-differences"、rdd→ "regression discontinuity"、aigc→ "ai writing humanize"……中英文查询都能用,例如:python3 scripts/find-skill.py "staggered difference-in-differences event study" python3 scripts/find-skill.py "降低中文论文 AIGC 率" -k 5
还有一个细节:若查询词直接命中某个技能的独占名称(词频 ≤10,比如 "PubChem"),则豁免其 tier 惩罚——用户点名要谁,就直接给谁。
路由质量如何度量?
路由不是玄学,AERS 给检索步骤配了回归测试:evals/routing-cases.json 是手工编写的"真实任务描述 → 可接受技能路径前缀"用例集(中英双语,如 "双重差分 平行趋势检验"、"工具变量 2SLS 弱工具检验"),再由 scripts/check-routing.py 校验 top-k 命中。验收前缀来自对目录的关键词调研而非排序器自身的输出,测的是路由能力而不是复述排序结果——这是避免"自证预言"的一个好做法。
实践要点与常见误区
- ❌扁平安装全目录(软链所有子技能进运行时):64k tokens 起步 + 截断,匹配更差。✅ 正确姿势是用插件机制、走这个路由器,或只复制少数几个高频技能;
- ⚠️按裸
name注册会撞名:47 个重名技能,安装时要么按合集逐个装,要么用qualified_name消歧; - ⚠️方法表查不到就下结论"没有":表格只覆盖不到一半合集,应先跑
find-skill.py检索再定论; - 💡中文任务优先看中文文档:docs/CONTENT_ZH.md 和 README-zh-CN.md 对 de-AIGC、SSCI/CSSCI 润色等合集的说明比英文文档更细。
关键文件速查
| 文件 | 作用 |
|---|---|
| SKILL.md | 根路由器:工作流 + 方法对照表 + 触发词 |
| catalog/skills.json | 基础索引(1,096 条,含qualified_name) |
| catalog/skills-enriched.json | 增强索引(tier / tags / 质量分 / 许可) |
| catalog/curation.json | 人工策展分层:core / duplicate / out-of-domain |
| scripts/find-skill.py | BM25 + 分层的排序检索入口 |
| scripts/check-routing.py | 路由准确率的回归测试 |
| docs/SKILL_CATALOG.md | 人类可读的技能总目录 |
| docs/TAXONOMY.md | 任务阶段 × 方法标签分类法 |
| docs/GOLDEN_WORKFLOWS.md | 即取即用的实证研究提示词 |
一句话总结:AERS 的上下文经济学 = 127 行路由表 + 字段级索引查询 + 单技能按需加载 + 分层排序兜底。技能库从 1,096 涨到 10,000,这套架构的会话开销几乎不动——这或许是任何想建"大型技能库"的团队最值得抄的一套作业。
【免费下载链接】Auto-Empirical-Research-Skills🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.项目地址: https://gitcode.com/gh_mirrors/aw/Auto-Empirical-Research-Skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考