Tool Call(工具呼叫)
又稱:function calling · 函式呼叫 · 工具使用 · tool use
模型不做事,它只是**請求**做事:回傳一段結構化文字說「請幫我呼叫這個工具,參數是這些」。
你會在什麼時候遇到它
這是 Agent 能動手的唯一機制。理解「模型只負責請求、你的程式負責執行」,你才不會以為 AI 自己跑進了你的系統。
打個比方
像醫生開處方單。醫生不能自己去藥房拿藥,他寫單子,藥師照單執行。單子寫錯,藥師要能看出來。
最小範例
// 模型回傳的東西(簡化)
{
"tool_calls": [{
"id": "call_abc123",
"function": {
"name": "read_file",
"arguments": "{\"path\": \"notes.txt\"}"
}
}]
}
// 注意:這時檔案還沒被讀。要你的程式去讀。arguments 是模型生成的字串,可能是壞的 JSON、可能指向不存在的檔案。執行前一定要驗證。
最常搞錯的地方
- 不驗證 arguments 就直接執行。這是 Agent 最常見的破口。
- 以為一次工具呼叫就結束了。它至少要兩趟:去程請求、回程把結果餵回去再問一次模型。