Function Calling (Tool Use)
函式呼叫/工具使用
01你是不是遇到這個 / THE SYMPTOM
我想讓 AI 不只是聊天,而是能「真的去做事」——查我的資料庫、呼叫天氣 API、寄一封信。但 AI 本身不會連我的系統,我不知道怎麼讓它「決定要呼叫哪個功能、給什麼參數」。
↑ 如果你點頭了,你要的關鍵字就是 Function Calling (Tool Use)。
02這是什麼 / DEFINITION
你先把可用的功能(函式)連同參數定義告訴模型,模型在對話中自行判斷該不該呼叫、要呼叫哪個、帶什麼參數,並回傳一個結構化的呼叫指令讓你的程式去實際執行。
03什麼時候用 / WHEN TO USE
要讓 AI 接到外部能力時:查即時資料、操作資料庫、串第三方 API、執行動作(建單、寄信、下單)——也就是打造「會用工具的 AI agent」的基礎。
04怎麼跟 AI 說 / HOW TO ASK
直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:
幫我用 function calling 定義一個工具 get_order_status(order_id),把它連同 schema 提供給模型;當使用者問訂單狀態時,讓模型回傳要呼叫的函式名與參數,再由我的程式執行並把結果回灌給模型生成回覆。
05常見坑 / WATCH OUT
⚠ 模型只是「決定並回傳要呼叫什麼」,真正執行還是你的程式——別以為它會自己連網。也要做好驗證與權限控管:把模型吐的參數當成不可信輸入,別直接拿去執行危險操作。
06相關的詞 / RELATED
Structured Output結構化輸出
我要用程式接 AI 的回答,但它每次格式都不一樣——有時多一句廢話、有時 JSON 少個括號,害我程式 parse 到一半就壞。我想要它「每次都只吐我規定好的固定格式」,但不知道這要怎麼要求。
System Prompt系統提示/系統指令
我希望 AI 全程都維持某個角色、口氣和規則(例如「你是繁中客服、不准講競品、回答要簡短」),但我每次對話都要重貼一遍很煩,而且講到後面它又跑掉。不知道這種「設定好就一直生效」的指令放哪。
RAG (Retrieval-Augmented Generation)檢索增強生成
我想做一個 AI 問答機器人,要它根據我自己的文件(公司手冊、PDF、客服資料)來回答,而不是它亂編。但我不知道怎麼讓 AI「讀我的資料」,總不能每次都把整份文件貼進去。