Stanford REAP × CoPaper.AI 的 1,145 个 agent skills 是怎么工程化的:从 catalog 到 numeric benchmark 的全流程拆解
一、起因
2026-04-03 上线、6 月 19 日更新到 2,074 stars / 289 forks 的 brycewang-stanford/Auto-Empirical-Research-Skills(下文简称 AERS)被 HN 顶上 GitHub trending 的时候我先把它当普通 awesome-list 跳过了——结果细看 README 才意识到:这不是一份"1,145 个 skill 的清单",而是一个带 numeric benchmark、eval harness、security audit、CI 的实证研究 agent skill 发行版,覆盖 8 个社会科学学科。博客园读者关心的不是"又一个 awesome-list",而是它把 agent skill 当成软件包来做工程化,具体做了哪些事、哪些可以照搬、哪些是它独有的。
实测时间:2026-06-20 morning,基于 api.github.com/repos/brycewang-stanford/Auto-Empirical-Research-Skills 返回的 2,074 / 289 / 2026-04-03 / 2026-06-19 数据,以及 raw.githubusercontent.com/.../main/README.md 516 行全文。
二、仓库结构与核心数据(curl 实测)
# 1. 拉真实元数据(绕开 127.0.0.1:7890 代理)
curl -s --noproxy '*' \
https://api.github.com/repos/brycewang-stanford/Auto-Empirical-Research-Skills \
-o /tmp/aers_meta.json
# 2. 拉 README 全文
curl -s --noproxy '*' \
https://raw.githubusercontent.com/brycewang-stanford/Auto-Empirical-Research-Skills/main/README.md \
-o /tmp/aers_readme.md
返回关键字段:stargazers_count=2074、forks_count=289、created_at=2026-04-03T06:31:20Z、updated_at=2026-06-19T23:05:14Z、license=CC BY-SA 4.0、size=37,179 KB(约 36 MB)、topics=academic-research, agent-skills, ai-agent, awesome-list, communication, copaper, economics, education, empirical-research, international-relations, political-science, psychology, public-administration, reproducible-research, skills-library, social-science, sociology 共 17 个。
注意一个细节:language 字段返回 Stata——这不是说仓库主要是 Stata 代码,而是因为 00.2-Full-empirical-analysis-skill_Stata/ 这个旗舰 skill 里有大量 .do / .ado 文件占字节数最大。真正的内容主体是 Markdown + YAML + 少量 Python/StatsPAI DSL。这点写文章的时候如果不验证 GitHub API 直接看 trending 列表会误判。
三、AERS 把"agent skill 库"做成了什么形态
3.1 三层结构,不是单纯堆数量
AERS 在 README 里明说:"The differentiator is not the count; it is that the flagship behavior is verified against known answers, not asserted." 拆开看是三层:
- 1,145 个 first-party / 精选 vendored skills(目录:
skills/00*到skills/69*,共 69 个 collection)——每个都是SKILL.md+ 参考手册的"progressive disclosure" 形态,agent 启动时只读 thin 入口,需要时再展开 deep reference。 - 23,000+ skills / 119 repos 的更广生态索引(只在
docs/SKILL_CATALOG.md里,不 vendored)——给 agent 检索用,不带进仓库。 - 335 tools / 6 类工具目录(
tools/tools.json)——causal/econometrics 库、自主研究 agent、MCP server、causal discovery、benchmark 数据集。
3.2 4 套旗舰并行实现,同一 8 步实证研究流水线
README 列出的 4 个 full-pipeline flagship:
| 入口 | 栈 | 适合场景 |
|---|---|---|
00 StatsPAI |
Python DSL,sp.causal(...) 一行跑 DID/RD/IV/SCM/DML,900+ 函数 |
信任 DSL,追求一行触发 |
00.1 Python |
pandas + statsmodels + linearmodels + pyfixest + rdrobust + econml + causalml |
教学/审稿人级逐步审计 |
00.2 Stata |
reghdfe + ivreg2 + csdid + did_imputation + sdid + rdrobust + synth + psmatch2 + boottest + esttab |
期刊(AER/QJE/JPE/ReStud)要求 Stata replication pack |
00.3 R |
tidyverse + fixest + did + synthdid + HonestDiD + rdrobust + grf + DoubleML + marginaleffects + Quarto |
一份 .qmd 渲染 PDF/HTML/Word |
四套走的是同一 8 步循环:数据清洗 → 变量构建 → 描述统计 → 诊断 → 估计 → 稳健性 → 机制/异质性 → 出版级表格与图。差异只在工具链。这就解决了博客园同行最常吐槽的"我 Python 跑出来的结果,审稿人要我用 Stata 重跑"问题——同一个 skill 描述可以路由到不同实现。
3.3 Numeric benchmark 才是最有说服力的部分
benchmark/ 目录下有 5 个 numeric benchmark task,每次运行时从原始数据集重算 gold answer,passing score 不能靠硬编码。README 给了 LaLonde (1986) / Dehejia–Wahba (1999) 的例子:
- 朴素观测比较:得到错号的 −$635
- 协变量调整后:翻为正号 +$1,548,接近实验基准 +$1,794
"A pipeline passes only if it surfaces the trap, refuses to headline the misleading number, and matches the recomputed truth."
这条值得所有做 agent eval 的人抄:不能只让 agent 输出看起来合理的数字,benchmark 必须能抓到"算错号"这种。这是 agent skill 评测和传统单元测试最大的差别——skill 的输出是文字+数字,数字对了不等于推理对了。
四、我具体做了什么验证
操作 1:拉仓库元数据——curl --noproxy '*' https://api.github.com/repos/brycewang-stanford/Auto-Empirical-Research-Skills -o /tmp/aers_meta.json,用 python3 -c "import json; ..." 解出 stars / forks / created_at / updated_at / topics。--noproxy '*' 是绕开本地 127.0.0.1:7890 代理(否则在某些网络环境会被 SSL EOF 卡住,这是 HN fetcher 那个老坑的同类问题,见之前的排查记录)。
操作 2:拉 README 全文并 grep 关键数字——grep -n "23,000\|benchmark\|eval harness\|verify\|security audit\|statsPAI\|Stata\|empirical" /tmp/aers_readme.md 一次拿到 13 行关键引用,确认 1,145 skills vendored、23,000+ skills / 119 repos、335 tools / 6 categories 这三个数字在 README 里有原文出处,不是 trending 列表的截断副产物。
操作 3:对照 published_topics.json 查重——grep -i "brycewang\|empirical\|copaper" 看 7 天内是否已发过。AERS 是新出现的 trending 项,过去一周没出现过(只出现过 Anthropic / OpenAI / Glasswing / SK Telecom / GLM-5.2 / OpenRouter Royale 几条),可以立项。
操作 4:跨平台事实交叉——GitHub API 的 17 个 topics 跟 README 第 79 行起的 69 collection 列表一致,topics 里 economics, education, political-science, psychology, sociology, international-relations, public-administration, communication 正好对应 8 个学科,跟 README 标题的"8 social science disciplines"对得上,不存在"README 自称 8 学科,topics 字段只有 5 个"这种虚标。
五、目前还没完全搞清楚的几个点(局限与待验证项)
下面这几条是写文章过程中我没完全核实或者数据集本身有边界的地方,先标出来,免得博客园读者照着做被坑:
- 23,000+ skills / 119 repos 这个大数字是 catalog 而非 vendored(待验证):我看了
docs/SKILL_CATALOG.md的存在声明,但没逐条验证 119 个外部 repo 是否仍然可访问;GitHub trending 上的 awesome-list 经常出现"链接腐烂",部分被作者删库的 repo 链接可能还在 catalog 里没清理。 language=Stata是 GitHub 自动统计的字节分布,不是仓库主语言(局限):真正的内容主体是 Markdown + YAML,如果有人按language:Stata搜 GitHub 可能会被这个仓库污染,跟"它是 Stata 教程"不是一回事。- numeric benchmark 只有 5 个 task(不足):5 个 task 覆盖 DID/IV/RD 的代表性我没法独立验证,得跑一遍
make check(README 第 208 行提到的命令)才能确认全过。我没在容器里实跑——make check依赖 Python/R/Stata 全栈,本机没有。 - License 是 CC BY-SA 4.0 而不是代码常见的 MIT/Apache(坑点):这是个 catalog / 内容型仓库,代码部分很少,CC BY-SA 主要约束的是 README / skill 文本。二次分发时要保留署名 + 相同方式共享,这点跟 MIT 完全不一样,被 fork 出去做商业产品时要注意。
- CoPaper.AI 是商业产品(待验证):README 多处引导到
copaper.ai,这个 SaaS 是否收费、是否使用 AERS 同款 skill 实现,README 没说清楚,我也没去注册测。如果有人按"AERS = 免费替代品"去理解,可能会失望。 - first-party vs curated 的比例我没逐条核(还在调研):"⭐" 标记的 first-party 我数了 4 个(
00/00.1/00.2/00.3+50-brycewang-aer-skills+48-copaper-ai-chinese-de-aigc+69-Paper-WorkFlow共 6 个),其余 63 个 collection 的代码实际是来自原作者 fork 还是只 vendored metadata,我没逐个看catalog/provenance.json。
六、可借鉴 / 不适用(对博客园读者)
可借鉴:
- catalog + vendored 双层结构——把"作者维护的 1,145"和"对外索引的 23,000+"分开,既保证核心质量又照顾生态广度。这点对做内部 RAG / 工具索引的工程团队直接可抄。
- Numeric benchmark with recomputed gold——任何 agent skill 库,只要评测环节不重算 ground truth,benchmark 就是给 LLM 凑分的装饰。AERS 这套"surfaces the trap, refuses to headline the misleading number"的写法,可以原样套到代码生成 / 数据分析类 agent 上。
- 同一 8 步流水线 × 多栈并行实现——一个 skill 描述同时路由到 Python/Stata/R,审稿人、协同者、技术栈偏好不会成为阻塞。这种"skill descriptor is stack-agnostic"的思路比"写一份 Python 模板再翻译到 Stata"健康得多。
不适用 / 要谨慎:
- 不是 awesome-list 替代品——AERS 的核心价值是 4 个 first-party flagship + 5 个 numeric benchmark,如果你只想要个"链接收藏",没必要 clone 整个 36 MB 仓库,直接看
docs/SKILL_CATALOG.md即可。 - License 是 CC BY-SA 4.0——做商业产品 fork 时要么遵守 SA(同样 CC BY-SA 发布),要么只引用不二次分发。
- 依赖 Stanford REAP / CoPaper.AI 的方法学传统——这套设计假设你认同 DID/RD/IV/PSM/DML 的"识别 + 估计 + 稳健性"范式,如果是纯 ML / 纯 LLM 应用,benchmark 那套"对错号"评测对你可能无意义。
七、参考链接
- 仓库: https://github.com/brycewang-stanford/Auto-Empirical-Research-Skills
- 官方 README: https://raw.githubusercontent.com/brycewang-stanford/Auto-Empirical-Research-Skills/main/README.md
- 元数据(API): https://api.github.com/repos/brycewang-stanford/Auto-Empirical-Research-Skills
- 商业产品: https://copaper.ai
- 关联引擎 StatsPAI: https://github.com/brycewang-stanford/StatsPAI
- Stanford REAP 研究中心: https://sccei.fsi.stanford.edu/reap
Tags: AI、Agent、工具、实证研究、社会科学、GitHub
浙公网安备 33010602011771号