新增技能

上一頁展示了工具如何讓代理人員行動——呼叫函式、查詢 API、搜尋網頁。 但隨著你打造更多代理,一個模式逐漸浮現:同一組工具、說明書和參考資料不斷出現。 「申報費用報告」功能不僅僅是一個工具——它包含驗證腳本、一套政策文件、逐步填寫表格的指示,以及對支出上限的了解。 你最後會把這個套件從一個代理人複製貼上到另一個代理人,結果就不同步了。

技能 解決了這個問題。 技能是一種可攜式套件,將指令、參考資料及可選腳本打包成單一單元,任何代理都能隨時發現並載入。 技能遵循 開放規範 ,因此能在代理人、團隊甚至產品間重複使用。

何時使用

在以下情況下,為你的經紀人增添技能:

  • 你會有一 組相關知識 ——說明書、參考文件和腳本——理應歸於一組(例如「費用報告」或「程式碼審查指引」)。
  • 多位客服 人員需要相同的領域專業知識,而你想要的是單一的真實來源,而不是重複的指示。
  • 你希望將代理能力以自成一體的套件形式,在團隊、專案或組織 間分享與分發
  • 你需要 有效率地管理情境 ——技能會利用漸進式揭露,讓客服人員只在需要時載入他們需要的細節。

考慮事項

考量事項 詳細資料
重複使用性 技能是一個自成一格的套件。 一旦建立,任何代理程式都能接手,不需要手動複製貼上,也不會出現版本之間的差異。
情境效率 技能採用漸進揭露:代理人會先看到簡短描述(~100個代幣),並僅在相關時載入完整指令。 這樣即使不需要技能,上下文視窗也能保持精簡。
抽象成本 技能在工具之上加了一層抽象層。 對於單一獨立功能工具來說,加入技能包裝是不必要的。
設計努力 你需要事先思考技能界限:什麼該在技能內,什麼留在外面。 界線不明確會導致技能範圍過於寬泛(浪費上下文)或過於狹窄(失去捆綁的好處)。

技能與工具的差異

工具與技能是互補的,而非競爭。 了解這些差異可以幫助你決定何時選擇使用哪一個。

工具是一個可呼叫的單一動作——一個具有名稱、描述和參數結構的函式。 當模型決定需要某個工具時,會產生一個結構化呼叫,Agent Framework 執行,結果會回傳給模型。 工具是代理行為的原子。

技能是一套領域專業知識的組合。 它可以包括:

  • 說明 — 逐步指引、決策規則,以及告訴代理 如何 接近領域的範例。
  • 參考資料 — 政策文件、常見問題、範本及其他代理人可隨時查閱的知識。
  • 腳本 — 代理可執行的可執行程式碼,用於執行特定操作(例如,驗證腳本用來核對費用資料與政策規則)。

關鍵差異在於範圍:工具賦予代理人執行 一項行動的能力;技能賦予代理人處理 整個領域所需的知識與資源。

Tool 技能
它所提供的是什麼 一個可呼叫的動作 說明 + 參考資料 + 可選腳本
代理人如何使用它 需要行動時會呼叫它 當遇到相關任務時載入,閱讀指令,並可能呼叫腳本或參考資源
情境成本 工具結構總是出現在提示中 提示中只有技能名稱和描述(~100個代幣);完整內容可隨選載入
可攜性 與登記的代理人綁定 任何相容代理都能發現的自包含套件
適用對象 個別動作(查詢資料庫、發送電子郵件) 領域專業知識(費用政策、程式碼審查指引、入職程序)

小提示

把工具想像成 動詞 (搜尋、預訂、驗證),技能則是 專業知識 (旅遊訂位知識、費用政策知識)。 代理人使用工具來行動,並具備知道如何行動的技能。

技能運作方式:漸進式揭露

技能的設計旨在提高情境中的效率。 技能不是將所有東西一開始就注入提示中,而是使用三階段模式:

┌──────────────────────────────────────────────────────────────────┐
│  Stage 1: Advertise                                              │
│  Agent sees skill names and descriptions (~100 tokens each)      │
│  in its system prompt at the start of every run.                 │
└──────────────┬───────────────────────────────────────────────────┘
               ▼ (task matches a skill's domain)
┌──────────────────────────────────────────────────────────────────┐
│  Stage 2: Load                                                   │
│  Agent calls load_skill to get the full instructions             │
│  (< 5000 tokens recommended).                                   │
└──────────────┬───────────────────────────────────────────────────┘
               ▼ (agent needs more detail)
┌──────────────────────────────────────────────────────────────────┐
│  Stage 3: Read resources                                         │
│  Agent calls read_skill_resource to fetch supplementary files    │
│  (FAQs, templates, reference docs) only when needed.            │
└──────────────────────────────────────────────────────────────────┘

這種模式意味著一個註冊技能為 10 個的客服,大約要支付 1,000 個上下文開銷,而不是 50,000。 當當前任務需要時,代理人才會加深知識。

此外,技能也建立在工具基礎之上。 代理框架會在代理的系統提示中宣告可用技能,然後以工具呼叫的形式公開 load_skillread_skill_resource,代理會呼叫這些工具以逐步載入內容。

小提示

關於技能結構、設定及程式碼範例的完整細節,請參閱 Agent Skills 參考文獻。

何時使用技能與其他模式

隨著你的代理人能力提升,你有多種方式來組織其行為。 技能與工具的比較如下:

樣式 最適合用於 範例
個別工具 一次性行動,不需要共享上下文 get_weather 式工具
技能 具備指導、參考資料及可選腳本的領域專長 一款「報銷管理」功能,包含政策文件、驗證腳本及逐步報告提交說明

常見陷阱

潛在問題 指導
過於廣泛的技能 一項名為「財務全方位」的技能,試圖涵蓋會計、稅務、費用報表和薪資,但指示會過於冗長且不集中。 保持技能專注在單一領域。
跳過安全審查 技能指令會注入代理的上下文中,腳本執行程式碼。 將技能視為第三方依賴——部署前先檢視。 請參閱技能參考中的 資安最佳實務
忽略漸進式揭露 如果你 SKILL.md 的技能有 2,000 行,代理在載入技能時會付出沉重的上下文成本。 保持指示簡潔,並將詳細參考資料移至獨立資源檔案,以充分利用漸進揭露的優勢。

下一步

一旦你的客服人員擁有工具和技能,下一步就是加入 中介軟體 ——像是護欄、日誌和內容過濾等跨領域行為,適用於每一次互動,且不改變客服核心邏輯。

深入探討: