verify-data:一个端到端的数据验数 Agent Skill

简介: 本文介绍了一个面向数据开发团队的端到端数据验数 Agent Skill——verify-data。该技能通过自然语言交互,自动完成从表结构获取、基准表发现、代码逻辑分析、验数 SQL 生成、执行到报告发布的全流程,将传统手工验数从"手写多条 SQL + 人工比对"升级为"一句话触发 + 评审级证据输出"。文章从背景痛点、核心架构与能力、实战场景、设计原则、踩坑经验、当前优势与挑战等方面系统展开,并在最后给出未来演进方向的思考,希望为同样在做数据质量保障和 Agent 工具落地的开发者提供参考。

前置说明

什么是 Agent Skill?

Agent Skill 是一种给 AI Agent 定义的可复用能力包——你可以把它理解为"Agent 的 SOP"。一个 Skill 定义了 Agent 在特定场景下应该做什么、怎么做、有哪些约束和红线。当用户用自然语言触发后,Agent 会按照 Skill 定义的流程自动执行,而不是靠模型临时发挥。

本文介绍的 verify-data 就是这样一个 Skill:它把数据验数的全部流程——从信息收集、SQL 生成、执行到报告产出——编码成了一套可复用、可迭代的 Agent 能力。

技术栈与适用范围

本方案基于以下技术栈实现,读者可以参考其中的设计思路将类似方案适配到自己的环境:

  • 计算引擎:MaxCompute(ODPS),云端大数据计算服务
  • 数据开发平台:DataWorks,提供表结构查询、节点代码获取、数据血缘追溯、SQL 执行等 API 能力
  • 协作平台:钉钉文档(报告发布载体,可替换为其他文档协作平台)
  • Agent 运行时:支持 Skill 定义和自然语言交互的 Agent 框架

核心设计思路(标准化模板、基准表发现策略、降级验数策略等)与具体平台无关,适用于任何有元数据 API 和 SQL 执行能力的大数据环境。

术语速查

术语 含义
ADS Application Data Store,应用数据层,面向业务场景的宽表/CUBE 表
DWS Data Warehouse Summary,汇总数据层,按主题域轻度聚合
DWD Data Warehouse Detail,明细数据层,清洗后的事实明细表
DIM Dimension,维度表,描述业务实体属性的参照表
CUBE 表 使用 GROUPING SETS / CUBE 语法做多维聚合的宽表
基准表 已验证可信的参照表,用来和研发表做数据对比
验数 数据验证,即通过 SQL 比对确认数据准确性的过程
血缘 Data Lineage,数据表之间的上下游依赖关系

一、背景与痛点

1.1 数据开发的验数困境

在业务数据团队,日常主要在多个项目空间中开发各层数据表(ADS 应用层、DWS 汇总层、DWD 明细层、DIM 维度层)。每张表上线前或迭代后,都需要回答业务方的一个核心问题:

"你这个表/指标的数据,到底准不准?"

这里所说的"验数",是指数据表上线前的人工 review 环节——评审人员需要看到完整的验证证据,确认数据逻辑正确、口径一致、无异常后才允许发布上线。这是数据质量的最后一道防线。

传统的手工验数方式存在几个典型痛点:

image.png

覆盖度不够:大多数开发者只跑了总量对比 SQL,漏掉了维度逐项对比、汇总行一致性、CUBE 完整性检查、关联膨胀检测等关键验证项。一张表如果有 5 个维度组合、7 个指标,只跑一条总量对比等于只检查了冰山一角。

基准表选错:很多时候凭感觉选一张"名字差不多"的表做基准,结果两张表口径完全不同(比如基准表按买家维度去重,研发表按访客维度去重),验了半天结论无效。

代码理解偏差:没看懂研发代码的 JOIN 膨胀逻辑,验数 SQL 复刻了同样的 bug。最典型的情况是研发表里有个 LEFT JOIN 会导致行数膨胀,但验数 SQL 也跟着做了同样的 JOIN,结果两边数据"一致",但都是错的。

结论无依据:业务方问"数据准不准",回答"我跑了几条 SQL,应该没问题"。这种主观判断缺乏评审级的证据链,业务方不信,评审也过不去。

沉淀成本高:每张表的验数 SQL 散落各处,换个分区、换个人又要从头来。验数过程没有形成可复用的资产。

1.2 Agent Skill 的机会

