從 Function Calling 到 MAF 中的 tool use
從 Function Calling 開始 還記得 Function Calling 嗎? 一開始的 LLM 只能聊天。你問,它答。但它就是個黑箱。 不會上網,不能查資料庫,不知道今天幾月幾號,現在是幾點,當然也不可能去執行你的 API。 後來模型的推理能力變強了,OpenAI 才提供了一個新的能力: 讓模型可以「要求系統替它做事」 。這基於模型能夠理解結構化輸出、做到多步驟推理的基礎上。 這就是 Function Calling。 模型回你一段結構化的需求,像是: "function_call" : { "name" : "leave_request" , "arguments" : "{ start_date:2026-5-12,end_date:2026-5-13,leave_type:病假,substitute:張大寶 }" } 很多人誤以為「模型會呼叫API」!? 但其實沒有。 真正執行 API 的,永遠是你的 Runtime、你的 Framework、或是你的AI Agent程式。 模型做的只有三件事: 依照對談或語意,判斷需不需要呼叫工具 決定呼叫哪個工具 (像是上面的 name) 推論呼叫工具時的參數 (像是上面的 arguments) 基於這個基礎,很多開發框架實作出了 AI Agent 很需要的能力,就是 Tool Call。 Kernel Function 是「掛在 Kernel 上、能被 AI 呼叫的能力」 很多人第一次碰到 Semantic Kernel 時,最有感的機制其實是 Kernel Function 。 以前它也常被叫做 Semantic Function / Native Function,本質上就是: 讓 LLM 可以呼叫的功能單位 。 你可以把它想成「Tool 的前身」,掛在 Kernel 上,給模型用來做事。 而且它很務實:查天氣、查資料庫、發 email、呼叫 API、建立檔案…等,全部都能包裝成 Kernel Function。 最典型的寫法是 Native Function(用程式碼寫的 function),例如: public class ...