AI Native 实践

让 AI 做数据分析的正确方式:把自然语言问题编译成可复跑的分析 DAG

以“每周指标异常分析”为例,本文给出一个 AI Native 数据分析工作流:Agent 负责澄清意图、生成 AnalysisSpec 和解释候选;确定性执行器负责 SQL、Notebook 与质量检查;数据 owner 负责定义、结论和发布审批。

来源说明与适用边界

本文不是“让 Agent 自己决定业务结论”的方案。它把 Agent 放在问题澄清、分析规格生成、候选解释和报告草拟的位置;数据查询、指标计算、质量断言与发布仍由确定性系统和人承担。

主要依据如下:

  • From Research Question to Scientific Workflow 提出语义层、确定性工作流生成层和领域 Skills 三层拆分。作者报告:固定 intent 能生成确定的 DAG;Skills 在其 150 个查询的实验里将 full-match intent accuracy 从 44% 提升到 83%。这些是特定科学计算实现中的作者结果,不是通用数据分析承诺。
  • SciAgentArena 的结论值得克制解读:当前 Agent 在结构明确、验收标准清楚的数据分析工作流里更有帮助,但在开放式探索和新颖洞见上仍不稳定。
  • AgentDS 对六个行业、17 个挑战的比较显示,AI-only baseline 在领域推理上仍有限,而最强结果来自人机协作。它支持“保留领域 owner”的工作分工,不证明某一个具体产品流程。
  • GitHub Agentic Workflows 文档 则提供工程参照:自然语言工作流仍应在 frontmatter 声明权限、安全输出和预算,写动作必须受控且人工保留审批。

场景假定数据团队已经有受控的数据仓库、指标定义、只读服务身份和基础 BI 资产。没有这些前提时,先补数据治理,不要把 LLM 当成数据治理的替代品。

先给结论

AI Native 数据分析最值得自动化的,不是让模型“看看表然后给洞见”,而是把反复出现、但跨越业务语言和技术语言的翻译工作做成受控流水线:

自然语言问题
  -> AnalysisSpec(人工可审阅的意图)
  -> validated DAG(确定性可复跑的计划)
  -> read-only execution(SQL / notebook / quality checks)
  -> evidence packet(表、图、查询、假设、限制)
  -> analyst review(结论、动作、发布)

核心约束是:相同的已批准 AnalysisSpec 必须编译出相同的 DAG;Agent 的每条解释都必须区分“计算结果”“已验证业务事实”“待验证假设”;没有通过数据质量门的结果不得生成对外结论。

这比多开几个“分析 Agent”更重要。因为真正昂贵的返工往往不是 SQL 写不出来,而是指标口径错、时间窗混用、样本偏差没声明、结论没有证据、或者一个漂亮图表在下周无法复现。

场景定义:每周指标异常分析

以一个内部运营场景为例:每周一,业务负责人看到“付费转化率下降”,希望知道下降在哪个环节、是否真实、下一步由谁验证。原始流程通常是:提问人发一句模糊消息,分析师追问口径、翻文档、手写 SQL、清洗数据、做图、在 Slack 里解释,然后下周很难确定是否沿用了同一条件。

AI Native 后的目标不是取消分析师,而是把过程变成可观察的状态流转:

new
  -> scoped
  -> spec-drafted
  -> owner-approved
  -> compiled
  -> executing
  -> quality-gated
  -> evidence-reviewed
  -> published | rejected | needs-clarification

“付费转化率下降”在 new 状态还不是可执行任务。它至少缺少分子/分母、市场、产品、时间窗、对照期、数据敏感级、行动阈值和可接受的不确定性。Agent 的第一价值是把缺失项变成明确问题,而不是偷偷补全。

原流程痛点:为什么直接让 Agent 连数据库会放大错误

原流程问题直接 Agent 查询的坏结果受控 DAG 的处理
指标名含义不唯一选了相似字段,数字合理但口径错误Skill 将名称映射到 versioned metric id
时间窗口语化“上周”与自然周/滚动 7 天混淆Spec 固定时区、起止日期、对照规则
数据迟到或回填将未完成数据误当趋势质量节点检查 freshness、completeness、backfill
维度切片太多偶然波动被写成原因预注册切片、标注探索性结果
图表可视但不可追溯截图进入周报,查询丢失每个图绑定 query hash、数据快照与版本
Agent 过度自信推断因果或给业务建议输出分类为 fact / finding / hypothesis / recommendation

