【用 AI】我用 Codex 做了一次 MLE Agent 文献调研:从“搜关键词”到建立可执行的阅读框架

我的身份 / 阶段

我目前正在开展 MLE Agent 相关研究,具体方向是:

具备工具调用和代码执行能力的 MLE Agent 构建与评测。

现阶段我需要完成前期文献调研,主要想了解三个问题:

  1. 目前学术界如何定义和称呼 MLE Agent;
  2. 已有 Agent 是如何调用工具、执行代码、进行实验和修复错误的;
  3. 如何设计一个能够真实评测 MLE Agent 的任务集和指标。

我的科研任务

一开始我直接搜索 MLE Agent,但很快发现这个关键词不太稳定。

有些结果中的 MLE 指的是最大似然估计(Maximum Likelihood Estimation),有些论文虽然没有使用 MLE Agent 这个词,但实际研究内容却与我的方向很接近,例如:

  • 让 Agent 自动进行机器学习实验;
  • 让 Agent 读取和修改代码;
  • 让 Agent 调用终端或 Python 执行训练;
  • 让 Agent 根据实验结果继续迭代;
  • 评测 Agent 是否真正完成了机器学习工程任务。

因此,这次我的目标不是让 AI 直接“推荐几篇论文”,而是让它帮我完成一次比较完整的文献调研:

明确相关术语
→ 搜索真实论文
→ 核验论文链接
→ 按研究方向分类
→ 提炼系统架构
→ 总结评测方法
→ 找到适合自己的研究切入点

我用了什么 AI 工具

我使用的是 Codex。

这次我主要让 Codex 做了以下工作:

  • 联网搜索公开学术论文;
  • 优先查看 arXiv 官方论文页面;
  • 核对论文题目、作者、摘要和版本信息;
  • 查找论文的官方项目页或 GitHub 仓库;
  • 按整体架构、机器学习工作流、代码执行、评测与安全四个方向整理;
  • 根据文献结果进一步设计 MLE Agent 的系统架构和评测方案。

我没有把 Codex 输出的内容直接当作论文结论,而是把它作为检索和整理助手。具体论文信息仍然需要打开原文进行确认。

我使用的提示词

我给 Codex 的核心要求是:直接联网找真实文献,不要只生成检索式,也不能凭记忆编造论文。

提示词的主要内容如下:

你是一名具备联网检索能力的科研助手,熟悉 AI Agent、机器学习工程、AutoML、MLOps、软件工程 Agent 和学术文献核验。

请为我的研究主题直接搜索、筛选并整理真实可核验的学术文献。

【研究主题】
具备工具调用和代码执行能力的 MLE Agent 构建与评测

【概念范围】
MLE Agent 指基于大语言模型或其他智能体框架、能够参与机器学习工程任务的 Agent,包括:
- 调用外部工具、函数、API、终端、文件系统或代码执行环境;
- 生成、修改、运行、测试或修复机器学习相关代码;
- 辅助数据分析、数据清洗、模型训练、超参数优化、实验管理、结果分析、部署或监控;
- 根据执行结果、报错信息、测试结果或评测反馈进行迭代修正。

请围绕以下四个方向搜索:

A. MLE Agent 的整体系统架构;
B. Agent 自动完成机器学习工作流;
C. 工具调用、代码执行与代码修复;
D. 评测、可靠性、安全性与人类监督。

优先搜索 arXiv、OpenReview、IEEE Xplore、ACM Digital Library、会议官网和官方 GitHub。

不要把 MLE 单独作为主要检索词,以免混入 Maximum Likelihood Estimation。
不要虚构论文、作者、年份、DOI、arXiv 编号、链接、代码仓库或实验结果。
每篇论文必须提供至少一个可访问的官方核验链接。
无法确认真实存在的论文不要列入正式推荐清单。
如果当前无法联网,请明确说明,不能根据记忆编造文献。

请按以下字段整理:

论文题目、作者与年份、发表平台、研究任务、与 MLE Agent 的关系、Agent 架构、工具调用或代码执行能力、评测任务与指标、主要贡献、局限性、论文链接、代码链接、核验状态。

最后请根据真实文献总结:
1. 可复用的 MLE Agent 系统架构;
2. 可执行的评测方案;
3. 5 个适合继续研究的具体问题;
4. 正式引用前必须人工核验的信息。

