项目详情
AIDE ML
在「代码空间」里做树搜索的 ML 工程 Agent——写代码、评估、自我改进,直到指标打满
更新于 2026-09-15
← 返回汇总
项目速览
一句话定位
让 LLM 像 AlphaGo 下棋一样写机器学习代码
AIDE 算法的开源参考实现:一个 LLM 驱动的树搜索 Agent,自主起草、调试、基准测试机器学习代码,直到用户定义的指标最大化。每个 Python 脚本是解空间树的一个节点,LLM 生成的补丁产生子节点,指标反馈负责剪枝导航。OpenAI MLE-bench(75 个 Kaggle 竞赛)实测其树搜索比最佳线性 Agent(OpenHands)多拿 4× 奖牌。WecoAI 公司由此研究孵化。适合 Agent 架构研究者与想快速搭高性能 ML 管线的工程师。
项目速览
核心数据
- 研究血统纯正:2024-04 开源,配套论文 arXiv 2502.13138;仓库自述定位「研究友好参考实现」而非产品
- 维护节奏研究型:v0.1.4(2024-04)→ v0.2.0(2025-01)→ v0.2.2(2025-11),commits 为维护级修复(NaN 指标拒绝、优化方向判定)——算法稳定,代码不折腾
- 极轻本体:仓库仅 ~0.5 MB,pip 即装(
pip install aideml),模型中立(OpenAI/Anthropic/Gemini/本地任意 OpenAI 兼容端点)
- 16 位贡献者 + PyPI 持续下载——学术参考实现的标准生命形态
🔥 核心算法
解空间树:每个节点是一份完整代码
初始草稿
中间解
当前最优
失败/被剪枝(可回溯)
硬数据
树搜索 vs 线性链:MLE-bench 的裁决
树搜索(AIDE 路线)
- 4× 奖牌数:OpenAI MLE-bench(75 个真实 Kaggle 竞赛)中,AIDE 树搜索比最佳线性 Agent(OpenHands)多拿四倍奖牌
- 探索与利用并行:差解不丢,留在树里等回溯
- 失败即信息:报错节点成为 debug 算子的输入
线性链(主流 Agent 形态)
- 一次只有一条「当前最好」,历史方案被覆盖即丢失
- 单路径早熟:陷入局部最优后只能靠运气跳出
- ReAct 式循环适合「任务执行」,不适合「解空间优化」
这是本项目最重要的思想贡献:把代码优化从「对话循环」重构为「搜索问题」——LLM 不是唯一决策者,只是树上的生成算子;搜索策略本身(best-first + 剪枝)才是骨架。
学术影响
被谁引用:AI-for-AI 研究的公共基座
| 机构 | 研究 | 与 AIDE 的关系 |
| OpenAI | MLE-bench | 75 Kaggle 竞赛评测基准,AIDE 是被测与被引的代表性 agent |
| METR | RE-Bench | 前沿 AI R&D 能力对人类专家的评测 |
| Sakana AI | AI Scientist-v2 | 「工作坊级自动科学发现」直接采用 AIDE 式 agent 树搜索 |
| Meta | LLM Speedrunning Benchmark | 复现 NanoGPT 改进的基准 |
| Meta | AIRA / aira-dojo | MLE-bench 上的搜索·探索·泛化研究 |
| 上交大 | ML-Master | 「AI-for-AI」:探索与推理的整合 |
「让 AI 做 AI 研究」这条赛道的主要评测与系统,几乎都在 AIDE 铺的轨道上跑——1.5k stars 远低估了它的思想占有率。
上手
三样东西说清任务:数据 + 目标 + 指标
# 安装 · 配 key · 一条命令
pip install -U aideml
export OPENAI_API_KEY=sk-...
aide data_dir="example_tasks/house_prices" \
goal="Predict the sales price for each house" \
eval="RMSE between log-prices"
# 产物
logs/<id>/best_solution.py # 最优代码
logs/<id>/tree_plot.html # 可点击的解树可视化
# 换模型 / 加预算
aide agent.code.model="claude-4-sonnet" \
agent.steps=50 agent.search.num_drafts=5
- 自然语言任务规格:不需要 YAML 网格、不需要写包装器——goal 和 eval 就是给同事交代任务的说法
- Python API 同样三行:
aide.Experiment(data_dir, goal, eval).run(steps=N)
- HTML 解树可视化:每个节点的代码、指标、父子关系全可查——搜索过程可审计
- Streamlit UI:侧栏贴 key、传数据、按 Run——非命令行用户友好
- 模型中立:任何说 OpenAI API 的模型都能当代码生成器
开源结构
算法 / 仓库 / 产品:开源核心的教科书分层
AIDE 算法
论文层(arXiv 2502.13138):LLM 引导的代码空间树搜索——思想公开,任何人可实现。
本仓库(参考实现)
研究友好的精简实现:CLI + 可视化 + 配置预设。定位是复现论文、试新想法、原型 ML 管线。
Weco 产品
公司层:泛化到更广的代码优化场景,加实验跟踪与用户控制。开源版与商业版边界清晰。
- 对研究者的诚意:搜索启发式、评估器、LLM 后端全部可替换——「参考实现」名副其实
- 对公司的克制:没有把开源版阉割成诱饵,维护级修复持续回流(NaN 拒收、优化方向判定都是 2026 年的 commit)
生态位
Agent 光谱上的位置:搜索型,不是执行型
执行型(ReAct 循环)
→
软件工程型(OpenHands 等)
→
搜索优化型(AIDE)
- 执行型:完成明确任务(订机票、改 bug)——对话即流程
- 工程型:在真实仓库里干活——文件系统 + 终端 + 多步规划
- 搜索型(AIDE):目标只有一个可量化指标——把「怎么写」交给树搜索,把「好不好」交给评估器
- 适用判据:你的任务能写出
eval 函数吗?能 → AIDE 范式;不能(需求模糊、多目标)→ 换执行型
风险提示
需要警惕
- 研究仓库节奏:大版本一年一更,issue 处理慢(仅 3 个 open,但历史响应也淡)——生产需求请看 Weco 或自己 fork
- 默认配置已老:默认模型 gpt-4-turbo、默认 20 步——2026 年的今天需手动换新模型与预算
- 成本结构:num_drafts(5) × steps(20) 意味着上百次 LLM 调用 + 每节点完整执行代码——token 与算力双重开销
- 代码执行安全:Agent 自动运行生成的代码(含任意数据处理逻辑),沙箱隔离需自备
- 指标即天花板:能被 eval 量化的才能被优化——数据泄漏式「高分低能」解(如 target leakage)AIDE 同样会欣然采纳
潜力评估
评分:8.0 / 10 · tracking
star 数不是它的计量单位——引用数才是。树搜索范式已被 OpenAI/METR/Sakana/Meta 的后续研究反复验证,是这个「AI 做研究」时代的基础设施级 idea。跟踪价值:看搜索策略如何与更强的基础模型叠加(更强 LLM 是否让搜索结构变得不那么重要,是开放问题)。