2025 年以来,Agent 工具在代码生成、运维自动化等场景已经有了大量落地。但在数据开发领域,尤其是验数这个高频、标准化程度高但痛点明确的场景,还缺乏系统化的 Agent 解决方案。

我们开始思考:能不能做一个 Agent Skill,让数据开发者只需要说一句话,就能自动完成从取数、跑 SQL、写报告到消息推送的全流程?

这就是 verify-data 的出发点。


二、verify-data 是什么

2.1 一句话定义

verify-data 是一个端到端的数据验数 Agent Skill。你只需要给它一张研发表名,它就能自动发现基准表、生成验数 SQL、在计算引擎上执行、分析结果、组装评审级报告并发布到协作文档。整个过程通过自然语言对话完成,不需要手写一行 SQL(除非你想主动干预)。

2.2 核心价值

image.png

经过多轮迭代和实战验证,verify-data 在以下方面建立了明显优势:

效率提升:从 2-4 小时到 30 分钟。传统手工验数的流程是:手写 5-6 条 SQL → 逐条执行 → 肉眼比对结果 → 写验数文档 → 发给评审,通常需要 2-4 小时。verify-data 将这一切压缩到 30 分钟以内:一句话触发后,Agent 自动完成取数、跑 SQL、写报告、推送通知,数据开发者只需要"看结论、做决策"。

覆盖度:从冰山一角到全面体检。10 类标准化 SQL 模板确保验证覆盖度,特别是 SQL 9(关联膨胀检测)和 SQL 10(日期维度关联校验),这两项是数据评审最高频退回原因,手工验数时极易忽略。

智能决策:基准表自动发现与降级策略。通过血缘 + 维度/指标精排的两阶段策略自动选基准表,支持多基准表联合覆盖;找不到基准表时有 4 种降级策略兜底,确保任何表都能给出有意义的结论。

证据链:从"我觉得没问题"到评审级报告。产出结构化的评审级报告:7 节标准格式、三档结论判定(PASS/WARNING/FAIL)、完整可执行的 SQL 附录、自动归档到协作文档,可直接交给评审人员。

资产沉淀:验数知识不再散落。每份报告自动归档,SQL 和报告成对保存在本地 verify-sql/ 目录下,19 条踩坑记录沉淀在 lessons-learned.md 中,Agent 不会重复犯已知错误。

风险管控:强制红线防止翻车。4 条不可逾越的红线从机制上防止 Agent 在边缘场景犯错,这些不是"建议"而是"强制",到了关键节点如果不满足条件就不会继续。

2.3 整体架构

下图展示了 verify-data 的整体技术架构,包括用户交互层、核心引擎层、外部依赖和输出产物:

image.png

2.4 7-9 步工作流

verify-data 的核心是一个条件触发流程,主流程约 7-9 步,但加上条件触发的子步骤后实际可达 17 步:

Step 1   收集信息 → [Step 1.5 基准表自动发现]
Step 2   获取表结构 → [Step 2.5 分区元数据预检]
Step 3   获取研发表代码逻辑
  → [Step 3.5 Code Diff 结构化分析](S2 强制触发)
  → [Step 3.6 基准表适用性预检](用户指定基准表时触发)
  → [Step 3.7 维表 CUBE 检测](有 JOIN 维表时自动触发)
Step 4   分析维度/指标映射
  → [Step 4.5 维度组合匹配](基准表确定后触发)
  → Step 4.8 基准表与研发表主要逻辑对照(有基准表时强制)
Step 5   生成验数 SQL(10 类模板按需组合)
  → [Step 5.5 降级验数策略](无基准表/部分覆盖时触发)
Step 6   执行跑数(三批次执行策略)
Step 7   组装本地报告
Step 8   发布协作文档
Step 9   [上游追溯根因分析](结论 FAIL 时触发)

[] 的条件步骤不是每次都会执行,而是由对应的触发条件自动决定是否激活。其中 Step 3.6、3.7、4.8 是容易被忽略但非常重要的强制/自动触发步骤。

2.5 5 种验数场景

Agent 会根据用户输入自动识别验数场景:

image.png

场景 名称 触发条件
S1 新模型上线 单研发表,无基准表
S2 迭代验数 双表对比(DEV vs PROD)或含迭代关键词
S3 日常监控 "最近数据异常"类描述
S4 业务质疑 "xx 指标对不对"类问题
S5 口径迁移 "口径变了"类变更