为了防止一次检索太多内容,我还可以把任务拆成两轮:

请先只检索 MLE Agent 整体架构和机器学习工作流方向,完成论文核验后暂停。下一轮再检索代码执行、工具调用、评测和安全方向。

我是怎么做的

Codex 首先帮我澄清了一个很重要的问题:MLE Agent 并不是目前完全统一的学术名称。

为了避免漏检,我把检索范围扩展到了:

Machine Learning Agent
Machine Learning Engineering Agent
Data Science Agent
Autonomous Data Science
AI for Data Science
AutoML
MLOps Automation
Code Agent
Tool-Using Agent
Agent Evaluation

同时加入排除词:

"maximum likelihood estimation"
"maximum likelihood estimator"

之后,Codex 按四条线整理文献。

第一条线:机器学习实验和工程任务

这部分找到了比较直接相关的工作,例如:

  • MLAgentBench:评测语言 Agent 是否能够完成机器学习实验,任务中包含读写文件、执行代码和检查输出。
  • MLE-bench:基于 75 个 Kaggle 机器学习竞赛任务,评测 Agent 进行数据准备、模型训练和实验的能力。
  • AIDE:探索如何在代码空间中进行机器学习实验和方案迭代。
  • MLZero:研究多 Agent 进行端到端机器学习自动化,并使用语义记忆和情景记忆辅助迭代。

第二条线:数据科学 Agent

这部分主要关注 Agent 如何处理数据分析和建模任务,例如:

这些论文对我比较有帮助,因为它们提醒我,MLE Agent 不应只会生成一段代码,还应该能在数据、代码、运行环境和实验结果之间形成闭环。

第三条线:工具调用和代码执行

这部分虽然不一定专门针对机器学习,但对系统设计很有参考价值:

  • ReAct:提供“思考—行动—观察”的 Agent 工作模式。
  • Toolformer:研究模型如何决定何时调用工具、调用什么工具以及传递什么参数。
  • SWE-agent:研究 Agent 如何通过专门设计的计算机接口操作代码仓库和开发环境。

这些工作让我意识到,构建 MLE Agent 时,工具接口本身就是系统设计的一部分。不能只给 Agent 一个“执行代码”的黑盒按钮,还要明确它可以读什么文件、运行什么命令、使用多少资源,以及执行后如何验证结果。

第四条线:评测与安全

这部分主要参考了:

我原来更关注 Agent 能不能生成正确代码,但这次检索后发现,至少还要关注:

代码是否真的执行成功
训练结果是否可复现
Agent 是否优化了正确目标
工具参数是否正确
是否发生数据泄漏
是否执行了危险命令
是否需要人工介入

结果如何

这次调研最大的收获不是得到了一串论文题目,而是把原来比较宽泛的研究方向拆成了几个可以落地的模块:

任务规划
+ 工具选择
+ 代码生成
+ 沙箱执行
+ 实验记录
+ 结果验证
+ 错误修复
+ 安全控制

我还整理出了一张文献阅读表,主要记录以下内容:

作者与年份
论文题目
研究任务
覆盖的 MLE 环节
Agent 架构
基础模型
工具调用方式
代码执行环境
是否多智能体
记忆机制
评测基准
评价指标
主要结果
失败案例
安全控制
人类监督方式
局限性
与我课题的关系
是否已核验原文

这张表比单纯保存论文 PDF 更有用。后续写综述时,我可以直接比较不同论文分别解决了哪个问题,而不是重新翻一遍所有文献。

通过这次整理,我暂时把自己的研究问题收缩为:

如何构建一个具备工具调用、代码执行和结果验证能力的 MLE Agent,并在可复现的机器学习工程任务上评测其任务完成率、可靠性和安全性?

相比“做一个能够自动完成所有机器学习任务的 Agent”,这个问题的边界更清楚,也更容易实现和验证。

一个初步的系统设计

结合检索到的论文,我把 MLE Agent 暂时拆成以下几个模块:

用户任务
  ↓
任务规划器
  ↓
工具选择器
  ↓
代码生成/修改
  ↓
受控沙箱执行
  ↓
日志、指标和错误反馈
  ↓
结果验证器
  ↓
继续迭代 / 请求人工确认 / 输出结果

其中,工具可以包括:

