CASE 04 / 编程

先定位
问题边界

报错一来就贴整仓代码,AI 只能跟着猜。先确认谁会出错、在哪一步出错、什么条件下不出错,修复范围会小很多。

  1. 场景说明 01
  2. 原始材料 02
  3. 失败提示词 03
  4. 修改理由 04
  5. 最终提示词 05
  6. 输出节选 06
  7. 人工检查 07

01 / 场景说明

导出失败,但不一定是导出代码坏了

内部报表页突然有人反馈“CSV 下载不了”。页面没报错,接口也返回了 200。你手上没有完整开发环境,不想把一大段前后端代码直接扔给 AI,让它列二十种可能。

现在更需要的是一轮小实验:换账号、换数据范围、直接打开下载地址。每次只改一个条件,先把问题卡在哪一层说清楚。

02 / 原始材料

目前知道的现象

  • 生产环境的“销售报表”页,运营账号点击“导出 CSV”后没有文件下载。
  • 页面会显示“文件已生成”,控制台没有报错。
  • 网络面板里 POST /api/export 返回 200,并带回一个下载地址。
  • 同一位同事换 Chrome 和 Edge 都失败,无痕窗口也一样。
  • 管理员账号导出同一份“本月华东”报表可以成功。
  • 运营账号导出数据更少的“上周华东”仍然失败。
  • 还没试过直接打开下载地址,也没对比两个账号拿到的响应。
  • 目标:先确定问题在哪一层,再决定要看哪段代码。

03 / 失败提示词

一上来问“怎么修”,只会收获猜测

失败版本

我们的 CSV 导出功能坏了,接口返回 200 但文件没下载,应该怎么修?

信息还不够时,AI 往往会从浏览器拦截、跨域、文件流、响应头一路猜到前端事件。建议听起来都像那么回事,但你不知道先查哪一个,也不知道查完能排除什么。

04 / 修改理由

先问“问题只发生在哪里”

01

把观察和判断分开

“接口 200”是观察,“后端没问题”是判断。200 只说明请求被处理,不代表下载地址可用。

02

优先利用成功对照

管理员能成功,是现成的对照组。先比较账号相关差异,比盲查整个导出链路省事。

03

每次只改变一个条件

同时换浏览器、账号和数据范围,即使成功了,也不知道究竟是哪一项起作用。

04

让每个实验都能排除假设

不是堆一张排查清单,而是写清“看到 A 说明什么,看到 B 下一步查什么”。

05 / 最终提示词

让 AI 当排查搭档,不当猜谜选手

可以直接复制

你是一名协助排障的资深工程师。先不要给修复代码,也不要假设“接口返回 200 就代表后端正常”。请根据我提供的现象,帮我定位问题边界。 请按下面格式回答: 1. “已确认”:只写现象直接支持的事实; 2. “仍未知”:列出会改变排查方向的关键信息; 3. “当前假设”:最多 3 个,按可能性和验证成本排序,并注明各自依据; 4. “下一轮实验”:最多 5 步,每步只改变一个条件,写清操作、预期观察,以及不同结果分别能排除什么; 5. “需要查看的最小材料”:实验后如果还不能定位,再告诉我只需提供哪一段响应、日志或代码。 要求: - 优先使用已有的成功案例做对照; - 不要泛泛列出所有可能原因; - 不要让我一次执行多项改动; - 涉及令牌、Cookie、下载地址时提醒我先脱敏; - 如果信息不足,明确说不足,不编造系统实现。 目前观察: [粘贴环境、操作步骤、成功与失败对照、接口响应和已做实验]

06 / 真实输出节选

范围先缩到账号与下载授权之间

已确认

故障与浏览器类型、无痕模式和报表数据量的相关性较低;同一报表存在管理员成功、运营账号失败的稳定对照。

仍未知

两个账号拿到的下载地址是否同类;运营账号直接访问该地址时的状态码;下载请求是否携带身份信息。

实验 01

复制运营账号响应中的下载地址,在同一登录窗口直接打开。若返回 403,边界落在文件访问授权;若能下载,则优先检查页面触发下载的前端逻辑。

实验 02

分别导出同一报表,只对比两份已脱敏响应的字段名、地址形式和有效期。若运营账号缺少签名参数,继续查生成下载凭证的权限分支。

最小材料

两类账号的脱敏导出响应、直接访问下载地址的状态码与响应头;暂时不需要整个导出模块代码。

07 / 人工检查结果

403 找到了边界,还没找到根因

运营账号直接打开下载地址确实返回 403,管理员返回 200。人工检查后,把结论停在“文件访问授权链路”这一层,没有直接照抄 AI 提到的“缺少签名参数”。参数到底是没生成、过期,还是文件服务拒绝该角色,还要结合日志确认。

勾选进度会保存在这台设备上。