其中 S2 迭代验数是最复杂的场景——Agent 会强制触发 Code Diff 分析,扫描 8 类风险信号(数据源变更、JOIN 关系变更、聚合方式变更、过滤条件变更等),并为每个高风险信号生成定量证实 SQL,不仅告诉你"差了多少",还能告诉你"为什么差"。


三、核心能力拆解

3.1 基准表自动发现

这是 verify-data 最核心的能力之一。当用户没有提供基准表名时,Agent 会通过两阶段策略自动发现:

image.png

第一阶段:血缘发现候选集

通过数据开发平台的血缘 API,追溯研发表的上游依赖,找出所有可能存在血缘关系的表,构建候选集。

第二阶段:指标/维度精排

对候选集中的每张表计算综合评分:

score = 血缘亲和度 × 0.5 + 维度重合度 × 0.3 + 指标重合度 × 0.2

Top-1 得分 ≥ 0.7 时,直接选为基准表;Top-1 < 0.7 但多张表联合可覆盖全部指标时,触发分路指标对比策略(多基准表联合覆盖);Top-5 最高得分 < 30% 时,进入降级验数策略。

这个设计解决了一个实际问题:一张新的 CUBE 表可能同时依赖用户行为表、转化事件表、交易明细表三张 DWD 表,没有任何一张单独的基准表能覆盖所有指标,但三张表联合就能完整验证。

3.2 10 类验数 SQL 模板

verify-data 不会凭感觉手写 SQL,而是基于 10 类标准化模板按需组合:

编号 模板名称 校验目标 必选
1 总量对比 基准表重算 vs 研发表汇总
2 数据质量检测 空值率、零值率、维度合法性
3 按维度逐项对比 有基准表且维度可匹配时 条件
4 维表分区校验 有维表 JOIN 时 条件
5 CUBE 完整性检查 有 CUBE/GROUPING SETS 时 条件
6 汇总行一致性 有 'all' 汇总行时 条件
7 逻辑关系校验 指标间有业务逻辑关系时 条件
8 历史趋势对比 有历史数据时 条件
9 关联膨胀检测 有 JOIN 操作时
10 日期维度关联校验 有日期维度时

其中 SQL 9(关联膨胀检测)和 SQL 10(日期维度关联校验)是我们从实际评审退回经验中总结出来的最高频退回原因。很多表总量对比没问题,但 JOIN 膨胀导致某些维度组合行数翻倍,或者日期维度关联时区错位,这些问题只有专项检测才能发现。

3.3 Code Diff 驱动的风险扫描

在 S2 迭代验数场景中,Agent 会分别获取 DEV 和 PROD 的运行态代码,执行结构化 Diff 分析,扫描以下 8 类风险信号:

image.png

每命中一个风险信号,Agent 就会生成对应的定量证实 SQL,用数据来证明或证伪该风险的实际影响。这是"知道差了多少"到"知道为什么差"的关键跨越。

3.4 降级验数策略

无基准表或者部分覆盖维度和指标时,verify-data 不会放弃验证,而是自动选择 4 种降级策略之一:

image.png

降级策略的特殊耦合判定

强制卡点:除了执行 D 类(一致性检查)SQL,另外必须对原代码进行风险审查,并针对 Top-3 风险点生成定量证实 V 类 SQL(逻辑性校验)。审查时需逐项扫描以下 8 类风险信号,每类都必须在代码中显式扫一遍:

