promptgarten 🌱
🌍 DE
指南●●○5 分钟 · +40 XP

用 AI agent 调试:系统化排查,而不是瞎猜

agent 调试的最佳方式是:有可复现的错误、真实的日志,先提出假设再动手修——而不是直接说“把这个 bug 修了”。

最常见的错误

很多人只丢给 agent 一句“把这个 bug 修了”——没有错误信息,没有上下文。于是 agent 只能瞎猜。系统化的调试方式完全不同。

第一步:让错误可复现

把触发错误的命令交给 agent,让它自己把错误跑出来。Claude Code 文档正是这样建议的:告诉 agent 怎么复现问题、怎么拿到 stack trace。一个 agent 能自己触发的错误,也是它在修完之后能自己验证的错误。

第二步:喂给它日志和 stack trace

把完整的错误信息贴进去,而不是用自己的话描述它。也可以用管道:cat error.log | claude -p "解释一下根本原因"。同时说明这个错误是每次都出现,还是偶尔才出现。

第三步:先假设,再修复

先让 agent 列出可能的原因,按可能性排序——然后有针对性地验证其中一个。关键是:要解决根本原因,而不是症状。官方文档把这条写成了一条 prompt 规则:“address the root cause, don't suppress the error”。

诊断工具

如果是 Claude Code 本身出了问题,可以用 /doctor:它会自动检查安装情况、设置、扩展和上下文使用情况。如果 claude 根本启动不了,可以直接在 shell 里运行 claude doctor

示例

prompt:“npm test 失败了。这是完整的 stack trace:[粘贴在这里]。先复现这个错误,说出最可能的原因,然后在修复之前先写一个会失败的测试。”

🛠️ 练习——自己动手试试

在一个练习项目里故意埋一个小 bug(比如变量名里的一个拼写错误),然后让 agent 系统化地把它找出来。

  1. 触发这个错误,把完整的错误信息和 stack trace 复制下来。
  2. 把错误信息和复现命令都给 agent——先要求它给出一个假设,还不要修复。
  3. 在你看过这个假设之后,再让它动手修复,并让 agent 用同一个命令验证修复是否成功。

自查清单

  • agent 在改动任何东西之前,有没有说对根本原因?
  • 它有没有用复现命令来证明修复有效(展示了输出),而不是只说一句“搞定了”?
  • 如果你只写了一句“这里有个 bug”,会缺少什么?

小测验

当需要 agent 修复一个 bug 时,最合理的第一步是什么?

来源

相关主题

Agent 卡住了?这样解套 ●●○模式:喂上下文,而不是含糊地问 ●○○斜杠命令、Hooks 等:如何操控 Claude Code ●●○模式:先计划,再写代码 ●●○