当 AI 排障助手说“这个问题 5 月修过”

周一 07:02,一次数据对账检查失败:fact_supplier_commit 在 fiscal_week=FY27W06 下行数为 0。加载任务显示 SUCCESS,并称写入了 60 行;Staging 层也有全部 60 行。数据看似已经入库,但目标周里没有记录。

一次 07:02 的异常:同一问题,两种排障结果

周一 07:02,一次数据对账检查失败:fact_supplier_commit 在 fiscal_week=FY27W06 下行数为 0。加载任务显示 SUCCESS,并称写入了 60 行;Staging 层也有全部 60 行。数据看似已经入库,但目标周里没有记录。

开发者将同一起事故交给同一个模型两次,提示词、数据仓库和 SQL 工具都相同。第一次运行发现数据落到了下一周 FY27W07,建议修复周查找逻辑。第二次运行则指出,加载器使用 week_start > today 规则,在新周开始的那个周一会选择下一周;它还提到同样的 bug 曾在 5 月导致 supplier_forecast_merge 出现故障,事故编号为 INC-2026-0505,当时从 SFTP 重新加载 staging 文件没有作用,修复后需要删除 FY27W07 的行。

两次运行都无法直接看到加载器代码。差异在于第二次接入了记忆系统,因此能从历史事故中识别问题,并用 4 次查询完成排查,而不是 6 次。这个 Agent 名为 PipelineMD,构建于 Vectorize 的开源 Agent 记忆系统 Hindsight 之上。

PipelineMD:把复盘、误判和“无效操作”写进记忆

PipelineMD 是面向数据管道的值班分诊 Agent。用户粘贴告警、日志摘录或失败对账结果后,它会从 Hindsight 记忆库中召回相似事故,包括 postmortem 文档和团队过去对分诊结论的判断;再用只读 SQL 在数据仓库中验证假设,并读取失败管道的加载 SQL。

它的回答包含根因判断、修复建议、匹配到的历史事故,以及“不要尝试”的清单。工程师可以将诊断标记为 Correct 或 Wrong,这个结论会被保留到下一次。项目技术栈保持轻量:Groq 运行 openai/gpt-oss-120b,Hindsight Cloud 负责记忆,SQLite 作为演示数据仓库,前端使用 Streamlit 和 CLI。

记忆库收录了 24 份 postmortem,覆盖虚构物流公司的 5 条数据管道,故障类型包括映射表 join fan-out、财务周边界规则、NULL 与 0 不一致、主键冲突等。

作者的设计重点不是只保存正确答案,而是保存完整处理过程。每份 postmortem 以自然语言文本写入,而不是 JSON,因为 Hindsight 从文本中提取事实比从 JSON 更容易。文本会记录事故编号、症状、错误摘录、根因、修复方式、解决人和耗时,并明确写出第一次响应是否有效。像“Reran the load. This did NOT work.”这样的记录,会转化为后续建议中的跳过项。

每条记忆还保留真实事故时间,将事故编号作为 document_id,并加入管道和故障类别标签。retain_mission 要求保留表名、错误码、工厂 ID 和财务周键原值。例如 dim_plant_region、FY27W06 是匹配事故所需的确切字符串,改写成“区域映射表”会难以命中。

召回设计:跨管道匹配,也要还原完整事故

在召回策略上,作者没有按失败管道过滤。原因是最佳匹配可能来自另一条管道,但共享同一张表或同一类规则。素材中,一次 EU-W shipments overcount 匹配到 INC-2026-0412:那是 4 月影响 inventory pipeline 的 dim_plant_region fan-out 问题,涉及同样两个工厂 3104 和 5862,也出现每个工厂两行的问题。如果只按当前管道过滤,这条线索可能被隐藏。

另一个经验是,记忆召回不能只返回零散事实。早期版本中,Hindsight 会将一份 postmortem 拆成多条事实,Agent 拿到 84 条平铺结果,其中混有财务周边界和主键冲突信息,最终错误锁定了一个与同一管道相关的 parallel-load 事实,给出看似确定但错误的结论。

修正方法是使用 include_chunks=True 和 document_id。前者让每条事实关联到原始保留文本,后者标明来源事故。Agent 可以将事实重新归组为完整事故,并向模型展示前 4 个最相关 postmortem。

这件事对 AI 编程工具的意义在于,Agent 的上下文正在从当前代码和报错,扩展到团队工程历史。数据仓库能说明当前数据错在哪里,记忆系统则补充错误曾经如何发生、哪些修复有效、哪些操作浪费时间。当排障助手能够说出“这个问题 5 月修过”,它提供的就不只是答案,而是一条减少重复排查的路径。

原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/dang-ai-pai-zhang-zhu-shou-shuo-zhe-ge-wen-ti-5-yue-xiu-guo

Like (0)
点点的头像点点
Previous 14小时前
Next 12小时前

相关推荐