风险类型 典型信号
字符串比较陷阱 status > '1' 等按字符串比较数字(字典序:'10' > '1' 为 True)
NULL/默认值假设 CASE WHEN x IS NOT NULLCOALESCE(x, '未知') 跨维度复用
日期窗口定义 BETWEEN ${bizdate}-6 AND ${bizdate} 含/不含锚点日、T-0 vs T-1 错位(bizdate 为业务日期分区参数,类似 Hive 中的 ${hiveconf:dt}
UNION ALL 各路命中量 某一路长期命中 0 条(冗余)或长期 100%(其他路形同虚设)
JOIN 膨胀 LEFT JOIN 维表关联键非维表主键、多路 JOIN 累积膨胀
字段口径 vs 字段名 amount 在明细层和汇总层可能对应不同的计算口径,名字相似但语义不同
EXPLODE/Cube 可加性 手动 LATERAL VIEW EXPLODE 单列 cube、同一默认值跨维度合并
浮点精度累加 DOUBLE 类型大量 SUM 后出现 1e-6 ~ 1e-11 级误差

这是因为如果 DWD 重算 SQL 直接复制了 ADS 代码逻辑,只能证明"执行一致",无法发现 ADS 本身的逻辑错误。这一部分使用的 AI 代码审查(Code Review)能力,是基于强规则加上历史验数的错误记录总结。

3.5 分区预检与执行策略

分区预检:在跑 SQL 之前,Agent 会通过元数据 API(秒级完成)确认目标分区是否存在、实例状态是否成功。避免白跑几十分钟的 SQL 后发现分区还没产出。

image.png

这个设计解决了大数据计算引擎执行的一个实际问题:含 SET 语句的 SQL 如果并行执行会互相覆盖会话状态,必须串行;而纯 SELECT 可以并行以节省时间。

3.6 三个容易被忽略但关键的强制/自动步骤

在 verify-data 的 17 步流程中,以下三个步骤常被忽略,但它们对验数质量至关重要:

Step 3.6 基准表适用性预检(用户指定基准表时强制触发)

当用户主动指定基准表时,Agent 不会直接信任,而是先计算维度相似性:similarity = 重合维度数 / max(研发表维度数, 基准表维度数)。若相似性 < 50% 且基准表多余维度无 CUBE 聚合,会主动建议降级策略,避免"选错基准表导致结论无效"。

Step 3.7 维表 CUBE 检测(代码中有 JOIN 维表时自动触发)

检测维表是否存在一对多关系(CUBE 聚合),这是关联膨胀的源头。如果维表有 CUBE,研发表指标会按维度拆分重复计算,不能直接跟汇总表对比总量。检测方法:对维表按关联键 GROUP BY,HAVING COUNT(1) > 1。

Step 4.8 基准表与研发表主要逻辑对照(有基准表时强制)

在生成验数 SQL 前,强制对比研发表和基准表在数据来源、JOIN 维表、CUBE 状态、过滤条件、聚合函数、指标口径上的差异,产出"可直接对比的指标"和"不可直接对比的指标"清单。这是防止"口径不同却强行对比"的最后一道防线。


四、实战场景案例

4.1 场景一:新 CUBE 表上线(S1)

背景:业务新增了一种活动类型,需要和原有类型合并到一张 CUBE 表里,按 type × label × flag 三维度做 GROUPING SETS 聚合。明天上线,今天必须验数。

触发方式

帮我验数 my_project.ads_activity_cube_1d,分区 20260419

注:项目空间.表名 是 MaxCompute 的命名格式,类似于 Hive 的 database.table。下同。

Agent 决策树

  1. 识别为 S1 场景(单表 + 无 DEV/PROD 关键词)
  2. 自动发现基准表:沿血缘追溯出 3 张候选 CUBE 表,评分分别为 0.56、0.56、0.59
  3. 单表得分都 < 0.7,但联合可覆盖全部 7 个指标 → 选择分路指标对比策略
  4. 维度匹配:研发表有新增维度值,基准表只有旧值 → 交集走基准对比,新增部分走降级
  5. 生成 9 条基准对比 SQL + 5 条降级 SQL
  6. 跑数 → 组装报告 → 推送通知

结论:PASS。基准表对比部分 7 指标 × 32 维度组合全部精确一致;降级部分 CUBE 层级自洽、DWD 上游比对 100% 一致。

4.2 场景二:DEV vs PROD 数据对不上(S2)

背景:开发者在 DEV 改了某张表的代码(加了新指标、改了某个 JOIN 条件),跑了一天发现 DEV 和 PROD 数据有差异。需要区分预期内差异和非预期差异。

触发方式

对比 my_project_dev.ads_campaign_1d 和 my_project.ads_campaign_1d

关键输出

  • 变更摘要:新增 2 个字段、修改 1 个 JOIN、修改 1 个过滤条件
  • 高风险信号 1 个(JOIN 类型变更可能导致膨胀)
  • V1-V6 定量证实 SQL,逐个验证每个变更的实际影响
  • 预期内差异清单(如新增字段必然导致行数变化)
  • 非预期差异清单(这是评审关注的重点)

4.3 场景三:全新口径,无基准表(S1.c)

背景:业务想看"某营销活动后 7 天的阅读/成交转化",这是一张全新分析口径的 CUBE 表,线上没有任何表能直接对。

Agent 行为

  1. 尝试自动发现基准表 → Top-5 评分均 < 0.3 → 触发降级
  2. 自动选择策略 [1](CUBE 表):CUBE 层级自洽性校验 + DWD 上游比对 + 数据质量校验
  3. 强制启动代码逻辑审查(降级前置环节):8 类风险信号扫描
  4. 针对膨胀维表 JOIN 生成 V1 定量证实 SQL

结论:PASS。CUBE 层级自洽性验证 3 个核心指标差异均 < 0.01%;DWD 重算与研发表 100% 一致。

4.4 场景四:维表验证(DIM)

背景:新建了一张维表 dim_xxx_tag(业务标签维表),维表没有传统意义的"指标",怎么验?

Agent 行为:自动识别为维表(从 dim_ 前缀和无指标列特征),走策略 [3] 静态逻辑校验:

  • 主键唯一性(主键字段不能重复)
  • 关键字段 NULL 率(标签字段不能为 NULL)
  • 业务规则一致性(如 actual_ratio = base_ratio * 0.9
  • 标签分布合理性
  • 数据完整性

结论:WARNING(有条件通过)。静态校验全过,但动态数据验证因源表权限不足受阻。建议申请权限后复验。


五、关键设计原则与红线

5.1 4 条关键红线

在 verify-data 的设计中,有 4 条不可逾越的红线:

  1. 禁止跳过 SQL 生成直接手写跑数:所有验数 SQL 必须从模板生成,确保覆盖度和可追溯性
  2. 禁止靠字段名猜映射:必须读运行态代码 + 查 schema,凭经验猜字段是最常见的验数错误来源
  3. 禁止降级策略 [1] 仅跑 D 类 SQL 就出报告:必须追加代码审查和 V 类定量证实,否则只能自证执行一致
  4. 必须对所有 JOIN 做膨胀率验证、对所有日期维度做日期关联校验:这是评审最高频退回原因

5.2 结论判定体系

结论判定的完整决策流程如下:

image.png

结论 条件 能否上线
PASS(通过) 所有 SQL 通过,无风险 可以
WARNING(有条件通过) 主要项通过,但有外部阻塞或非关键差异 消除条件后
FAIL(不通过) 关键 SQL 失败或差异无法解释 必须修复

降级策略的特殊耦合判定

D 类(数据一致性) V 类(逻辑合理性) 总体结论
全部 PASS 全部 PASS 或仅口径建议 PASS
全部 PASS 发现真 bug 但当前分区无损 WARNING(附修复建议)
全部 PASS 发现真 bug 且已实际影响数据 WARNING 或 FAIL
任一 FAIL FAIL

高频退回判定速查

检查项 PASS WARNING FAIL
关联膨胀率 = 1.00 1.00~1.01 > 1.01
日期关联 格式/时区对齐 + T-1 存在 格式可转换 格式不一致/T-1 缺失
差异(非 S2) < 1e-6 1e-6 ~ 0.1% > 0.1%
S2 差异 全部 [预期内] 非预期但 < 0.1% 可解释 非预期且 > 0.1%

六、踩坑经验

6.1 踩坑一:CUBE 汇总行 NULL 不是 Bug

GROUPING SETS 生成的汇总行中,某些维度的值为 NULL 或 'all',某些指标为 NULL 是正常行为。曾经有人误判为"数据缺失",反复排查后才发现是 GROUPING SETS 的标准行为。verify-data 在报告生成时会专门标注这一点,避免误判。

6.2 踩坑二:浮点精度不要较真

浮点类型金额字段在多次累加后会产生 ~10^-10 级的精度差异。verify-data 内置了浮点精度容忍度判定(差异 < 1e-6 视为实质为 0),避免在无关紧要的精度上浪费时间。

6.3 踩坑三:DWD 重算同构只能自证执行一致

如果降级策略中 DWD 重算 SQL 直接复制了 ADS 代码的 JOIN 和聚合逻辑,即使结果 100% 一致,也只能证明"我写的 SQL 和我写的 ADS 代码执行结果一致",无法证明"ADS 代码本身是对的"。

典型案例:DWD 重算与 ADS 汇总行四个指标完全一致(差异 < 1e-11),初判 PASS。但追问"代码本身有没有错?"后审代码发现两个真 bug:

  • 某退款流程的 refund_stage > '1' 在当前分区命中 0 条(该分区全部 refund_stage='1')——退款路径事实失效,但 DWD 重算同样跳过这些行,两侧照样"一致"
  • 某计数指标用 trade_id IS NOT NULL 作判据——当前 DWD 数据质量好所以无损,但一旦脏数据出现就会产生"幽灵金额"(统计值凭空多出来)

这就是为什么降级策略 [1] 强制要求代码审查 + 独立构造 V 类证实 SQL——V 类 SQL 必须从 DWD 源头独立构造。


七、架构与协同

7.1 模块化依赖设计

verify-data 不是独立工作的,它采用模块化架构,依赖以下能力模块的协同:

image.png

能力模块 提供的能力 必需
表结构与元数据服务 获取表 schema、节点代码、数据血缘、执行 SQL
文档协作服务 报告发布到协作文档(如企业文档平台、Wiki 等)
备选元数据接口 表结构获取的冗余方案 可选

这种设计的好处是:核心验数逻辑与具体的平台实现解耦。如果你的环境使用了不同的计算引擎和数据开发平台,只需要替换"表结构与元数据服务"模块的实现,核心验数流程无需改动。

7.2 14 个 References 文档

verify-data 的主文件是流程路由骨架,每步的执行细节都在 references/ 目录的 14 个文档中:

  • 场景识别规则、基准表自动发现策略、分区预检逻辑
  • 代码分析清单、Code Diff 分析规范、维度匹配决策树
  • 10 类 SQL 模板、4 种降级策略、执行策略与硬约束
  • 报告模板、文档发布规范、根因分析流程、踩坑记录

这种设计让 Agent 在执行时能够按需加载细节,保持主流程清晰的同时不丢失边缘场景的处理能力。

7.3 在数据链路中的位置

verify-data 是完整数据链路中的一环:

image.png


八、当前挑战

在实际推广中,verify-data 仍存在一些待解决的挑战:

执行效率与交互体验:完整 9 步流程通常耗时 15-30 分钟,且中间多个节点需要用户确认(基准表选择、降级策略、发布确认等),对高频使用的开发者来说交互成本偏高。

权限与环境依赖:验数常涉及多个项目空间(dev / prod / cdm 等),跨项目 SELECT 权限不齐全会导致流程中断;同时 verify-data 依赖完整的元数据 + SQL 执行 + 文档发布链路,任一环节故障都会阻塞全流程。

降级结论的信任成本:当走降级策略时,WARNING(有条件通过)的结论需要向评审人额外解释可信度,增加了沟通成本。

新用户上手门槛:首次配置涉及多个模块安装和参数配置,对不熟悉 Agent 生态的开发者有一定门槛。


九、总结

verify-data 从一个"能不能让 Agent 帮我验数"的想法,发展到现在覆盖 5 类场景、10 类 SQL 模板、14 个参考文档、19 条踩坑记录的生产级工具,核心经验可以归纳为以下几点:

  1. 从最高频场景开始:不要试图一开始就覆盖所有场景。我们先做了 S1 新表上线和 S2 迭代对比,这两个场景占了 80% 的验数需求。先让 80% 的需求跑通,再逐步补齐长尾。
  2. 标准化比智能化更重要:验数最关键的是覆盖度和可重复性,10 类标准化模板比"让 AI 自由发挥"可靠得多。AI 的能力放在理解代码逻辑、选择模板组合和解读结果上,而不是临时发挥写 SQL。
  3. 踩坑记录是核心资产lessons-learned.md 里记录的 19 条实战经验,每一条都是真实踩过的坑。没有这些,Agent 就会重复犯同样的错误。每次生产事故都是一次 Skill 升级的契机。
  4. 红线要硬:关键红线在流程层面做了约束,不是"建议"而是"强制"。没有红线的 Agent 工具很容易在边缘场景翻车——尤其是在降级场景和 Code Diff 场景,没有强制约束的 Agent 会倾向于走捷径。
  5. 用户体验和工程可靠性并重:优势再大,如果用户等 30 分钟还要反复确认,推广就会受阻。接下来的优化方向(异步执行、一键到底、权限预检)本质上都是在可靠性的基础上提升体验。

我们相信,数据验证这个场景天然适合 Agent 化——它高频、标准化程度高、涉及多系统协同、结果需要结构化沉淀。verify-data 的实践证明了这条路是可行的,也希望这些经验能给在做类似工具的开发者一些参考。


十、未来思考与展望

基于实践经验和团队反馈,我们对 verify-data 的下一阶段演进有以下几个方向的思考:

image.png

10.1 方向一:极致体验——从"等 30 分钟"到"无感验数"

当前验数流程的最大摩擦在于执行耗时和中间交互。我们的目标是让验数变成一件"无感"的事情:用户触发后即可离开,Agent 全程异步执行,完成后通过消息通知主动推送结论。

具体来说,计划引入异步执行 + 主动通知机制,让 SQL 提交后用户不再需要等待;同时提供"一键到底"的静默模式,对高频常规场景(如每日分区切换、回归验数)跳过所有确认环节,只在异常时打断。此外,通过历史缓存复用表结构和基准表选择结果,将同表复验的耗时大幅缩短。最终目标是让验数从"主动操作"退化为"被动通知"——用户只需要看结论,不需要参与过程。

10.2 方向二:平台融合——从"独立工具"到"研发流程必经环节"

verify-data 目前是一个独立的 Agent Skill,与数据研发流程是松耦合关系。但验数的最大价值不是"事后补做",而是"嵌入流程、自动拦截"。

我们正在探索与数据开发平台发布流水线的深度集成:表推到生产环境前自动触发验数,验数不通过则自动阻断发布。同时支持多表批量验数,适配大版本发布前的回归场景。在权限层面,计划在流程早期就完成全链路权限预检,并生成一键申请引导,避免"跑到一半才发现没权限"的问题。长远来看,verify-data 应该像单元测试之于代码一样,成为数据上线的标准质量门禁。

10.3 方向三:智能进化——从"执行验证"到"理解数据"

当前 verify-data 的核心能力是"按模板执行验证并输出结论",但在"理解为什么数据会这样"方面还有很大提升空间。

未来的智能进化方向包括:增强根因定位能力,从当前的"上游追溯"升级为"全链路根因定位",结合代码变更历史和数据血缘,做到一键定位到具体代码行;引入降级结论的可信度量化评分,基于验证覆盖维度和 V 类证实 SQL 通过率综合计算,让评审人员无需理解策略细节也能直观判断结论可靠程度;探索增量验数模式,对日常监控场景只验证变化数据而非全量重跑。最终愿景是让 verify-data 不仅能回答"数据准不准",还能回答"为什么不准"和"怎么修"。


附录:常用触发方式速查

1. 帮我验数 <表名>
2. 帮我验数 <表名>,分区 <YYYYMMDD>
3. 帮我验数 <表名>,基准表是 <基准表名>
4. 对比 <DEV 表> 和 <PROD 表>
5. 对比 <DEV 表> 和 <PROD 表>,DEV 改了 <变更描述>
6. 帮我验数 <表名>,这是新模型,应该没有基准表
7. 帮我验数 <维表名>,业务规则:<具体规则>
8. <表名> 已经修复了 <问题>,帮我重新验一下
9. 帮我生成 <表名> 的验数 SQL,不要执行
10. 帮我验数 <表名>,请展示基准表自动发现的评分明细

如果你对 verify-data 的设计思路感兴趣,或者在自己的环境中实践了类似的数据验数自动化方案,欢迎在评论区交流。


来源  |  阿里云开发者公众号

作者  |  晓莄

相关文章
|
15天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5728 29
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1165 2
|
7天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
927 1
|
17天前
|
人工智能 自然语言处理 供应链
|
7天前
|
人工智能 弹性计算 安全
阿里云618活动时间、活动入口、优惠活动详细解读
2026年阿里云618创新加速季已全面开启,作为年度力度最大的云产品促销活动,本次大促覆盖轻量应用服务器、ECS云服务器、GPU云服务器、数据库、AI算力、安全服务、CDN等全品类产品,推出5亿元算力补贴、新用户限时秒杀、普惠满减、企业专享、免费试用、云大使返佣等多重福利,个人开发者、中小企业、AI团队均可享受专属低价。本文将系统梳理2026年阿里云618活动的完整时间节点、官方参与入口、各类优惠细则、使用规则、热门产品推荐及实操代码,帮助用户精准参与、高效省钱,以最低成本完成上云部署。
704 3
|
23天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3826 15
|
8天前
|
运维
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
1421 0