AgentDS 的结果尤其提醒数据团队:能写 Python、能调用工具,不等于能掌握行业特有的因果、风险与多模态信号。人必须保留在“问题是否值得问、口径是否成立、结论是否可行动”的位置。

目标工作流:语义层、确定性层、知识层与审批层

借鉴科学工作流的三层拆分,我会为数据分析加入一个显式审批层:

                     reviewed metric / policy Skills
                                  |
request -> intake agent -> AnalysisSpec -> validator -> DAG compiler
                                  |                        |
                             human approval            read-only runner
                                                           |
                                                           v
                                               quality checks + artifacts
                                                           |
                                                           v
                                              explanation agent -> draft report
                                                           |
                                                           v
                                                    data owner review

语义层:Agent 只生成可审阅意图

Agent 读取被批准的 metrics glossary、数据目录和当前请求,生成结构化 AnalysisSpec。它不可直接发 SQL 到生产仓库,也不可自行提高数据访问级别。

type AnalysisSpec = {
  id: string;
  revision: number;
  question: string;
  metric: {
    id: string;
    definitionRevision: string;
    numerator: string;
    denominator: string;
  };
  population: { market: string[]; product: string[]; exclusions: string[] };
  time: { timezone: string; start: string; end: string; comparison: "prior-period" | "year-over-year" };
  dimensions: string[];
  hypotheses: string[];
  dataClassification: "internal" | "restricted";
  allowedOutputs: ("aggregate-table" | "chart" | "draft-report")[];
  approval: "pending" | "approved" | "rejected";
};

关键字段是 definitionRevision。没有它,指标文档更新后,同一个 metric id 可能在不同周代表不同含义,历史结论无法解释。

知识层:把数据团队经验做成受版本控制的 Skills

Skills 不必神秘,初版就是数据 owner 看得懂的 Markdown/YAML 文件:术语映射、可用维度、最小样本、禁用切片、数据延迟、可用表、常见陷阱和审阅人。

skill: payment-conversion
metric_id: payments.conversion_rate
definition_revision: 2026-06
source_model: mart_payment_funnel_daily
freshness_slo_hours: 18
timezone: Asia/Shanghai
required_dimensions: [platform, acquisition_channel]
forbidden_dimensions: [email, phone, raw_user_id]
minimum_denominator: 500
known_caveats:
  - "退款事件最多延迟 48 小时"
  - "渠道归因窗口为 7 天"
owners: [growth-analytics]

Skills 不能给 Agent 任意数据库权限;它们只声明语义和约束。每次运行记录到底用了哪个 skill revision,便于在定义变更后重跑历史分析。

确定性层:编译器而不是模型来生成可执行 DAG

一旦 AnalysisSpec 已批准,编译器按固定模板生成步骤。相同 spec、相同 skill 和相同 compiler revision 产生同一 DAG;LLM 不参与自由改写 SQL。

dag:
  id: analysis-2026w35-conversion-v1
  nodes:
    - id: validate_freshness
      type: quality_check
      input: mart_payment_funnel_daily
      rule: freshness_lte_hours:18
    - id: aggregate_metric
      type: parameterized_query
      template: conversion_by_dimension_v3
      parameters_from: AnalysisSpec
    - id: check_denominators
      type: quality_check
      rule: denominator_gte:500
    - id: compare_periods
      type: deterministic_stat_test
      input: aggregate_metric
    - id: render_chart
      type: chart_template
      input: compare_periods
    - id: build_evidence_packet
      type: artifact_manifest
      inputs: [aggregate_metric, compare_periods, render_chart]
  edges:
    - [validate_freshness, aggregate_metric]
    - [aggregate_metric, check_denominators]
    - [check_denominators, compare_periods]
    - [compare_periods, render_chart]
    - [render_chart, build_evidence_packet]

validate_freshness 失败,DAG 应结束为 blocked-by-data-quality,而不是生成一篇语气保守却仍会被转发的“可能下降”报告。

审批层:人审核的是边界与结论,不是每一行代码

审批点负责人审核什么不做什么
Spec approvalmetric/data owner口径、粒度、时间窗、敏感级、预注册切片不手写 SQL
Access approvaldata steward数据域和输出是否最小必要不判断业务结论
Evidence reviewanalyst质量门、对照、图表、假设和限制不为数据缺失编故事
Publish approvalbusiness owner是否可行动、是否需要进一步实验不把草稿当最终事实

这不是人为拖慢自动化。明确的审核点会减少“没有人真正对这句结论负责”的返工。

Agent、工具与人的分工

