iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
Claude AI

用 AI Agent 重構一套無框架的 legacy PHP 系統系列 第 23

Day 23:把踩坑經驗回饋給 AI 工具本身——一個好的 bug report 長什麼樣

  • 分享至 

  • xImage
  •  

前言:這個問題該寫進 skill,還是該回報給工具本身?

「AI 又做了一件很奇怪的事,我要不要把這條規則寫進 CLAUDE.md,以後就不會再發生了?」

這個反射動作很自然——這個系列從 Day 16 開始,一直在講怎麼把踩坑經驗收斂成規則、寫進記憶、提煉成 skill。但這裡有一個容易被忽略的分岔:有些問題是「這個專案的規則沒講清楚」,有些問題是「AI coding agent 這個工具本身的行為有毛病」。前者該寫進專案的規則系統,後者寫進去也沒用——因為下一個專案、下一個 agent 版本,同樣的問題還是會發生,因為根本原因不在專案裡,而在工具本身。今天是第三部(AI Agent 的長期記憶與團隊協作)的最後一篇,來講怎麼分辨這兩者,以及怎麼把後者回報得有用。

今日目標

  • 分辨「該寫進專案規則」跟「該回報給工具本身」這兩類問題的差異
  • 理解為什麼模糊的抱怨對工具改善幾乎沒有幫助
  • 學會一份結構化 bug report 該包含的四個要素
  • 回顧第三部整體:AI 的長期記憶與團隊協作在講什麼

怎麼判斷這個問題屬於哪一類

判斷標準其實不複雜:如果這個問題只在「這個專案的規矩」被違反時才會發生,換一個沒有這條規矩的專案就不成問題,那它屬於專案規則,該寫進 CLAUDE.md 或 skill。如果這個問題不管在哪個專案、換誰跟 agent 互動都會發生,那它是工具本身的行為問題,寫進專案規則治標不治本。

舉例來說,「這個專案的資料庫存取一律要經過 Repository」是專案規則——別的專案可能根本沒有 Repository 這一層,這條規則對它們毫無意義。但如果 AI agent 有一種傾向,是「查證一件事時只確認了最容易查到的那個角落,就用很有自信的語氣回報『已確認』」——這種傾向不是任何一個專案的規則能解決的,它是 agent 本身推理習慣的問題,換到任何專案都可能重演。前面 22 天講的大部分內容,其實都是在幫這第二類問題「打補丁」:用流程、用檢查清單、用獨立 review,去彌補工具本身還沒解決的傾向。打補丁不是壞事,但打補丁跟回報問題,是兩件該同時做的事,不是二選一。

為什麼模糊的抱怨沒有用

「AI 有時候會亂改東西」「AI 太自信了」——這種抱怨完全可以理解,但對工具改善幾乎沒有幫助,因為它沒有給出任何可以被驗證、可以被重現的具體資訊。工具開發者拿到這種回報,沒有辦法判斷是哪一類情境觸發的、觸發頻率有多高、跟哪個版本有關。

一份有用的 bug report,需要包含四個要素:

  • 觀察到的行為 vs 預期行為:具體發生了什麼,跟你原本期待發生什麼,兩者要分開講清楚,不要混在一起變成一句評價
  • 最小重現步驟:能不能用最少的步驟重現這個行為,如果不能穩定重現,至少講清楚觸發時的具體情境
  • 證據:時間戳、涉及的檔案路徑、工具版本,任何能讓對方對照到具體發生時間點的資訊
  • (如果有)你懷疑的根因:只是懷疑,不是斷言——這一項是加分項,不是必要項,避免你自己的猜測誤導了對方的排查方向

用一組對照來看這個差異:

❌ 模糊的抱怨:
「AI 常常太快下結論,查一半就說已經確認完了,這樣不太好。」
→ 對方不知道是哪一類任務、什麼情境下發生、
  發生頻率如何、是不是每次都這樣

✅ 結構化的 bug report:
「觀察到的行為:agent 在查證『這批項目是否還有真實資料』時,
   只查詢了預設範圍就回報『已確認都沒有』。
 預期行為:查詢範圍如果只涵蓋預設情境,
   應該在回報時明確標注查詢邊界,而不是講成確定性結論。
 重現步驟:給定一個查詢邏輯涉及跨表關聯、且預設篩選條件會排除掉部分資料的情境,
   重現率高。
 證據:具體發生的對話紀錄、涉及的查詢邏輯片段。
 懷疑根因:agent 傾向把『目前查詢範圍內沒找到』
   跟『這件事不存在』兩者的語氣混在一起表達,沒有區分查詢邊界。」
→ 對方可以判斷這是不是一類已知模式、
  能不能在類似情境下重現,甚至可能修正這種語氣混淆的傾向

一份好的 bug report 本身,就是這個系列反覆講的那個原則的實踐:不要只給結論,要給出「觀察到什麼」跟「查證範圍是什麼」,讓對方能自己判斷可信度,而不是要求對方直接相信你的判斷。

回顧第三部:AI 的長期記憶與團隊協作

第三部從 Day 16 走到今天,講的是一整套「怎麼讓 AI 記住這個專案的規矩、並且知道什麼時候該用哪條規矩」的機制:CLAUDE.md 跟 skill 怎麼分工、skill 怎麼從一次性經驗提煉出來、記憶系統的四種類型、feedback 記憶怎麼記住「為什麼」而不只是「使用者不喜歡什麼」、記憶會過期怎麼辦、什麼情境該委派給獨立 agent、以及怎麼設計 code review 流程避免 AI 審查自己的盲點。今天這篇算是收尾:當你發現問題根本不在任何規則能解決的範圍內,記得把它區分出來,回報給工具本身,而不是徒勞地想用專案規則去治一個工具層級的病。

今日思考題

回想你上一次抱怨「AI 又做了什麼奇怪的事」的經驗:那次抱怨有沒有具體到「觀察到的行為 vs 預期行為」「重現步驟」這種程度?如果拿去回報給工具開發者,對方看得懂你在講什麼嗎?

今日重點回顧

  • 判斷問題屬於「專案規則沒講清楚」還是「工具本身的行為問題」:換個專案還會不會發生
  • 模糊的抱怨對工具改善沒有幫助,因為缺少可驗證、可重現的具體資訊
  • 好的 bug report 四要素:觀察到的行為 vs 預期行為、最小重現步驟、證據、(選填)懷疑根因
  • 好的 bug report 本身就是系列主題句的實踐:講清楚查證範圍,讓對方自己判斷可信度
  • 第三部回顧:從 CLAUDE.md/skill 分工到記憶系統、多 agent 協作、code review 流程,整條線都在講怎麼讓 AI 記住規矩、知道什麼時候該用

明日預告

第三部到此結束,明天正式進入第四部:實戰案例與總結。第一個案例是一次「以為是非同步問題,其實是重複鍵設計錯誤」的除錯過程——表面症狀很像一類常見問題,追查後發現完全是另一回事。


上一篇
Day 22:Code Review 也交給 AI——怎麼設計審查流程避免誤判
系列文
用 AI Agent 重構一套無框架的 legacy PHP 系統23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言