Tool Use 完全指南:讓 AI Agent 從「聊天機器人」變成「行動者」

Agent小編

ai-generated-image.png

為什麼 Tool Use 是 Agentic AI 的核心?

如果說 LLM 是 Agent 的「大腦」,那麼工具(Tools)就是它的「手腳」。沒有工具使用能力,AI 只能在對話框內打轉;有了工具,它才能真正採取行動——查詢資料庫、呼叫 API、執行程式、甚至控制瀏覽器。

這個轉變,讓 AI 從「知道怎麼做」進化到「真的去做」。


什麼是 Function Calling?

Function Calling 是目前主流 LLM(如 GPT-4o、Claude 3.5、Gemini 1.5)實現工具使用的標準機制。其運作流程如下:

  1. 開發者定義工具清單:以 JSON Schema 描述每個工具的名稱、參數與說明
  2. LLM 判斷是否需要呼叫工具:根據使用者的請求與上下文決定
  3. LLM 回傳結構化的工具呼叫請求:包含工具名稱與參數值
  4. 應用層執行工具:由外部程式實際執行並取得結果
  5. 結果回饋給 LLM:模型根據工具回傳繼續生成最終回應

💡 關鍵重點:LLM 本身不執行工具,它只負責「決定要呼叫哪個工具、帶什麼參數」。實際執行永遠在應用層。


工具設計的三大原則

1. 單一職責(Single Responsibility)

每個工具只做一件事,且做好一件事。避免設計「萬能工具」——這會讓模型難以判斷何時使用,也增加出錯機率。

  • search_web(query) — 搜尋網路
  • read_file(path) — 讀取檔案
  • do_everything(instruction) — 模糊不清

2. 清晰的描述(Clear Description)

工具的描述直接影響 LLM 的判斷品質。好的描述應該包含:

  • 做什麼:工具的核心功能
  • 什麼時候用:適用場景
  • 回傳什麼:輸出格式與內容

3. 可預測的輸出(Predictable Output)

工具回傳的結果要穩定、結構化。隨機的錯誤訊息或不一致的格式,會讓 Agent 陷入困惑甚至無限重試迴圈。


Tool Use 與 MCP 的關係

隨著 Agentic AI 生態成熟,工具整合的碎片化問題越來越嚴重——每家 Agent 框架都有自己的工具格式,難以互通。

Model Context Protocol(MCP) 正是為了解決這個問題而生。它定義了一套標準的工具描述與呼叫協議,讓工具可以跨 Agent、跨框架複用。

你可以把 MCP 想像成工具界的「USB-C 標準」——不管什麼裝置,插上去就能用。

詳細的 MCP 介紹可參考:MCP 協議完整解析


實戰範例:一個簡單的資料查詢 Agent

tools = [
    {
        "name": "query_database",
        "description": "查詢產品資料庫,回傳符合條件的產品清單。適合用於搜尋特定產品或篩選條件。",
        "parameters": {
            "type": "object",
            "properties": {
                "keyword": {"type": "string", "description": "搜尋關鍵字"},
                "category": {"type": "string", "description": "產品分類(可選)"}
            },
            "required": ["keyword"]
        }
    }
]

# Agent 會自動判斷何時呼叫 query_database
# 並將結果整合進最終回覆

常見陷阱與解法

陷阱 症狀 解法
工具太多 模型不知道選哪個 分組、加強描述、動態載入
描述模糊 工具被誤用 加入使用範例與禁用場景
錯誤處理不足 Agent 無限重試 統一錯誤格式,加入 fallback
工具回傳過多資訊 Token 爆炸、回應變慢 截斷、摘要、分頁

小結

Tool Use 是讓 AI Agent 真正「有用」的關鍵能力。設計好的工具清單,搭配清晰的描述與可靠的執行層,才能讓 Agent 在複雜任務中穩定發揮。

下一步,你可以進一步了解 Agentic RAG 如何結合工具使用與動態檢索,或參考 Multi-Agent Orchestration 來設計多 Agent 協作的工具分工策略。