角色输入输出权限边界
Intake Agent自然语言请求、glossary缺失字段问题、Spec 草案无数据仓库凭据
Spec ValidatorSpec、Skill schemapass / clarification / reject只读 Skills
DAG Compiler已批准 Spec、模板库可复跑 DAG、query manifest无 LLM、无动态 SQL
Execution SentinelDAG 状态、质量输出状态、失败摘要、artifact refs只读数据副本
Explanation Agentevidence packet、approved glossaryfact/hypothesis 分离的报告草稿不可调用查询工具
Data Analyst草稿、artifact审阅结论与修改可请求重新运行
Business Owner已审阅报告发布/实验/暂缓决定不改原始 artifact

Explanation Agent 的隔离很重要。它只看到经过质量门的 evidence packet,无法自行“再查一点”未授权数据,也不会把反复 exploratory query 混进最终结论。

数据与权限边界

execution_identity:
  warehouse_role: analytics_agent_readonly
  allowed_models: [mart_payment_funnel_daily, dim_channel]
  denied_models: [raw_events, pii_customer, employee_hr]
network: deny
result_limits:
  maximum_rows: 10000
  aggregation_required: true
  export_formats: [parquet, csv_aggregated]
retention:
  intermediate_days: 7
  approved_evidence_days: 180
write_actions:
  warehouse: deny
  dashboard: deny
  report_destination: draft_only

原始数据不应随 prompt 在模型供应商或日志系统之间流动。优先在数据边界内完成聚合,只将最小聚合结果、字段字典、质量状态和必要的统计摘要交给 Explanation Agent。访问控制、脱敏、审计和地域要求仍需由组织的数据平台落实。

可复制 SOP:一周上线一个“指标异常分析”试点

天数工作人工审核点交付物
1选一个已有指标和一个只读数据 martmetric owner 确认定义与敏感级metric Skill v1
2收集 10 个历史问题,标出歧义与常见追问分析师确认问题字段AnalysisSpec schema
3写 validator 与 3 个固定 query template数据工程确认模板无写入能力compiler prototype
4加 freshness、row count、denominator、null 等质量节点owner 设定失败即阻断条件quality gate
5用 3 个历史周的冻结快照 replay分析师比较人工与 DAG 产物artifact diff report
6让 Explanation Agent 只根据 evidence packet 写草稿业务 owner 标注过度推断review rubric
7以 shadow mode 发送草稿,不自动发布共同评估质量、耗时、成本go / revise / stop 决定

首周不接实时仪表盘、不做自动告警回复、不生成面向客户的结论。先确认“历史问题能不能稳定编译、质量失败会不会停止、草稿是否明显减少人工整理时间”。

我会如何验证:三臂比较,而不是只看 Agent 写得快不快

采用三条路径跑同一批冻结历史问题:

  1. 人工基线:现有分析师流程,记录从接单到可审阅报告的时间和返工次数。
  2. Agent 直连基线:允许模型生成探索性查询,但不允许发布,用于暴露不受控路径的错误模式。
  3. Spec-to-DAG 工作流:本文方案,固定 templates 与审批点。

对每个问题建立 answer key:正确 metric revision、时间窗、必需质量门、预期 artifact、可接受结论范围和禁止推断。评分不应只由 LLM judge 决定;数据 owner 需抽样核验口径与图表,自动检查则核验 DAG hash、query parameter、质量 gate 与输出 schema。

question -> approved spec -> expected DAG hash -> frozen snapshot
         -> quality verdict -> evidence manifest -> reviewed conclusion

若 Agent 直连路径更快,但其 time window 或 metric revision 错误更多,它不应被判定为更优。若 Spec-to-DAG 路径在复杂新问题上频繁要求澄清,这可能是正确行为,而不是失败。

质量、ROI 与成本指标

指标定义目标解释
spec acceptance rate一次审核通过的 Spec 比例太低说明 intake/Skill 不清楚
definition fidelity输出是否使用批准的 metric revision 和时间窗必须接近 100%
quality-stop precision数据质量失败时是否正确停止防止“坏数据也出报告”
replay equivalence同样输入是否得到同样 DAG 和 artifact hash测量可复跑性
unsupported-claim rate报告中没有 artifact 支撑的结论比例控制 AI 叙事漂移
analyst edit distance人工对草稿的实质修改量测量草稿价值,不等于文笔
time to reviewed insight从完整问题到已审阅结论的时长真实交付周期
cost per accepted report推理、仓库、执行与人工审核总成本避免只看 token 价格
clarification rateAgent 主动要求补充的比例过高要改 Skill,过低可能在瞎猜

