N02 工具呼叫與執行迴圈
追一次工具呼叫,確認驗證、執行、結果回填與停止條件。
N02 工具呼叫與執行迴圈
模型可能提出「呼叫 get_device_status,參數是 A-17」。這只是結構化的動作請求。真正呼叫函式、驗證權限、處理錯誤與決定是否繼續的是程式,也就是 Agent 的執行迴圈或 Harness。
Tool call 通常包含工具名稱、參數和呼叫識別資訊。程式先確認工具在允許清單裡、參數符合契約、目前身分有權使用,再執行。結果要對回原本的呼叫,讓模型知道這筆資料回答的是哪個問題。
做一個有限的迴圈
模型提出工具請求
→ 驗證工具、參數與授權
→ 執行或回傳拒絕原因
→ 把結果交回模型
→ 得到回答,或在上限內繼續
上限可以包括輪數、時間與用量。工具失敗不表示應該無限重試;模型再次提出同一個有副作用的動作,也不能直接再執行。
先用「查目前 UTC 時間」這種只讀工具練習,容易看出模型提出請求和程式執行的差別。後面才換設備查詢。日誌可保留每次事件和對應 ID,不要保存不必要的個資或密鑰。
練習
寫一份包含請求、驗證、工具回傳、最終答案的事件紀錄。再注入「工具不存在」與「工具逾時」,說明迴圈應如何停止或回報。
自我檢查:能指出誰限制輪數、誰有執行權,以及沒有執行成功時為什麼不能宣稱動作完成。