Python 执行器
Notebook 执行器
文件读取和写入工具
终端工具
Git 工具
数据质量检查工具
实验追踪工具
模型评测工具

但这些工具不能无限制开放。比较重要的安全限制包括:

  • 文件目录白名单;
  • 禁止读取密钥和隐私文件;
  • 命令白名单;
  • CPU、GPU、内存和运行时间限制;
  • 外网访问控制;
  • 删除文件、提交代码、上传数据等高风险操作需要人工确认;
  • 保存完整的工具调用和执行日志。

我准备如何评测

我认为第一版不适合直接做“从数据到部署”的完整自动化,而应该先选择边界清楚的任务。

例如,可以先做机器学习 Notebook 调试:

输入:
一个存在训练报错或评测错误的 Notebook,以及相关日志。

允许工具:
读取文件、修改代码、执行 Notebook、运行测试。

目标:
修复问题,并让 Notebook 从头运行成功。

自动判分:
代码是否执行成功;
预设测试是否通过;
指标计算是否正确;
输出文件是否生成;
是否发生违规工具调用。

后续还可以增加:

  • 数据清洗任务;
  • 训练失败修复任务;
  • 超参数配置任务;
  • 实验结果复现任务;
  • 数据泄漏检查任务。

我准备重点记录这些指标:

任务成功率
代码执行成功率
测试通过率
结果复现率
工具调用正确率
平均工具调用次数
运行时间
Token/API 成本
人工介入次数
安全违规次数

踩坑和提醒

1. 不要只搜 “MLE Agent”

这个关键词可能混入最大似然估计,也可能漏掉很多没有使用 MLE Agent 这个名称的论文。

更好的做法是将它与以下关键词组合:

LLM Agent
Machine Learning Workflow
Data Science Agent
AutoML
MLOps
Tool Use
Code Execution
MLE-bench
MLAgentBench

2. AI 给出的论文必须逐篇核验

我让 Codex 提供了论文链接,但不会因为链接存在就直接引用。

正式使用前,我还需要确认:

  • 论文作者和年份;
  • 论文是会议论文、期刊论文还是预印本;
  • 论文版本是否有更新;
  • 具体实验指标是否来自正文;
  • 代码仓库是否为官方仓库;
  • 论文中的 Agent 是否真的执行了代码和工具;
  • 实验是否可以复现。

3. “会写代码”不等于“会做机器学习工程”

有些系统可以生成看起来合理的 Python 代码,但没有真正运行,也没有检查数据、指标和实验结果。

所以我现在会把下面四点作为判断标准:

是否属于机器学习工程任务;
是否能够调用工具并执行实际动作;
执行结果是否会影响后续决策;
是否有测试、评测或反馈修正机制。

4. 结果好不一定代表系统可靠

一个 Agent 可能偶然获得较高模型分数,但同时存在:

  • 数据泄漏;
  • 使用了测试集;
  • 超出计算预算;
  • 结果无法复现;
  • 工具调用过程不可审计;
  • 错误时没有主动请求人工帮助。

因此,评测时不能只看最后的模型准确率,还要记录整个执行过程。

可复制建议

  1. 先让 AI 帮你扩展术语和研究边界,再开始正式检索。
  2. 明确要求“联网搜索、提供官方链接、不要编造论文”。
  3. 将文献分为系统架构、机器学习工作流、代码执行、评测安全四组,不要把所有论文混在一起。
  4. 建立文献矩阵,重点记录每篇论文调用了什么工具、如何执行、如何验证。
  5. 构建 Agent 时先选择一个具体任务,例如 Notebook 调试或训练报错修复,再逐步扩展到更长的机器学习工作流。
  6. 把安全控制和可复现性从一开始就纳入系统设计,而不是最后再补充。

这次使用 Codex 后,我对 MLE Agent 的理解从“让大模型自动写机器学习代码”,逐渐变成了:

让 Agent 在受控环境中理解机器学习任务、调用工具执行实验、根据客观结果进行修正,并且能够被可靠地评测和审计。

这也是我后续准备继续深入的方向。

术语扩展这步很关键,避免漏检又能排除最大似然估计的干扰,实用!

先扩术语再检索这一步很有用,不然只搜 MLE Agent 确实容易跑偏。后面逐篇核验是自己看原文,还是也会让 Codex 先检查一遍?