AI Agent Skills 概念與運作原理

什麼是 AI Agent Skills?在了解具體的程式碼與實作之前,我們必須先釐清一個核心觀念:單純的「大型語言模型 (LLM)」並不等於「AI Agent (代理)」。

你可以把 LLM(如 GPT-4 或 Claude 3)想像成一個擁有豐富學識、被關在一個沒有網路的房間裡的聰明學者(大腦)。它能回答歷史問題、幫你寫文章,但它沒辦法幫你上網查今天的天氣、沒辦法幫你計算極度複雜的數學題,也無法幫你把資料存進公司的資料庫。

為了讓這個聰明的大腦能夠真正幫我們「做事」,我們必須賦予它各種「技能 (Skills)」,也就是俗稱的工具 (Tools)。有了這些工具作為它的手和腳,它才真正晉升為一個具備解決問題能力的 AI Agent

實際對比:沒有 Skills vs 有 Skills 的 AI

讓我們用一個具體的對話情境,來看看「賦予技能」前後的巨大差異:

情境:詢問「今天的台北天氣如何?請幫我記錄到資料庫。」

  • ❌ 沒有 Skills 的 AI (純語言模型)

    「很抱歉,作為一個 AI 語言模型,我無法連上網路獲取即時資訊,也不知道今天的台北天氣。此外,我也沒有權限存取您的資料庫。」

  • ✅ 有 Skills 的 AI Agent (裝備了「天氣查詢」與「資料庫寫入」技能)

    (AI 在背景自動呼叫天氣 API 查詢台北天氣...) (AI 在背景呼叫資料庫 API 寫入紀錄...) 「今天的台北天氣是晴天,氣溫 28 度。我已經將這筆資訊成功記錄到您的資料庫中了!」

底層核心:Function Calling 是怎麼運作的?

AI 到底是如何「主動」去使用這些工具的呢?這背後依賴的底層技術被稱為 Function Calling (函式呼叫)。無論是 ChatGPT 還是 Claude,它們的運作機制通常遵循以下三個步驟的循環:

  1. AI 閱讀工具清單:開發者會預先寫好一份「說明書」,告訴 AI 目前有哪些工具可用,以及每個工具需要什麼參數(例如:有個工具叫 get_weather,需要傳入 location)。
  2. AI 決定呼叫工具:當使用者提出需求時,AI 發現自己不知道答案,但它看到說明書裡有 get_weather 這個工具。於是它會暫停生成文字,轉而輸出一段 JSON 格式的指令,要求後端程式幫忙呼叫這個工具。
  3. 後端執行並回傳:開發者的程式碼攔截到這個指令,去網路上抓取了真實的天氣資料,然後將結果(如 "氣溫 28 度")丟回給 AI。AI 拿到資料後,才正式用自然語言回答使用者。
// 給 AI 看的工具說明書 (JSON Schema 範例)
const weatherSkillDefinition = {
  name: 'get_current_weather',
  description: '取得指定城市目前的氣象資訊',
  parameters: {
    type: 'object',
    properties: {
      location: {
        type: 'string',
        description: '城市名稱,例如:台北市、高雄市',
      },
    },
    required: ['location'],
  },
};

從單一工具到標準化生態

隨著 AI 應用的普及,業界開始意識到,如果每個工具都要開發者手動串接 API、寫繁瑣的 JSON Schema,會極大地阻礙技能的重複使用。

因此,市場上發展出了各種標準規範。例如:

  • ChatGPT Custom Actions:透過標準的 OpenAPI 規範來定義技能介面,讓 GPTs 可以輕易地與外部系統對接。
  • Claude Tool Use (與 MCP 協定):Anthropic 推出的標準,讓模型能更精確地使用工具。
  • Agent Skills (agentskills.io):一個廣泛被開源社群與開發環境(如 Claude Code)支援的資料夾結構規範,讓你用純文字 Markdown 就能輕鬆定義 AI 技能。

在接下來的系列文章中,我們將深入探討如何設計一個好的 Skill、如何定義嚴謹的邊界以防範 AI 出錯,並帶你一步步實作出能夠被這些平台使用的強大技能!