ROI 的计算要把人工审核算进去。若 Agent 每周节省 4 小时提数,却让 owner 多花 6 小时纠错,它是负收益。相反,若它没有减少最终审核时间,却让每个结论可复跑、可追溯,也可能在高风险决策里有正价值;这需要由团队显式定价。

报告模板:强制区分结果与解释

Explanation Agent 的输出使用固定结构,避免把相关性写成原因:

## 已验证结果
- 指标、时间窗、数据新鲜度、对照期。
- 已通过/未通过的质量检查。

## 观察到的切片
- 仅列出预注册或明确标注为探索性的维度。

## 待验证假设
- 每个假设对应下一步数据、实验或 owner。

## 不支持的推断
- 当前数据不能说明因果、个体行为或长期趋势。

## Artifact
- AnalysisSpec revision、DAG hash、query manifest、chart refs。

“不支持的推断”不是客套话。它让读者看见边界,也让下一轮工作从可验证假设开始,而不是从上周的叙事继续滚雪球。

失败模式与回滚方案

失败模式早期信号处理与回滚
Skill 过期定义 revision 不匹配、owner 频繁修正冻结自动运行,更新 Skill 后 replay 历史样本
模糊请求被擅自补全clarification rate 异常低、口径争议上升强制 validator 进入 needs-clarification
模板覆盖不了新问题编译失败或大量人工改 DAG保持人工路径,新增模板必须评审
数据质量门过松后续发现回填改变结论提高 freshness/completeness 阈值,标记受影响报告
Explanation 过度推断unsupported-claim rate 上升缩小输入到 evidence packet,要求引用 artifact id
成本失控重试、扫描维度、查询量异常限制 max runtime/credits/scan bytes,终止运行
敏感数据进入报告row-level 输出或标识符出现立即撤回草稿,轮换访问、检查日志和 policy

回滚要有两个开关:publish_enabled=false 立即停止草稿进入目标频道;compiler_revision 回退到上一个已验证版本。已有 artifact 不应静默删除,而应标为 superseded 并指向替代 run,保留审计链。

工程判断

这条路径适合指标定义较稳定、重复出现、可以使用冻结快照或只读副本的分析工作,例如运营周报、漏斗诊断、库存/履约监控、产品实验复盘、工程质量趋势。它不适合把从未定义过的问题直接自动化,也不适合让 Agent 对高风险人群、信贷、医疗、雇佣等领域做无人审核的决策。

论文中的科学计算 DAG 与企业数据分析并不相同,但两者共享一个有用原则:把 LLM 的不确定性收在语义翻译和解释草稿中;把数据访问、执行、质量和副作用交给验证器、模板和审批链。SciAgentArena 与 AgentDS 的结果进一步说明,清楚的任务结构和人机协作不是过渡方案,而是当前可靠性的前提。

局限分析

第一,确定性 DAG 能保证相同输入产生相同计算,不保证业务问题本身问得对,也不保证数据生成过程没有偏差。它是可复现性控制,不是洞见真实性证明。

第二,固定 templates 会限制探索性分析。对于真正新颖的调查,强行编译可能制造假精确;此时应转入有明确预算与人工指导的 exploration mode,并禁止将其结果直接当作已验证周报。

第三,AgentDS 和 SciAgentArena 都是评测环境,不能替代企业自己的数据质量、隐私、安全和 ROI 测量。文中论文结果均为作者报告,未被当成对该方案的性能承诺。

第四,Skills 是新的治理对象。写错的 vocabulary mapping 或指标约束会系统性传播错误,因此需要 owner、版本化、回放测试和变更审计,不能把 Markdown 当成“无需维护的提示词”。

自审

  • 事实可靠性: 科学工作流论文的架构和数字均明确归因于作者实验;SciAgentArena 与 AgentDS 的结论按其评测范围表述;GitHub 文档仅作为权限/安全输出的工程参照。
  • 来源完整性: 使用原始论文和官方文档,没有依赖无可复核的案例营销。
  • AI Native 实践要求: 包含场景、原流程、目标工作流、分工、数据权限、SOP、质量/ROI、成本、失败与回滚、人工审核点。
  • 工程价值: 提供 AnalysisSpec、Skill、DAG、权限策略、三臂验证、指标和报告模板。
  • 不夸大: 没有声称 AI 能自主发现可靠业务洞见;明确保留 owner 审核与澄清路径。
  • 站内差异: 本站已有研究证据与论文复现工作流;本文针对企业数据分析的语义到 DAG 编译、只读执行和结论发布治理。