千笔-AIWritePaper · https://www.aiwritepaper.com
前两篇选型写的是 Coding Agent 和 Harness,对象是写代码。这篇换到数据分析。写代码出错,测试多半会红;数据分析出错,图照样漂亮,表照样整齐,结论却可能整个反了。所以选型时最该问的问题不是「哪个 Agent 更聪明」,而是「这条工作流里,哪一步必须有人看,哪些地方 Agent 说了也不能信」。
素材来自 PyMC Labs 频道 2026-10-09 发布的一期约 61 分钟的圆桌,题为The State of Agentic Data Science: From Hype to Real-World Impact,由 Hugo Bowne-Anderson 主持,嘉宾有 scikit-learn 联合创始人 Gaël Varoquaux、PyMC Labs 的 Luca Fiaschi 以及来自 Bain 的 Shipra Arora。下文转述的观点都按自动字幕整理,只做意译,不编造原话,也不引用任何测评分。实验部分是我自己构造的虚构数据,结果在_w/agentic-ds-select/。
图:上排为虚构数据的合并与分层口径;下排为完整工作流与五类缺陷配置的终裁。
目标说明
读完你应能独立完成四件事。
- 用七项清单评估一条 Agentic 数据分析工作流,给出能用、限场景、不能用三档。
- 说清哪些环节必须保留人类复核点,以及缺了它会怎样失败。
- 用一个故意构造的分组陷阱,测试候选工作流会不会把错误结论交出来。
- 把终裁结果和人类必做清单存成 CSV,作为选型记录。
适用与边界
适合正在评估「让 Agent 跑分析、出图、写报告」的团队,不论用的是 notebook 里的助手、独立的数据分析 Agent,还是自己拼的工作流。
不做的事。不比较具体产品,不给任何工具打分,圆桌里也没有给出这类分数。七项清单评的是工作流配置,同一个工具配置不同,终裁可能完全不同。
失败含义。终裁为能用,只代表这条工作流在七项上都有对应机制,不代表分析结论正确。结论是否正确,仍然要靠领域知识和复核。
圆桌里几条值得落地的判断
Gaël Varoquaux 的出发点很朴素。数据科学是围绕自己的数据展开的,通用大模型是在别人的数据上训练出来的,它不了解你手里这份数据的特殊之处。落到工作流上,就是 Agent 对数据的理解默认不可信,口径和过滤条件要有人确认。
Luca Fiaschi 提到 Agent 可以充当业务方和模型之间的翻译层,帮人探索数据。他也指出模型不知道分析结果最终怎么用,比如上线时某些特征拿不到,或者业务只关心某类客户群体。这类上下文只能由人提供。
Shipra Arora 把验证方式描述成一条光谱,一端是人在回路里,一端是完全交给 Agent,中间是让另一个模型当裁判,具体放在哪里取决于问题本身。她举的例子是,面向品牌和客户的分析出错代价高,最后一公里需要治理和人工把关;团队内部提效的任务可以放得更开。她还提到,新模型用更少的上下文就能答对,可它走了哪些步骤反而更难看清,可追溯性在下降。
Hugo Bowne-Anderson 介绍了他们做的从业者调查。多数人觉得 AI 在常规代码和调试上有用,觉得它在审阅和批评工作上有用的人不到一半;被问到怎么验证 AI 生成的代码或分析时,多数人是运行后看输出,或者手动读,请另一个 AI 来批评的人也不到一半。他还提到同时跑几路平行分析、人留在回路里随时纠偏的做法。
这几条合起来,就是下面七项清单的来源。
七项终裁清单
| 项 | 要回答的问题 | 能用的最低条件 | 缺失时的典型失败 |
|---|---|---|---|
| 任务分解 | 每一步做什么、产出什么 | 步骤与中间表可列出 | 一步到位,无法定位错误 |
| 工具权限 | Agent 能读写哪些数据 | 只读副本,敏感列脱敏 | 误读或误改生产库 |
| 人类复核点 | 哪一步必须人看 | 口径与结论前各一处 | 错误结论直接交付 |
| 不可信区标注 | 哪些输出默认不信 | 因果措辞、外推须标注 | 相关写成因果 |
| 数据血缘 | 结果来自哪些表和过滤 | 源表、过滤、版本可追溯 | 结果无法复现 |
| 失败回滚 | 出错后从哪里重跑 | 每步留中间结果 | 只能从头再来 |
| 探索与终稿分离 | 哪些图能进报告 | 终稿图重画并标口径 | 探索图被当成结论 |
实验:一个故意构造的分组陷阱
为了让「必须有人看」变得具体,我构造了一个辛普森悖论。两个科室,新旧两种流程,比较成功率。合并看,旧流程更好;分科室看,两个科室都是新流程更好。原因是新流程大多用在难度更高的外科。
合并口径 新=0.780 旧=0.826 -> 合并看旧流程更好 分层 内科 新=0.931 旧=0.867 -> 新流程更好 分层 外科 新=0.730 旧=0.688 -> 新流程更好 G0 完整工作流 终裁=能用 结论=新流程分层更好 | 降级项=[] 人类必做=[] F1 无人类复核点 终裁=不能用 结论=旧流程更好(错) | 降级项=['人类复核点'] 人类必做=['分层前后结论必须人看'] F2 权限过宽读生产库 终裁=不能用 结论=新流程分层更好 | 降级项=['工具权限'] 人类必做=['只读副本+行级脱敏'] F3 探索图当终稿 终裁=不能用 结论=旧流程更好(错) | 降级项=['不可信区标注', '探索与终稿分离'] 人类必做=['因果措辞人工改写', '终稿图人工重画并标口径'] F4 无失败回滚 终裁=不能用 结论=新流程分层更好 | 降级项=['失败回滚'] 人类必做=['每步留中间表可重跑'] F5 无数据血缘记录 终裁=限场景 结论=新流程分层更好 | 降级项=['数据血缘'] 人类必做=['记录源表/过滤/版本'] CSV rows: 42合并与分层三行是真实计算结果。配置级的结论列是按规则设定的,规则是缺了复核点或把探索图当终稿的配置,交出的是合并口径的结论。这个设定是实验假设,用来演示失败形态,并不是对某个产品的观测。
F2 和 F4 的结论碰巧是对的,终裁仍是不能用。结论对了,只说明这一次运气好;权限过宽和不能回滚,迟早会在别的任务上出事。
失败含义速读
| 配置 | 终裁 | 失败含义 | 人类必做 |
|---|---|---|---|
| F1 无复核点 | 不能用 | 错误结论直接进报告 | 口径与结论前各看一次 |
| F2 权限过宽 | 不能用 | 生产数据暴露或被改 | 只读副本加脱敏 |
| F3 探索当终稿 | 不能用 | 图和措辞误导读者 | 终稿图重画,因果措辞改写 |
| F4 无回滚 | 不能用 | 一步错要全部重跑 | 每步落中间表 |
| F5 无血缘 | 限场景 | 内部探索可用,对外不行 | 记录源表、过滤和版本 |
复核点放在哪两处
很多团队一听「人在回路里」,就在最后加一道审批,Agent 写完报告,人看一眼签字。这道审批来得太晚,报告写完时口径已经固化,看的人很难从一段流畅的文字里发现分组问题。更有效的位置有两处。第一处在口径确定之后、正式计算之前,人确认分组变量、过滤条件和比较对象。第二处在结论成文之前,人对照中间表看结论有没有超出数据能支持的范围。辛普森那组数据,第一处复核就能拦住。
复核也要留痕。每次复核记下看了什么、改了什么、谁看的,存进和血缘记录同一个位置。这样回头审计时,能分清哪些判断是 Agent 做的,哪些是人做的。
平行分析是一种便宜的验证
圆桌里提到的同时跑几路分析,用在这里很合适。同一个问题交给两条不同配置的工作流,或者同一条工作流用不同的提示跑两次,结论不一致就进人工复核。它不能保证找出所有错误,成本却很低,适合作为复核点之前的一道粗筛。
当天最小实验
- 10 分钟,把你候选的工作流按七项各写一句现状,写不出来的项直接记为不能用。
- 10 分钟,把脚本里的辛普森数据交给候选 Agent,只说「比较新旧流程成功率」,看它会不会主动分层。
- 5 分钟,记录它是否标注了口径,是否用了因果措辞。
- 5 分钟,把结果写进 CSV,和脚本的 G0 行对照。
踩坑
- 让 Agent 直接连生产库「方便一点」,它跑了一个全表扫描,拖慢了线上查询。
- 探索阶段的图被直接贴进周报,图上的过滤条件谁也说不清。
- 报告里写「新流程导致成功率下降」,其实只是合并口径下的相关。
- 只保留最终结果表,复核时发现某一步过滤错了,只能从头重跑。
总结
Agentic 数据分析的选型,核心是给不可信的地方装上人。七项清单里,人类复核点和探索与终稿分离两项最直接决定结论对错,权限和回滚决定出事后的代价,血缘决定能不能复现。圆桌里几位嘉宾的判断很一致,验证方式取决于出错的代价,对外的分析要有人把关最后一步。把七项终裁和那份辛普森数据当成选型的固定考题,比看演示视频靠谱。选型记录和人类必做清单整理成文档时,可以用千笔-AIWritePaper 帮忙排版归档。