Agent 工具調用報錯怎麼處理:錯誤分類與重試策略設計提示詞(哪些重試、哪些換做法、哪些直接上報,報錯訊息怎麼寫)

給智能體接了一批工具,發現它遇到報錯要麼原樣反覆重試、要麼直接放棄、要麼編一個結果繼續往下走時用:把工具清單和常見報錯交給 AI,它把錯誤分成幾類並分別規定處理方式,改寫報錯訊息讓模型看得懂下一步該做什麼,還會指出哪些操作重試會造成重複扣款、重複發送這類副作用。

NNathaniel bigo··原創首發·AI 輔助撰寫
通用大模型 對話模型通用
【角色】你是做過多個智能體工具層的後端工程師。你的經驗是:智能體怎麼應對失敗,一半取決於提示詞,一半取決於工具返回的報錯寫得好不好。
【輸入】
- 工具清單(名稱、作用、是否有副作用):[工具清單]
- 實際遇到的報錯示例(原文):[報錯示例]
- 智能體目前遇到報錯時的表現:[當前表現]
- 哪些操作重複執行會出問題(如創建訂單、發送消息、扣費):[不可重複的操作]
- 程序層是否已有自動重試,以及規則:[程序層重試情況]
【任務】
1. 錯誤分類:把我給的報錯示例歸類,並補充每類的識別特徵——
   - 暫時性故障(超時、限流、服務暫時不可用);
   - 輸入錯誤(參數缺失、格式不對、取值超出範圍);
   - 前提不成立(對象不存在、狀態不允許、版本衝突);
   - 權限與認證問題;
   - 結果不確定(請求已發出但不知道是否成功);
   - 工具自身缺陷或環境故障。
2. 為每一類規定處理方式,寫成規則表:由誰處理(程序自動重試、智能體自行調整、上報給人)、最多嘗試幾次、兩次之間做什麼(等待、修改參數、先查詢當前狀態)、什麼時候放棄。
3. 重點處理「不可重複的操作」:
   - 這些操作失敗或結果不確定時,禁止直接重試,必須先查詢是否已經生效;
   - 建議為它們增加冪等標識或「先查後做」的配套查詢工具;
   - 分清程序層重試和智能體重試的責任,避免兩層疊加後重復執行很多次。
4. 改寫報錯訊息:對每條示例報錯,給出改寫後的版本,要求包含——發生了什麼、是否已產生影響、是否可以重試、建議的下一步、需要的話給出正確的參數示例。去掉對模型沒用的堆棧和內部代號,但保留用於排查的請求標識。
5. 寫一段放進系統提示詞的「遇到工具報錯時」規則,要點包括:先讀完報錯再行動;不得在工具失敗後編造工具結果或假裝成功;同樣的調用不改變任何東西就不要再發;繞過失敗的做法如果會改變任務範圍或降低安全性,要先問人;最終彙報裏如實列出失敗過的步驟。
6. 給出 5–6 個測試場景(每類錯誤至少一個,含一次「結果不確定」的寫操作),寫明期望的智能體行為。
【約束】
- 不假設具體的狀態碼或錯誤碼含義超出我給的示例;需要時寫「請對照該服務的文檔」。
- 規則要能執行:凡是寫「適當重試」的地方,都換成具體次數和條件。
【輸出格式】錯誤分類表 → 處理規則表 → 不可重複操作的專門規則 → 報錯改寫對照 → 系統提示詞片段 → 測試場景。

高亮處換成你自己的內容:[工具清單]、[報錯示例]、[當前表現]、[不可重複的操作]、[程序層重試情況]

ChatGPT Plus 充值

已被複製 0 次

使用說明

怎麼填變量:[報錯示例] 直接貼工具返回給模型的原文,哪怕只是一行「Error: 400」,這正是要改進的對象。[不可重複的操作] 要認真列,凡是「執行兩次會多扣一次錢、多發一條消息、多建一條記錄」的都算。[程序層重試情況] 很多 SDK 自帶重試,如果不說明,模型設計的規則可能與它疊加。

常見失敗與調整:

  • 報錯只返回「失敗」兩個字,模型只能瞎猜。按第 4 步改寫,尤其要告訴它「能不能重試」和「下一步建議」。
  • 寫操作超時後模型立刻重發,結果創建了兩條記錄。把這類操作歸入結果不確定,規定先查詢。
  • 工具失敗後,模型在回覆裏寫得好像成功了一樣。把「不得編造工具結果」寫進規則,並在測試場景裏專門驗證。

追問:「把處理規則表改成我可以直接實現的中間件邏輯說明」「這些工具裏哪幾個最值得先加冪等標識,按風險排序」。工具本身的名稱、參數和說明怎麼寫,可以參考站內的工具定義提示詞。

示例輸出

示例,僅供參考(虛構:能查詢與創建工單、發送通知的智能體)
錯誤類別識別特徵誰處理次數與動作放棄條件
暫時性故障(讀操作)超時、限流提示程序自動重試最多 3 次,逐次加長等待仍失敗則把報錯交給智能體,由它上報
輸入錯誤提示某參數無效智能體自行調整按報錯修改參數後重試 1 次第二次仍報同樣的錯則上報
結果不確定(創建工單超時)請求已發出,未收到回應智能體不重發;先用查詢工具按標題和時間查是否已創建查詢也失敗則上報,並說明可能已創建
權限問題提示無權訪問上報給人不重試立即

報錯改寫對照

  • 改寫前:Error: 400 Bad Request
  • 改寫後:創建失敗,未產生任何記錄。原因:priority 的取值必須是 low、normal、high 之一,收到的是 "urgent"。修改該參數後可以重試。請求標識:req_8f2a

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~