iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
AI Engineering

30 天探索 MCP:從基礎概念到實作系列 第 21 篇

Agent 錯了怎麼辦?Tool Error Handling

  • 分享至 

  • xImage
  •  

上一篇我們讓 Agent 可以同時使用多個 MCP Tool,完成比較複雜的任務,不過在實際使用 Tool 時,不可能每次都成功。

如果要求 Agent 讀取一個不存在的檔案 Tool 就可能回傳錯誤,那麼 Agent 遇到錯誤之後會怎麼做呢,難道只能把錯誤訊息直接丟回給使用者嗎?

所以今天就來加入 Tool Error Handling,讓 Agent 遇到錯誤時,不只是回報錯誤,而是嘗試自己找到解決方法。


Tool 本身的錯誤處理

其實前面做 File System MCP 時,我們就已經有基本的錯誤處理。

例如 read_file():

if not path.exists():
    return (
        f"錯誤:找不到檔案 '{file_path}'。"
        "可以先使用 list_files 查看目前有哪些檔案。"
    )

如果讀取不存在的檔案,就不會直接讓程式發生例外,而是回傳一個有意義的錯誤訊息。

錯誤:找不到檔案 'tes.txt'。
可以先使用 list_files 查看目前有哪些檔案。

這樣的設計比單純回傳 Error 更容易讓 Agent 判斷接下來該怎麼做。


讓 Agent 自己處理錯誤

不過光是讓 Tool 回傳錯誤還不夠。

如果 Agent 收到找不到 tes.txt,然後直接告訴使用者抱歉,我找不到 tes.txt,這其實還是由使用者自己處理問題,就像下面這樣

https://ithelp.ithome.com.tw/upload/images/20261005/201787690Ez1L5ZZPh.png

雖然他有告訴我們發生了什麼事,並給出了一些建議,但整個過程還是被中斷了,所以這次我們會在 Agent 的 system_instruction 加入一些規則

https://ithelp.ithome.com.tw/upload/images/20261005/20178769j7GrbSjtJA.png

這裡沒有直接寫死如果找不到 tes.txt 就去讀 test.txt,而是告訴 Agent 一個比較通用的原則:

如果 Tool 失敗,而且還有可能完成任務,就繼續想辦法。

這樣 Agent 才有機會根據不同情況自己選擇 Tool。


實際測試

我們拿之前的 file_server.py 來做測試,包括之前創建的sandbox和rag_client.py也一起搬過來,接著開始測試

https://ithelp.ithome.com.tw/upload/images/20261005/20178769Hov6PS7ccp.png

這裡我輸入了幫我讀取 tes.txt,可以看到它成功讀取了 test.txt 的內容,這裡也能看出雖然我們稍微打錯了檔名,但 Agent 還是能夠自己判斷把錯誤更正。

整個過程大概是:

User
 ↓
read_file("tes.txt")
 ↓
找不到檔案
 ↓
Agent 分析錯誤
 ↓
list_files()
 ↓
找到 test.txt
 ↓
read_file("test.txt")
 ↓
取得內容
 ↓
完成任務

這樣這次 Agent 就不只是把錯誤回傳給使用者,而是自己繼續執行 Tool,直到找到可以完成任務的方法。


Error Handling 不只是 try/except

這次實作也讓我比較明顯感受到,Agent 的 Error Handling 不只是傳統程式裡的 try/except,可以簡單分成兩個部分:

Tool 層

負責處理預期會發生的錯誤。

例如:

if not path.exists():
    return "錯誤:找不到指定的檔案。"

讓 Agent 知道 Tool 發生了什麼問題。

Agent 層

收到錯誤之後,判斷是否還有辦法完成原本的任務。

例如:

Tool 失敗
 ↓
分析錯誤
 ↓
選擇其他 Tool
 ↓
再次嘗試

這也是今天比較重要的地方。


總結

今天讓 Agent 遇到 Tool 錯誤時,不再只是把錯誤訊息直接回傳給使用者,而是可以根據錯誤結果,自己選擇其他 Tool 繼續處理,雖然只是很簡單的例子,但這已經比單純呼叫 Tool → 得到結果更接近真正的 Agent。

因為實際任務中,錯誤不一定代表任務結束,有時候只是代表需要換一種方式繼續完成任務。


上一篇
MCP Tool 的設計:什麼樣的 Tool 才好用?
系列文
30 天探索 MCP:從基礎概念到實作 共 21 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言