從 Function Calling 到 MAF 中的 tool use
我覺得今年真的是 AI Agent 崛起的一年。 AI 輔助開發在今年幾乎可以說是全面 Agent 化,而一般的消費者應用領域,也開始有許多 AI Agent 出現。最近身邊的幾個專案,都不約而同地從傳統的 Web應用程式升級成採用單一對談式介面為主要入口的 AI Agnet。 上課時,和學員聊到這些改變。 其中有位學員問到,這是因為MCP出現的關係嗎? 我說不是,真要說的話,其實應該從 Function Calling 開始說起。 一切從 Function Calling 開始 還記得 Function Calling 嗎? 最初的 LLM 只能聊天。你問,它答。但它就是個黑箱,不會上網,不能查資料庫,不知道今天幾月幾號,現在是幾點,當然也不可能去執行你的 API。 後來模型的推理能力變強了(約莫是在 gpt 4o 前後的那個階段),OpenAI 才提供了一個新的能力: 讓模型可以「要求系統替它做事」 。 這因為當時的LLM開始能夠理解、進行結構化輸出、並且能做到多步驟推理的這個基礎上。 那時候你跟模型聊天,模型可以依照你的對話,來判斷是否需要呼叫外部函式(API),如果需要,模型就回你一段結構化的JSON,像是底下這樣(例如你在聊天的過程中提到要進行請假): "function_call" : { "name" : "leave_request" , "arguments" : "{ start_date:2026-5-12,end_date:2026-5-13,leave_type:病假,substitute:張大寶 }" } 這就是 Function Calling。 很多人看到 Function Calling 這個字眼,誤以為「LLM 模型能夠直接呼叫API」?? 不,其實並沒有,也不能。 真正執行 API 的,是你的 Runtime、你的 Framework、或是你的AI Agent程式。 LLM 模型做的只有三件事: 依照對談或語意,判斷需不需要呼叫 API 以及,呼叫哪個 API (像是上面的 name) 還有,組出呼叫API時所需要的參數 (像是上面的 arguments) 然後...