把报错日志交给 AI 排查:怎么贴、贴多少、怎么问才有用
让 AI 帮忙排查报错,效果好坏主要取决于你给的信息:完整的错误信息和堆栈、出错前后几十行日志、相关代码片段、环境版本,以及你已经试过什么。 再要求它先列出可能原因和验证方法,而不是直接给修改代码,排查会快很多,也不容易被错误的修复带偏。
应该提供什么
- 完整的错误信息和堆栈:第一行和最后几行都要,不要只截一半。
- 出错前后的日志:一般 30–100 行足够,从最后一条正常日志开始截。
- 相关代码:堆栈里指向的函数,以及它调用的关键部分。
- 环境信息:语言和框架版本、操作系统、是否在容器里、最近改过什么。
- 复现方式:每次都出现还是偶尔出现,什么操作触发。
- 已经试过的方法:避免 AI 重复建议。
先脱敏
日志里经常包含密钥、令牌、数据库连接串、用户邮箱和手机号。粘贴前替换掉:
- 密钥和令牌 →
<REDACTED_TOKEN> - 连接串里的密码 →
<REDACTED> - 用户数据 →
user_123这样的占位符
如果公司对外部 AI 工具有规定,先看规定;敏感项目使用公司批准的工具。
排查提示词
我在排查一个报错,请帮我分析,但先不要直接给修改后的代码。
环境:Python 3.11,FastAPI,部署在 Docker 中;昨天升级了数据库驱动。
现象:调用 /orders 接口时偶尔返回 500,大约每几十次出现一次。
已尝试:重启容器后短时间正常,之后再次出现。
错误与堆栈:<粘贴>
出错前后日志:<粘贴>
相关代码:<粘贴>
请输出:
1. 你对错误的理解(一两句话)
2. 可能原因列表,按可能性排序,每条说明依据来自日志的哪一行
3. 每个原因的验证方法(加什么日志、运行什么命令、看什么指标)
4. 还需要我提供哪些信息
拿到假设后怎么做
- 从可能性最高、验证成本最低的开始。
- 把验证结果贴回去:「按你说的加了日志,发现……」,让 AI 更新判断。
- 确认原因后,再让它给修复方案,并要求说明修改会不会影响其他地方。
- 先写一个能复现问题的测试,修完后测试通过,才算真正修好。
截日志的小技巧
- 用时间戳定位:先找到报错时间,再截取前后一两分钟。
- 偶发问题对比一段正常请求和一段失败请求的日志,差异往往就是线索。
- 日志太长时,先让 AI 帮你写一条过滤命令(比如按请求 ID 筛选),而不是全部粘贴。
常见坑
- 只贴最后一行错误,AI 只能猜。
- 一次贴进好几个不相关的错误,分析会混乱。一次处理一个。
- 直接复制 AI 的修复代码而不理解原因,问题可能只是被掩盖。
- 忘了说「最近改过什么」,而这往往是最大的线索。
相关阅读:AI 辅助调试指南、先写失败测试再修 Bug,也可以看看 AI 编程的安全注意事项。