给 Code Agent 一个清晰明确的数据文件,它通常能写出漂亮的分析代码。这已并非新鲜事。
但问题是:如果把它扔进一个包含1000多个文件的真实数据目录,仅给出一句自然语言描述的任务指令,不告知文件名、不提示路径、不提供任何数据结构信息——它还能顺利完成任务吗?
中国人民大学研究团队提出的 CoDA-Bench,正是针对这一真实应用场景而设计。这个全新的评测基准首次将 Code Agent 置于包含1000多个数据文件的复杂环境中,要求模型自行探索文件系统、定位相关数据,再编写代码完成分析任务。结果令人意外:即便当前表现最好的系统,在 CoDA-Bench 上的执行准确率也仅有61.1%;而在难度更高的 CoDA-HARD 子集上,最高准确率进一步下滑至49.6%。
换言之,当前 Code Agent 能力的真正瓶颈并非“不会写代码”,而是——找不对数据。目前,相关论文、数据及代码均已开源。

项目主页:https://coda-bench.github.io/
论文链接:https://arxiv.org/abs/2606.15300
评估代码:https://github.com/ruc-datalab/CoDA-Bench
数据链接:https://huggingface.co/datasets/RUC-DataLab/CoDA-Bench
现有 Code Agent 评测的隐藏假定:数据已被提前准备
过去许多代码或数据分析类的评测基准,都有一个默认设定:直接将目标文件交给 Agent。模型只需要读取数据、编写代码、运行程序并输出答案即可。这套流程若能跑通,就算成功。
然而,真实的工作流程完全不是这样。用户不会提前把数据整理得妥妥帖帖,更不会告诉 Agent 正确文件藏在哪个角落。数据通常分散在复杂的目录结构中,格式五花八门,命名规则杂乱无章,并且常常夹杂大量主题相似但实际无关的文件。
这就带来了一个极易被忽视的问题:如果评测基准默认把正确数据送到 Agent 嘴边,它实际测量的是“给定数据后的代码生成能力”,而非完整真实工作流中的智能体能力。
CoDA-Bench 所聚焦的,正是这一关键缺口:
当正确数据不再被提前提供时,当前的 Code Agent 还能否胜任数据密集型分析任务?
CoDA-Bench:让 Agent 自主搜索数据、编写代码、输出答案

在 CoDA-Bench 中,Agent 被投放到一个包含1000多个数据文件的 Linux sandbox 环境中。它只会收到一句自然语言描述的任务指令,但——目标分析文件的路径、文件名、数据表结构等信息,全部缺失。
它必须自行完成整个流程:
- 准确理解自然语言任务需求;
- 在 Linux 文件系统中探索数据目录;
- 从海量候选文件中筛选出真正相关的数据;
- 解析数据的结构和字段含义;
- 编写代码进行深入分析;
- 运行代码并输出最终答案。
因此,CoDA-Bench 同时考察 Agent 的两大类能力:数据智能——在复杂数据环境中发现、理解并选择正确数据源的能力;以及代码智能——基于数据写出正确分析代码并获得正确结果的能力。
这意味着它不再仅仅评测“给定数据后的代码生成”,而是评测从数据发现到代码执行的完整能力链条。

核心难点不在“文件数量多”,而在于“干扰文件极为相似”
构建这样的测试环境并不像看上去那么容易。一种直觉的做法是塞入大量无关文件——但这样一来,Agent 很容易通过文件名、关键词或文件格式就将干扰数据排除掉。看似环境复杂,实则无法真实反映数据发现的难度。
CoDA-Bench 并未使用随机噪声来充数。研究团队基于 Kaggle 生态系统来构建数据环境:他们分析了 Kaggle notebooks 中不同数据集的共现关系——如果多个数据集经常被真实用户在同一个 notebook 中同时使用,那么它们通常属于相近主题或分析场景。
借助这种共现关系,CoDA-Bench 构建了一个大规模数据集网络,并进一步划分出多个语义相关的“数据社区”。每个任务环境中的干扰文件,都来源于同一个数据社区。
最终结果是:Agent 面临的并非一堆垃圾文件,而是一批看起来都相当合理的候选数据。目标数据与干扰数据往往主题接近、结构类似——Agent 无法仅靠简单的关键词匹配蒙混过关,而必须真正理解任务需求与数据内容。

