Carnot: Interpretable, Interactive, and Optimized Execution of Deep Research Queries
Matthew Russo, Yash Agarwal, Tianyu Li, Zhuohan Gu, Michael Cafarella, Omar Khattab, Tim Kraska, Samuel Madden
cs.DB, cs.AI
2026-08-10
Carnot 把自然语言查询编译成可视执行图,notebook 里逐算子检查改写,改一格只重跑该格,并按成本与延迟预算自动换实现。
企业分析师想用自然语言查数据湖,现有两条路都不顺手。一类是深度研究 agent,丢一个问题进去等一个答案出来,中间的检索、变换、LLM 调用全藏在黑盒里,既看不到它在哪一步跑偏,也拦不住它基于错误前提往下编;另一类是语义算子,流程透明但按 LLM 调用计费,放大到企业级数据湖上贵得用不起。结果是分析师既没法核实中间结果,也没法纠正系统的走向,要改只能整条重跑,把昂贵的算力再付一遍。
Carnot 把自然语言请求编译成一张物理执行图,在执行开始前就摊开给用户看。每个算子是一个 notebook 单元,可以切到三个抽象层看:自然语言意图、生成的代码或 prompt、原始输入输出。执行是增量的,带缓存,改一个单元,只有这个算子重跑,上游没动的结果直接复用。这条设计直接对应了前面那个痛点:不用为每一次迭代付全价。
几个关键设计:
这里要诚实说:Carnot 是一篇 demo 论文,没有给传统意义上的定量 benchmark,也没有跟其他系统做数字对照。它用两个工作负载展示交互流程:一份脱敏的 1000 条消费品类目评论,和学术基准 KramaBench 的法律任务,跑了三个场景:执行前检查计划 DAG、用对话追加约束让系统重规划、直接在单元里改 prompt 然后看下游重算。
| 维度 | Carnot 提供的 | 论文未提供 |
| 计划透明度 | 执行前可见的 DAG 加三层单元视图 | 与其他系统的数字对比 |
| 成本控制 | 按用户预算动态换实现 | 实际节省金额或 token 数 |
| 正确性 | 无保证 | 计划准确率的量化评估 |
代码开在 github.com/mitdbg/carnot。
对在搭企业级 AI 分析系统的人来说,这是把「黑盒 agent」和「昂贵的语义算子」之外那条折中路线做实了:既保留 LLM agent 的灵活性,又把过程暴露出来让人能拦、能改、能控成本。增量执行加缓存这一点尤其实际,迭代式数据分析里大头开销是反复重跑,能只重跑改动部分就省下来。
论文自己承认系统对计划的准确性或正确性没有任何保证。它提了一条软统计保证的思路(借用 Lotus 那套,相对某个 oracle 给统计保证),但作者也说明这是软的,oracle 本身也可能错。此外 demo 论文体例决定了没有跟现有 deep research 系统的端到端数字对比,成本的「节省」目前是机制论证不是实测。作者列了几个还没做的:web 搜索、通用 tool calling,以及把 notebook 界面改进得更能体现执行图的非线性 DAG 结构。