摘要:围绕“AI编码Agent能否复现社会科学实证论文”这一具体问题,社区与部分预印本评测给出了看似矛盾的结论:Codex类Agent在若干复现任务上“可以复现相当比例”,而Claude Code在综合表现上被报告为substantially outperforms Codex。本文不满足于复述这一对比,而是提出一条贯穿全文的分析主线——把“复现能力”拆成学科语义层与工程执行层两个可分别度量的维度,并论证:选型不应按“我的学科领域”单维决定,也不应完全按“任务通用工程性”单维决定,而应按“语义层依赖度 × 工程层复杂度”的二维位置决定。文章给出可操作的双层评测协议、选型矩阵、失败归因表与工程化落地步骤,并对多Agent协作、可复现性基准建设与学术评价影响作出前瞻判断。
关键词:论文复现;编码Agent;Codex;Claude Code;可复现性;社会科学计算;Agent选型
目录
一、导语:一个被误读的对比结论
“Codex在社会科学论文复现中可以复现相当比例,但Claude Code substantially outperforms Codex。”这句话在技术社区流传时,往往被压缩成一句选型口号:要么“选Claude Code”,要么“看学科”。但只要稍微追问一句“相当比例是多少、在什么任务上、用什么判据”,就会发现这句话内部其实并不矛盾——它描述的是两个不同测量维度上的结果,被并置在了同一个句子里。
笔者在梳理公开评测、复现项目与工程实践记录时注意到一个反复出现的现象:同一批论文,用同一套Agent,换一个判据(能否跑通 vs. 能否复现出论文表格中的系数方向与显著性),结论会显著漂移。这说明“复现能力”本身不是一个标量,而是一个向量。本文的核心主张是:Agent选型的正确单位不是“学科”,也不是“通用工程性”,而是“任务在语义层与工程层上的联合坐标”。
为避免空泛,本文把讨论限定在可验证的范围内:社会科学实证论文(以计量经济学、政治学、社会学、心理学中带公开数据与代码的论文为主)的端到端复现,以及在此过程中编码Agent所承担的具体工作——环境搭建、数据清洗、脚本修复、结果比对、文档生成。凡涉及具体数字,均标注来源或明确标注为“模拟/整合数据”。
一个必要的提醒:目前关于“Codex vs Claude Code 复现社会科学论文”的系统性同行评审研究仍然稀缺,多数证据来自预印本、开源复现仓库与厂商自评。本文对这些证据采取“分级采信”策略:有公开仓库与可复跑脚本的记为强证据;仅有文字描述与截图记录的记为弱证据;纯整合推算的明确标注为模拟数据。
二、背景与问题定义:什么叫“复现了一篇社会科学论文”
2.1 复现的三级判据
在讨论Agent能力之前,必须先固定判据。社会科学语境下的“复现”(reproduction/replication)至少有三个层级,混用会导致结论不可比:
| 层级 | 定义 | 典型判据 | Agent可贡献度 |
|---|---|---|---|
| L1 可执行复现 | 代码能在新环境跑通,产出结果文件 | 退出码为0、无致命报错 | 高(工程性强) |
| L2 数值复现 | 关键系数、标准误、样本量与论文一致或在容差内 | 相对误差阈值、符号与显著性一致 | 中(需语义判断) |
| L3 推断复现 | 在原文识别策略下,结论方向与稳健性检验可被重建 | 识别假设、稳健性矩阵、机制检验 | 低到中(强语义依赖) |
本文评述:多数“Codex可以复现相当比例”的说法,实际统计的是L1,部分触及L2;而“Claude Code substantially outperforms”若来自综合基准,往往混合了L1与L2,且任务分布偏向工程性强的仓库级修复。把两者放在同一句话里比较,等于拿L1的分子去比L1+L2的分母,结论自然显得张力十足。
2.2 社会科学论文的特殊性
社会科学实证论文与一般软件仓库的差异,决定了复现难点的分布。笔者归纳为四点:其一,数据获取路径脆弱,原始数据常来自受限访问的调查库或已变更的API;其二,软件生态碎片化,Stata、R、Python混用,版本敏感;其三,隐含的预处理决策,如缺失值处理、变量缩尾、样本筛选,往往写在正文而非代码;其四,结果解释依赖领域知识,系数符号与显著性的意义需要识别策略支撑。
这四点中,前三点偏工程,第四点偏语义。一个自然的推论是:Agent在L1上的表现主要由工程能力决定,在L3上的表现主要由语义理解与领域推理决定。这正是后文双层框架的经验基础。
三、原理与技术路线:Agent复现的两层能力结构
3.1 语义层:读懂“论文想干什么”
语义层能力指Agent从论文正文、脚注、附录中抽取可执行规格的能力:识别被解释变量与核心解释变量、还原样本筛选条件、判断固定效应与聚类层级、理解识别策略对应的回归设定。这一层的关键不是“写代码”,而是“把自然语言规格翻译成统计模型”。
从技术路线看,语义层依赖长上下文理解、跨文档对齐(正文—附录—代码)与领域先验。Claude系列模型在长文档理解与指令遵循上的公开评测表现长期靠前(如长上下文检索类基准与文档理解类基准),这为其在语义层任务上提供了结构性优势;而Codex系模型的设计重心更偏向代码补全与仓库级编辑,语义层并非其主战场。笔者认为,这一“训练目标—能力分布”的错配,是理解两类Agent差异的第一把钥匙。
3.2 工程层:让“代码真的跑起来”
工程层能力包括:依赖解析与版本锁定、容器化环境构建、报错定位与修复、跨语言胶水代码编写、路径与编码问题处理、结果文件解析与比对。这一层的评价指标相对客观:首次运行成功率、平均修复轮次、修复后回归通过率。
# 一个典型的复现任务规格(Agent需要从论文中还原出这些字段)
task_spec:
paper_id: "SSRN-xxxx"
language: ["R", "Stata"]
data_source: "restricted survey + public macro panel"
sample_filter: "age 25-64, employed, non-missing wage"
model: "log(wage) ~ edu + exp + exp^2 + FE(region) + FE(year)"
cluster: "region"
robustness: ["winsorize 1%", "drop self-employed", "alternative FE"]
expected_outputs: ["Table 2 col (1)-(3)", "Figure 1"]
tolerance: {coef_rel_err: 0.02, se_rel_err: 0.05}
本文评述:把复现任务规格化成上述结构,本身就是一次“语义层→工程层”的降维。谁能更可靠地完成这次降维,谁就在L2及以上占优;谁能在降维后更稳健地执行,谁就在L1占优。两类Agent的差异,恰好落在这条降维链的不同环节。
3.3 两层之间的耦合:为什么不能只看一层
两层并非独立。语义层的一个错误(例如漏掉“聚类到省份”这一句)会导致工程层“跑通但结果不对”,而工程层的一个错误(例如用错包版本)会让语义层的正确规格无法兑现。更麻烦的是,两类错误在日志上表现相似:都是“结果对不上”。这就要求评测协议必须能把失败归因到层,否则“谁更强”的讨论会退化为黑箱比较。
笔者建议采用“消融式归因”:先由人工提供完整task_spec(消除语义层变量),测工程层;再由人工提供可运行环境(消除工程层变量),测语义层。两次测量的差值,即为该Agent在对应层的边际能力。这一方法在软件工程实证研究中已有类似思路(如缺陷定位的消融实验),迁移到复现评测是自然的。
四、关键数据与案例:差异到底出现在哪里
4.1 公开证据的分级梳理
需要先说明:截至目前,尚无一个被广泛认可的、专门针对“社会科学论文复现”的Agent标准基准。现有证据大致来自三类来源,可靠性依次递减:
| 证据类型 | 代表来源 | 可信度 | 主要局限 |
|---|---|---|---|
| 开源复现仓库 | 各类 reproducibility challenge 仓库 | 强 | 样本自选择、任务难度不均 |
| 预印本评测 | arXiv上关于coding agent的基准论文 | 中 | 任务分布偏工程、复现细节披露不足 |
| 厂商/社区自评 | 博客、推文、演示视频 | 弱 | 选择性展示、缺乏对照 |
在软件工程通用基准上,Claude Code在多项仓库级任务(如SWE-bench类任务)中被报告为领先,这是“substantially outperforms”说法的主要经验来源之一;而Codex在代码补全、单文件修复与快速原型上表现稳健,这与其“可以复现相当比例”的L1结论相容。两者并不冲突,只是测量的任务族不同。
4.2 一个可复用的失败归因表
下表为笔者基于公开复现记录整理的失败归因框架(频次为模拟整合数据,用于说明分布形态,不代表任何单一研究的精确统计):
| 失败类别 | 所属层 | 典型表现 | 模拟占比 |
|---|---|---|---|
| 依赖/版本冲突 | 工程层 | 包找不到、编译失败 | 约30% |
| 数据路径/权限 | 工程层 | 文件缺失、API变更 | 约22% |
| 规格遗漏 | 语义层 | 漏聚类、漏样本筛选 | 约26% |
| 识别策略误读 | 语义层 | 工具变量设定错误 | 约12% |
| 其他 | 混合 | 随机性、硬件差异 | 约10% |
本文评述:工程层失败合计约52%,语义层约38%。这解释了一个反直觉现象——即便某Agent“更聪明”,若工程层不稳,L1通过率仍可能偏低;反之,工程层强的Agent能在L1上刷出漂亮数字,却在L2/L3上暴露语义短板。因此,单看“复现比例”这一标量,几乎无法指导选型。
4.3 学科间的差异是否显著
从公开复现项目看,学科差异确实存在,但更多体现为“工程栈差异”而非“学科本身难度差异”。计量经济学论文常涉及Stata与R混用、面板数据与高维固定效应,工程复杂度高;心理学论文常用R与结构方程模型,包生态相对统一;政治学与社会学论文的数据获取限制更突出。换言之,学科差异在很大程度上是工程栈差异的代理变量。这一判断对选型有直接影响:按学科选,可能只是在按该学科常见工具链选。
五、选型框架:学科领域还是通用工程性
5.1 二维坐标:语义依赖度 × 工程复杂度
笔者提出的选型框架如下:横轴为工程复杂度(依赖数量、跨语言、环境脆弱性),纵轴为语义依赖度(规格隐含程度、识别策略复杂度、领域先验需求)。四个象限对应不同策略:
| 象限 | 特征 | 推荐策略 |
|---|---|---|
| 低语义·低工程 | 单文件脚本、规格明确 | 任一Agent快速完成,重人工复核 |
| 低语义·高工程 | 多语言、容器化、依赖地狱 | 优先工程层强者(如Claude Code类),配环境快照 |
| 高语义·低工程 | 规格隐含、识别策略复杂 | 优先语义层强者,人工提供task_spec |
| 高语义·高工程 | 大型纵向调查+复杂模型 | 多Agent协作:语义Agent定规格,工程Agent执行 |
本文评述:这一框架的价值在于把“选学科还是选工程性”的伪二选一,转化为“先定位任务坐标,再匹配能力”。学科只是坐标的一个粗糙代理,工程性也只是另一个代理;真正决定成败的是两个维度的联合位置。
5.2 为什么“按学科选”会失效
按学科选的前提是“同学科任务同质”。但实证研究表明,同一学科内部的复现难度方差往往大于学科间方差——一篇用公开面板数据、代码规范的计量论文,可能比一篇用受限调查数据的心理学论文更容易复现。若按学科一刀切,会把大量“本学科但工程简单”的任务误配给重型方案,也会把“跨学科但工程复杂”的任务误配给轻量方案。
5.3 为什么“只看通用工程性”也会失效
通用工程基准(如仓库级修复)高度奖励“定位—编辑—测试”闭环,但社会科学复现的L2/L3要求Agent理解“为什么这样设定”。一个在SWE-bench类任务上领先的Agent,可能在“聚类层级该选个体还是地区”这种问题上给出看似合理却错误的默认值。工程性强的Agent擅长把给定规格执行到位,却不擅长从论文里把规格挖出来。规格挖掘是语义任务,不能由工程指标替代。
六、对比与局限:两类Agent的边界条件
6.1 能力边界对照
| 维度 | Codex类 | Claude Code类 |
|---|---|---|
| 单文件代码生成 | 强 | 强 |
| 仓库级多文件编辑 | 中 | 强 |
| 长文档规格抽取 | 中 | 较强 |
| 环境搭建与修复 | 中 | 强 |
| 识别策略推理 | 弱到中 | 中 |
本文评述:这张表刻意用“强/中/弱”而非精确分数,因为公开证据不足以支撑精确排名。但方向性结论是稳健的:Claude Code类在工程层与长文档语义层同时占优,这解释了“substantially outperforms”在综合任务上的出现;Codex类在单点代码任务上足够好,这解释了“可以复现相当比例”的L1结论。
6.2 局限与反例
必须承认三类局限。其一,基准污染与过拟合风险:若Agent训练数据包含公开复现仓库,评测分数会被高估。其二,成本与延迟未纳入比较:更强能力往往伴随更高token消耗与更长交互轮次,对批量复现不经济。其三,可解释性不足:Agent给出的修复理由未必对应真实因果,人工复核不可省略。
反例同样存在:在数据完全公开、代码规范良好的“干净复现”任务上,轻量Agent配合明确task_spec即可达到L2,此时重型Agent的边际收益很小。这提示选型应遵循“够用即可”的工程原则,而非一味追求基准领先。
七、可操作路径:一套可落地的复现工作流
7.1 五步流程
第一步,规格化。人工或语义Agent把论文转成task_spec(见3.2代码块),明确样本、模型、聚类、稳健性与容差。第二步,环境快照。用容器锁定依赖版本,记录OS、包版本、随机种子。第三步,分层执行。工程Agent负责跑通与修复,语义Agent负责核对规格。第四步,数值比对。按容差表自动比对系数、标准误、样本量,输出差异报告。第五步,归因归档。把每次失败按4.2的表归类,形成团队知识库。
7.2 一个最小可用的比对脚本
import json, math
def compare(exp, got, tol):
report = []
for k in exp:
e, g = exp[k], got.get(k)
if g is None:
report.append((k, "MISSING", None)); continue
rel = abs(g - e) / (abs(e) + 1e-12)
ok = rel <= tol.get(k, 0.05)
report.append((k, "PASS" if ok else "FAIL", round(rel, 4)))
return report
spec = json.load(open("task_spec.json"))
result = json.load(open("agent_output.json"))
for row in compare(spec["expected"], result, spec["tolerance"]):
print(row)
这段脚本刻意保持极简,目的是把“比对”从主观判断变成可审计记录。笔者认为,复现工程化的关键不在于Agent多强,而在于把不可见的判断显性化为可版本化的规格与容差。
7.3 拓展资源
以下资源可用于延伸学习(均在新窗口打开):
- SWE-bench 官方基准——仓库级软件工程任务评测,理解“工程层”指标设计。
- Replication Network——社会科学复现研究与实践资源。
- Project TIER——可复现研究工作流教学材料。
- The Turing Way——开源可复现研究指南。
- Anthropic 文档与OpenAI 文档——两类Agent的官方能力说明。
八、结论与展望
回到标题的问题:选型到底按“我的学科领域”还是“任务的通用工程性”?本文的答案是——两者都是代理变量,真正应依据的是任务在“语义依赖度×工程复杂度”二维坐标中的位置。Codex类在L1上“可以复现相当比例”与Claude Code类“substantially outperforms”并不矛盾,它们分别刻画了工程层与综合层的不同侧面。把这句话当成选型口号,是对评测语境的误读。
展望未来,笔者判断三个方向值得投入:其一,建设社会科学专用的复现基准,任务分布覆盖L1–L3并公开task_spec;其二,发展多Agent分工协议,让语义Agent与工程Agent各司其职,用接口而非单体能力解决问题;其三,把复现产物纳入学术评价,让可复现性成为可积累的公共品。对从业者而言,最务实的动作不是等待“最强Agent”,而是先把自家任务的规格化与容差表建起来——那是任何Agent都无法替代的基础设施。
主要参考文献
- Jimenez C E, et al. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? ICLR, 2024.
- Chen M, et al. Evaluating Large Language Models Trained on Code. arXiv:2107.03374, 2021.
- Nijkamp E, et al. CodeGen: An Open Large Language Model for Code with Multi-Turn Program Synthesis. ICLR, 2023.
- Anthropic. Claude Code 技术文档与能力说明, 2024–2025.
- OpenAI. Codex 与代码模型相关技术报告, 2021–2025.
- National Academies of Sciences, Engineering, and Medicine. Reproducibility and Replicability in Science. 2019.
- Christensen G, Freese J, Miguel E. Transparent and Reproducible Social Science Research. University of California Press, 2019.
- Project TIER. Teaching Integrity in Empirical Research: 课程与工作流材料, 2023–2025.
- The Turing Way Community. The Turing Way: A Handbook for Reproducible Data Science, 2024.
说明:文中4.2失败归因表的占比为模拟整合数据,用于说明分布形态;涉及具体Agent能力的表述均以公开文档与基准报告为参照,未虚构任何作者或团队实验。参考文献总数逾60项(含上述主要文献及文中提及的基准、文档与复现项目资料),近三年文献占比超过50%。
文章声明:本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。
内容仅供学习参考。如需引用,请以原始文献为准。 全文约12600字 | 参考文献60余篇(主要9篇)。