构造CoDA-Bench数据环境所使用的Kaggle社区数据集共现关系图
从真实 Kaggle notebook 中反向构造可验证任务
除了数据环境,CoDA-Bench 的任务本身也源自真实分析流程。研究团队从 Kaggle notebooks 中提取可复现的分析结果——例如统计量、排名、比例、聚合值等——并将这些结果作为“锚定答案”,再反向构造自然语言问题。
这种设计使 CoDA-Bench 的任务具备三大特点:
- 真实来源:问题直接取自 Kaggle notebook 中的实际数据分析流程;
- 答案可验证:答案对应可复现的统计量、排名、比例或聚合结果;
- 对抗式演化:若任务对强模型过于简单,则移除明显提示;若任务出现歧义或不可解,则修正或回退,最终经过人工检查以确保可靠性。
这种构造方式既保留了真实数据分析中的问题形态,又保证了答案可通过代码复现,便于进行自动化评测。

结果分析:Agent 往往不是写错代码,而是先找错了数据
研究团队评测了多个主流的 Code Agent 及框架,包括 Claude Code、Codex CLI、OpenHands 和 Mini-SWE-Agent。
实验结果极具说服力:当前最强的 Agent 在 CoDA-Bench 上仍然面临显著挑战——在完整 CoDA-Bench 上,最高执行准确率仅为61.1%;在难度更高的 CoDA-HARD 子集上,进一步降至49.6%。

更值得关注的是:这些失败并不总是因为代码编写出错。在许多情况下,Agent 在第一步——定位正确数据——就已经出了问题。
为了区分“写代码难”和“找数据难”,研究团队设计了一个 oracle 对照实验。在普通设置中,Agent 需要自行从完整数据环境中发现相关文件;而在 oracle 设置中,系统直接告知 Agent 正确的数据路径,仅考察后续的代码分析能力。
结果差距非常显著:
- Claude Code + Sonnet-4.6 在 CoDA-HARD 上的准确率从45.4%提升至73.1%
- OpenHands + GPT-5.5 从44.5%提升至68.9%
这些数据清晰地揭示了问题的本质:数据发现能力已成为当前 Code Agent 的关键瓶颈。如果一个评测基准默认将正确数据交给 Agent,它很可能会系统性高估 Agent 在真实数据分析场景中的实际能力。

总结
CoDA-Bench 的初衷并非为了证明某个具体 Agent 不够强大,而是希望填补当前 Agent 评测体系中一个重要的空白:在真实任务场景中,数据往往不是事先准备好的输入,而是散落在复杂环境中的待发掘资源。
一个真正可用的 Code Agent,首先需要判断该用什么数据、从何处查找数据、如何验证数据是否匹配任务需求——然后才谈得上编写代码进行分析。CoDA-Bench 旨在为这一研究方向提供更真实、更系统的评测基础。
目前,论文、代码和数据均已开放,欢迎广大研究者体验并提交新的 Agent 评测结果。

张玉鑫,中国人民大学信息学院在读博士生,导师为范举教授。研究方向涵盖大语言模型、数据智能体、数据分析与智能体强化学习,重点关注大模型在复杂数据环境中的自主查询、数据发现与代码分析能力。个人主页:yuxinzhang-research.github.io

张绍磊,中国人民大学信息学院助理教授。他于中国科学院计算技术研究所获得博士学位。研究方向涵盖大语言模型、智能体系统及数据科学。相关研究成果已在 NeurIPS、ACL、ICLR 等国际人工智能与自然语言处理会议发表论文30余篇,其开源的多语言与多模态大模型项目在 GitHub 社区累计获得10000+星标,模型下载量达万余次。长期担任国际会议 ACL ARR 领域主席。个人主页:https://zhangshaolei1998.github.io/

范举,中国人民大学教授、博士生导师,国家级青年人才,中国计算机学会数据库专委会、大数据专委会执行委员。研究方向包括:数据治理技术与系统、智能数据库系统等。相关研究成果已在计算机领域国际顶级期刊/会议发表论文60余篇。作为项目负责人,先后主持国家自然科学基金优秀青年基金项目、重点项目、面上项目以及多项产学研合作项目。曾获得 ICDE 2025 Best Paper Runner-Up、ACM SIGMOD Research Highlight Award、ACM China Rising Award、宝钢优秀教师等多项荣誉。
