代码 agent 写完就丢,DataFlow-Harness 把脚本落成可编辑数据管道

DataFlow-Harness: A Grounded Code-Agent Platform for Constructing Editable LLM Data Pipelines

Runming He, Zhen Hao Wong, Hao Liang, Zimo Meng, Chengyu Shen, Xiaochen Ma, Wentao Zhang

cs.SE, cs.AI

2026-07-18

代码 agent 写的数据处理脚本是一次性的,不能可视化、审计、复用;DataFlow-Harness 用 MCP 把 agent 输出约束成对平台后端的类型化增量改动,直接落成可编辑管道,端到端通过率 93.3%,成本比裸 agent 低约 73%。

这篇在解决什么

用 LLM 自动化数据处理流程越来越多,但代码 agent 产出的脚本通常不会自动变成平台上的持久、可编辑产物。论文叫这 NL2Pipeline 缝隙:用户用自然语言说要什么,生产环境要的是结构化、持久、能可视化、能改、能复用的管道资产。一次性脚本只活在源码里,没法在图形工作流界面里审计,常常幻觉出不存在的算子或过时的平台假设,也接不上平台的治理。结果是 agent 看着跑通了,产物却没法用。

方法

四个组件。

Data Pipeline Backend(后端)把管道表示成带类型变更的有向无环图(DAG)。关键约束是 agent 只能做类型化增量改动,不能写自由脚本;每次改动都要过校验,更新后必须还是 DAG、相邻算子的 schema 必须兼容。整个会话界面和可视化编辑器共享这一个持久表示。

MCP Tools Layer 把实时算子注册表和当前管道状态暴露给 agent。流程是 Request-Validate-Commit:agent 每轮先取最新状态,再发起结构化变更,过结构和 schema 校验后写回后端并经 WebSocket 广播。这样 agent 对着实时平台语义操作,不会靠幻觉或过时假设。

DataFlow-Skills 编码领域特定的构造知识,原始算子规格给不了的东西。过程蓝图给推荐的建造顺序(schema 推断、算子选择、参数配置、服务验证);组合约束给算子兼容规则(模态匹配、字段流向)。没有 Skills,agent 可能选错算子、漏掉前置步骤、造出结构对但语义错的管道。

DataFlow-WebUI 是双模界面。对话式写作把管道状态和算子注册表经 MCP 注入 Claude Code 上下文;可视化 DAG 编辑器让人能检查 agent 的改动、调参、重连边、增删算子。手动改动直接写回后端,保证下一轮 agent 对的是最新状态。

结果

12 个任务跨 6 个数据处理场景,每方法每任务 10 次(120 次跑),底座 Claude Opus 4.7。

方法产物端到端通过率成本延迟
裸 Claude Code一次性脚本91.7%$0.950190.7s
MCP-only原生 DAG83.3%$0.321105.5s
DataFlow-Harness原生 DAG93.3%$0.26195.5s

关键发现是:只给 MCP(83.3%)反而比裸写脚本(91.7%)低,这就是 NL2Pipeline 缝隙的量化;DataFlow-Harness 把它补上,比 MCP-only 高 10 个点,和裸脚本几乎平手,同时成本降约 73%、延迟降约 50%。管道表示比可执行代码紧凑得多,加上过程引导,所以又便宜又快。

下游训练有用:DataFlow-Harness 写的数学推理管道,训 Qwen2.5-32B 一轮 AIME24@32 从 25.1 到 35.9、AIME25@32 从 21.6 到 34.5;通用 SFT 管道训 Qwen2.5-7B-Base 九基准平均 61.5 到 63.8,MBPP 64.6 到 75.4。

为什么重要

NL2Pipeline 缝隙是做 agent 加数据平台的人会撞上的真问题。DataFlow-Harness 给的可复制方案是:别让 agent 直接吐代码,让它对着实时后端做类型化变更,再把领域过程知识喂给它。对自建数据平台的团队,这个 MCP、Skills、后端的分层值得抄。

局限与存疑

评测面窄:一个 agent、一个模型族、一个平台特定的小基准。消融没拆开每个组件。schema 校验保证结构对,不保证语义对。论文没给任务聚类的置信区间,也没预设非劣效性检验,作者自己说别当成「一般因果估计」。成本统计在用了 prompt 缓存时要重算。下游训练效用只有两个案例,没有多管道多种子的对照。治理相关声明(持久、复用、溯源、并发编辑、恢复)都没直接评测。方向和设计扎实,证据还是初步的。

术语

原文与代码

社区讨论

相关论文

全部论文解读