主线课程/6

6 课:用 AI 联调接口与排查问题

让证据整理和排查路径收敛更快

联调日志排障2h

联调阶段最容易让人焦虑,因为问题往往既不像纯代码 bug,也不像纯配置错误。前端说“返回不对”,后端说“我这边能跑”,日志里有信息但不成体系,群里消息越来越多,排查路径却越来越散。AI 在这个阶段最有用的地方,不是替你宣布根因,而是帮助你把证据整理清楚、把假设空间压小。

真实研发场景

真正拖慢排查的,往往不是“问题太难”,而是“信息太散”

一个典型的联调问题可能同时包含这些碎片:

  • 一个失败请求的参数
  • 一个响应体或错误码
  • 几段零散日志
  • 一份并不完全同步的接口说明
  • 一段相关控制器代码
  • 一个“本地复现不了”的口头结论

这些碎片各自都不算少,但因为没有被放在同一张证据图里,排查就会很容易变成“谁声音大听谁的”。

本课要建立的是“证据包 -> 假设 -> 验证”的排障秩序

AI 在排障时最稳的作用,是先做事实整理,然后再根据事实列出可能原因与优先排查顺序。只要这个顺序被打乱,模型就会开始补脑,把某个偶然线索扩写成“看起来很像根因”的解释。

传统做法的痛点

排查发散通常来自四类割裂

割裂点常见表现后果
日志与请求割裂只有报错,没有对应请求上下文无法判断问题发生条件
契约与实现割裂接口说明和真实返回结构不一致前后端互相怀疑
配置与环境割裂本地、测试环境、CI 配置不同步“我本地没问题”失去意义
结论与证据割裂大家先说猜测,再补证据排查顺序被情绪带偏

排障效率低,很多时候不是因为团队没有能力,而是没有先建立统一的问题组织方式。

最常见的三个排查误区

  • 只把一段报错文本贴给 AI,不附上请求、响应和上下文
  • 让 AI 直接判断根因,而不是先做事实整理
  • 问题修好了,但复现路径和最终结论没有沉淀

AI 能提效到哪一步

AI 最适合做的排障辅助

  • 事实整理:把请求、响应、日志、代码片段按时间和层级整理
  • 差异对照:对比“期望返回”和“实际返回”之间的差别
  • 假设排序:根据现有证据给出优先排查项
  • 复现说明草稿:整理稳定复现步骤和修复前后差异

AI 不该替代的动作

动作为什么不能直接外包
宣布根因成立根因必须被真实验证,而不是被合理化
决定先改哪段代码需要结合业务影响和环境事实
判断问题是否完全解决需要再次联调、测试或复现

一个关键原则是:AI 可以帮你收敛排查路径,但不能代替证据完成证明。

推荐工作流

先准备一份证据包

一个最小可用的排障证据包通常应包含:

  • 出问题的请求样本
  • 实际响应或错误堆栈
  • 相关日志片段
  • 相关代码路径
  • 相关配置或环境信息
  • 期望行为描述

五步联调排障法

步骤AI 产出人工要做什么验证方式
1. 组证据包事实整理稿删除噪音,补缺关键证据是否还存在关键信息空洞
2. 分事实与推测两栏问题说明防止把猜测当结论是否能清楚区分已知和未知
3. 排优先级假设清单与排查顺序去掉不值得先查的项是否优先验证高概率 / 高影响项
4. 逐项验证复现步骤与核对点不跳步、不并行乱改每次验证是否能缩小范围
5. 沉淀结论最终根因与修复记录写清前提、证据和修复结果后续能否快速复用

一个适合排障阶段的输入模板

md
问题现象:
期望结果:
请求与响应:
关键日志:
相关代码路径:
相关配置或环境差异:
请输出:
1. 事实整理
2. 待验证假设
3. 建议排查顺序
4. 复现步骤草稿

与仓库代码和模板的映射

常见误用与风险

误用一:只把异常文案丢给 AI

没有请求上下文、日志和代码片段时,模型只能猜。

误用二:AI 说了一个根因,就直接开始改代码

排障最怕跳过验证,把“合理解释”误当成“已证实事实”。

误用三:没有记录复现路径

问题哪怕修好了,如果团队不能复现,就很难确认是否真的根除。

误用四:把契约问题误判成实现问题

很多联调争议并不是逻辑错,而是双方对契约理解不一致。

课后练习

建议直接在 ../课后练习/第6课/练习.md 中完成本课练习,并使用 ../课后练习/通用提交模板.md 保留 AI 输入、人工删改和验证结果。

如果你只做最小版交付,也至少保留四样东西:结构化输入、AI 产出摘要、人工判断记录、最终验证结果。

基础题

选一个接口异常或测试失败场景,整理一份最小证据包。

进阶题

让 AI 基于证据包输出“事实 / 推测 / 优先排查项”三栏说明,再人工修订。

挑战题

产出一份可以交给他人复现的问题记录,包含现象、证据、根因、修复和验证结果。