![]()
給 Code Agent 一個明確的數據文件,它往往能寫出正確的分析代碼。
但如果把它放進一個包含 1000 + 文件的真實數據目錄,只告訴它一句自然語言問題,不給文件名、不告訴路徑、不提供 schema,它還能完成任務嗎?
中國人民大學的研究團隊提出CoDA-Bench,聯合評估 Agent 的Code Intelligence + Data Intelligence。該基準首次把 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 正確文件在哪。數據可能分散在復雜目錄中,格式多樣、命名不統一,還夾雜大量主題相近但實際無關的文件
這就帶來一個容易被忽視的問題:如果 benchmark 默認把正確數據交給 Agent,它測到的更多是「給定數據后的代碼能力」,而不是完整真實工作流中的 Agent 能力。
CoDA-Bench 關注的正是這個缺口:
當正確數據不再被提前給出時,當前 Code Agent 還能否完成數據密集型分析任務?
CoDA-Bench:
讓 Agent 自己找數據、寫代碼、給答案
![]()
視頻鏈接:https://mp.weixin.qq.com/s/ofOV3iGUdfZyGpZ8az0fFA
模型既需要找數據也需要寫代碼分析數據!
在 CoDA-Bench 中,Agent 被放入一個包含 1000 + 數據文件的 Linux sandbox。它只會收到一個自然語言任務,但不被告知目標分析文件路徑、文件名或數據的 schema
它需要自己完成完整流程:
- 理解自然語言任務需求;
- 在 Linux 文件系統中探索數據目錄;
- 從大量候選文件中找到相關數據;
- 理解數據結構和字段含義;
- 編寫代碼進行分析;
- 運行代碼并輸出最終答案。
因此,CoDA-Bench 同時考察 Agent 的兩類能力:
- Data Intelligence:能不能在復雜數據環境中發現、理解和選擇正確數據源;
- Code Intelligence:能不能基于數據寫出正確分析代碼,并得到正確結果。
這使得 CoDA-Bench 不再只評測「給定數據后的代碼生成」,而是評測從數據發現到代碼執行的完整鏈條
![]()
難點不在「文件多」,
而在「干擾文件也很像」
構造這樣的環境并不容易,一種直觀做法是往目錄里塞很多無關文件。但隨機放入大量無關文件,Agent 很容易通過文件名、關鍵詞或格式把干擾數據排除掉。這樣的環境看起來復雜,但并不能真實反映數據發現的難度。
CoDA-Bench 沒有簡單地使用隨機噪聲,而是基于 Kaggle 生態構建數據環境。研究團隊分析了 Kaggle notebooks 中不同數據集的共現關系:如果多個數據集經常被真實用戶在同一個 notebook 中使用,它們通常屬于相近主題或分析場景。
基于這種共現關系,CoDA-Bench 構建了一個大規模數據集網絡,并進一步劃分出多個語義相關的數據社區,每個任務環境中的干擾文件都來自同一個數據社區。
這使得 Agent 面對的不是垃圾堆,而是一批看起來都合理的候選數據。
目標數據和干擾數據往往主題相近、結構相似,Agent 不能只靠簡單關鍵詞匹配,而必須真正理解任務需求和數據內容。
![]()
構造CoDA-Bench數據環境所使用的Kaggle社區數據集共現關系圖
從真實 Kaggle notebook 中
反向構造可驗證任務
除了數據環境,CoDA-Bench 的任務本身也來自真實分析過程。
研究團隊從 Kaggle notebooks 中提取可復現的分析結果,例如統計量、排名、比例、聚合結果等,并將這些結果作為solution anchor,再反向構造自然語言問題。
這讓 CoDA-Bench 的任務具備三個特點:
- 真實來源:問題來自真實 Kaggle notebook 中的數據分析流程;
- 可驗證答案:答案對應可復現的統計量、排名、比例或聚合結果;
- 對抗式演化:如果任務對強模型太容易,就移除明顯提示;如果任務變得歧義或不可解,就修正或回退,最后再經過人工檢查保證問題的可靠性。
這種構造方式既保留了真實數據分析中的問題形態,也保證答案可以通過代碼復現,便于自動化評測。
![]()
結果:Agent 經常不是寫錯,而是先找錯
研究團隊評測了多個當前常用的 Code Agent 和 Agent 框架,包括 Claude Code、Codex CLI、OpenHands 和 Mini-SWE-Agent。
實驗結果顯示,當前強 Agent 在 CoDA-Bench 上仍然面臨明顯挑戰
- 在完整 CoDA-Bench 上,最高執行準確率為61.1%
- 在更難的 CoDA-HARD 子集上,最高執行準確率進一步下降到49.6%
![]()
更關鍵的問題是:這些失敗并不總是來自代碼寫錯。很多時候,Agent 在第一步就沒有找到正確數據
為了區分「寫代碼難」和「找數據難」,研究團隊進行了 oracle data 實驗。
在普通設置中,Agent 需要自己從完整數據環境中發現相關文件;在 oracle 設置中,系統直接告訴 Agent 正確數據路徑,只考察后續代碼分析能力。
結果差距很大:
- Claude Code + Sonnet-4.6 在 CoDA-HARD 上從45.4%提升到73.1%
- OpenHands + GPT-5.5 從44.5%提升到68.9%
這說明,數據發現已經成為當前 Code Agent 的關鍵瓶頸
如果一個 benchmark 默認把正確數據交給 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、寶鋼優秀教師等獎勵。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.