⚙️ Lecture 04.2: Function Calling 底層閉環:大語言模型如何輸出 JSON 操控實體電腦與工具?

NOTE

作者資訊 (Author Info)

在前面的 Agent 代理人章節中,我們看到 AI 能夠幫我們執行命令列指令、建立檔案、甚至自動搜尋網頁。但如果你仔細思考,可能會產生一個巨大的疑問:

NOTE

「大型語言模型(LLM)本質上只是一個『文字產生器』,它沒有手也沒有腳,它是如何精準控制作業系統去執行 mkdirwrite_to_file 的?難道 AI 真的有直接操控電腦硬體的魔法嗎?」

答案是:沒有魔法!這一切背後,靠的是現代 AI 架構中最重要的核心技術——Function Calling(函數呼叫 / 工具使用閉環)


📜 第一幕:菜單與工具規格說明書 (Tool Schema)

當你啟動 Antigravity CLI 或指示 Agent 工作時,第一步並不是直接發問,而是宿主系統(Host System)先向 AI 送出一份「工具菜單」

這份菜單在電腦科學中被稱為 JSON Schema(工具規格說明書)

菜單範例:

宿主系統會告訴 LLM:「大副,你今天可以使用以下這個名為 create_file 的工具:」

`json

{

"name": "create_file",

"description": "在本機電腦建立一個新檔案",

"parameters": {

"type": "object",

"properties": {

"filename": {

"type": "string",

"description": "檔案名稱,例如 test.py"

},

"content": {

"type": "string",

"description": "要寫入檔案的實體文字內容"

}

},

"required": ["filename", "content"]

}

}

`

LLM 在閱讀了這份說明書後,大腦中就記住了:*「喔!原來我有這個叫 create_file 的能力,而且只要我給它 filenamecontent,外部系統就會幫我跑腿!」*


🔄 第二幕:Function Calling 的四大實體步驟閉環

Function Calling 的完整運作流程,是一個嚴謹的四步驟循環(Loop):

`mermaid

sequenceDiagram

participant User as 使用者

participant LLM as AI 大腦 (LLM)

participant Host as 宿主系統 (CLI / Python)

participant OS as 作業系統 / 工具

User->>LLM: 1. 請幫我建立一個叫 hello.txt 的檔案

Note over LLM: 2. AI 決定使用 create_file 工具
輸出 JSON 格式指令

LLM->>Host: 3. {"tool": "create_file", "args": {"filename": "hello.txt", "content": "你好"}}

Note over Host: 4. 宿主系統解析 JSON
實體呼叫 Python 建立檔案

Host->>OS: 執行檔案建立

OS-->>Host: 檔案建立成功 (Observation)

Host->>LLM: 5. 將執行結果回傳給 AI: "成功建立 hello.txt"

LLM->>User: 6. 報告總裁/船長!檔案已為您成功建立!

`

關鍵細節解析:

  1. AI 只負責輸出「結構化 JSON 文字」:AI 並沒有直接碰觸你的硬碟,它只是按照菜單規格,寫出了一段符合格式的 JSON 請求文字。
  2. 宿主系統才是「實體執行者」:CLI 程式接到這段 JSON 後,在沙箱安全性檢查通過的前提下,呼叫真正的 Python open()write() 函數。
  3. 觀察值 (Observation) 餵回大腦:執行完畢後,結果(例如:File created successfully)會作為新訊息發送回 LLM,LLM 確認成功後,才會用親切的中文回報給使用者。

  4. 🛡️ 第三幕:為什麼 Function Calling 對無障礙與安全至關重要?

    1. 徹底防止「幻覺執行」

    因為工具的參數有嚴格的型別檢查(如必須是數字或字串),如果 AI 輸出的格式不符,宿主系統會立刻打回重試,絕不盲目執行危險語法。

    2. 人類介入審查 (Human-in-the-Loop)

    在第二步與第三步之間,宿主系統可以暫停並跳出提示詢問使用者:*「AI 試圖刪除 main.py,請問您同意授權執行嗎?」* 這為視障與所有使用者提供了最強大的安全防禦網!

    3. 無障礙自動化管線

    透過 Function Calling,我們可以讓 AI 呼叫 NVDA 的播報 API(如 ui.message)或作業系統的音效引擎,讓 AI 的思考過程隨時轉換成清晰的語音報讀。


    💡 第四幕:大導演總結

    現在你看清了黑盒子內部的物理構造:

    掌握了這個閉環原理,未來你在指示 AI 設計 NVDA 外掛或網頁應用時,就能更精準地為它定義工具菜單!


    👉 下一堂課:Lecture 04.5 多重子代理人分工架構

    👉 回課程大綱:學習地圖