OpenClaw 自訂 Skill 開發指南

把你的獨特工作流封裝成 Skill,讓 AI 真正替你幹活。

⚖️
OpenClaw 的 Skill 系統是它最強大的擴展機制。你可以把任何重複性工作封裝成 Skill,讓 AI 一鍵呼叫。不需要深厚的程式設計功底,跟著這篇指南就能上手。

為什麼要自己寫 Skill?

OpenClaw 內置了很多通用 Skill,但每個人的工作流都不一樣。自訂 Skill 讓你可以:

  • 🎯 封裝獨特工作流:你公司內部的審批流程、報表格式、資料來源,別人的 Skill 不可能涵蓋
  • 🔗 對接內部工具:連接公司的 CRM、ERP、OA 系統,讓 AI 直接操作你的業務系統
  • 提高執行效率:把 10 步手動操作壓縮成一個 Skill 呼叫,AI 一句話就能完成
  • 🔄 標準化團隊協作:團隊成員共享同一套 Skill,確保 AI 輸出的格式和品質一致
💡舉個例子:你每天要從 3 個資料來源拉資料、合併、生成 Excel、發信件給老闆。寫一個 Skill,以後只需要說「生成今日日報」,全部自動完成。

Skill 架構概覽

一個 Skill 的核心結構非常簡單,由三個部分組成:

1

聲明層(Manifest)

告訴 OpenClaw 這個 Skill 是什麼需要什麼輸入產生什麼輸出。包括名稱、描述、參數定義、權限要求等後設資料。

2

執行層(Handler)

Skill 的核心邏輯。接收輸入參數,執行具體操作(呼叫 API、讀寫檔案、處理資料),傳回結果。支援同步和非同步兩種模式。

3

生命週期鉤子(Hooks)

可選的擴展點:初始化(載入設定、建立連接)、校驗(檢查輸入合法性)、清理(釋放資源、關閉連接)。不寫也沒關係,系統有預設行為。

⚙️輸入/輸出約定:Skill 的輸入是結構化參數(類似函式參數),輸出是標準化的結果物件。AI 根據 Manifest 中的描述自動決定何時呼叫、傳什麼參數。

實戰:構建一個「客戶跟進提醒」Skill

我們用一個真實場景來走一遍完整的開發流程:

1

明確需求

場景:銷售團隊需要 AI 每天檢查 CRM 中超過 7 天未聯繫的客戶,生成跟進清單,傳送到企業微信群。

  • 輸入:天數閾值(預設 7 天)、目標群組 ID
  • 輸出:跟進清單(客戶名、上次聯繫時間、建議動作)
  • 權限:需要 CRM API 訪問權限、企業微信傳送權限
2

編寫 Manifest

定義 Skill 的後設資料:名稱叫 customer-followup,描述清楚功能,聲明兩個輸入參數和它們的型別、預設值。這一步決定了 AI 什麼時候會呼叫你的 Skill。

3

實現 Handler

核心邏輯分三步:① 呼叫 CRM API 查詢超期客戶 → ② 用 AI 生成每個客戶的跟進建議 → ③ 格式化成訊息傳送到企業微信。每一步都可以呼叫 OpenClaw 的內置工具。

4

本地測試

用 OpenClaw 的開發模式載入 Skill,對 AI 說「檢查一下超過 3 天沒聯繫的客戶」。觀察 AI 是否正確識別意圖、傳入正確參數、傳回預期結果。

5

部署上線

測試通過後,將 Skill 安裝到生產環境。團隊中的任何人都可以通過自然語言觸發它。

常見開發模式

大多數自訂 Skill 都屬於以下幾類:

🌐 API 整合類

對接外部服務的 API,讓 AI 可以操作第三方系統。

  • 連接企業微信 / 釘釘 / 飛書,傳送訊息和通知
  • 對接 Jira / Notion / 飛書多維表格,管理專案和任務
  • 呼叫支付閘道查詢訂單狀態
  • 連接自建的內部 API 服務

📄 檔案處理類

批量處理檔案、轉換格式、提取資訊。

  • 批量將 Word 轉 PDF 並新增浮水印
  • 從發票圖片中提取金額和日期(結合 OCR)
  • 合併多個 Excel 並生成彙總報表
  • 掃描目錄中的檔案並按規則整理歸檔

🔔 通知和報告類

定時生成報告或在特定條件下發出通知。

  • 每日站會摘要:彙總昨天的 Git 提交和 Jira 異動
  • 異常告警:監控指標超閾值時自動通知
  • 週報生成:從多個資料來源拉取資料並格式化

🔄 資料處理類

ETL、資料清洗、格式轉換等資料密集型任務。

  • 從資料庫匯出 → 清洗 → 寫入另一個系統
  • CSV/JSON 格式互轉並做資料校驗
  • 多源資料合併去重

測試和除錯技巧

⚠️黃金法則:先讓 Skill 在最簡單的場景下跑通,再逐步加功能。不要一上來就寫複雜邏輯。
  • 🐛 開發模式執行:載入 Skill 時開啟 debug 模式,可以看到 AI 傳入的完整參數和 Skill 傳回的完整結果
  • 🧪 模擬輸入測試:準備幾組典型輸入(正常值、邊界值、異常值),逐個驗證 Skill 的行為
  • 📋 檢查 Manifest 描述:如果 AI 不呼叫你的 Skill,通常是 Manifest 中的描述不夠清晰。試著用更自然的語言描述功能
  • 🔍 日誌追蹤:在 Handler 中新增日誌輸出,追蹤每一步的執行情況
  • ⏱️ 逾時處理:外部 API 呼叫一定要設置逾時,避免 Skill 卡死
  • 🛡️ 錯誤處理:傳回清晰的錯誤資訊,而不是讓 Skill 直接當機。AI 需要錯誤資訊來決定下一步怎麼做

發佈和分享

寫好的 Skill 不要藏著,分享給社群讓更多人受益:

  • 📦 打包:按照標準目錄結構組織檔案,包含 Manifest、Handler、README、示例設定
  • 審核:提交到 OpenClaw Skill 倉儲前,確保程式碼無硬編碼金鑰、有基本的錯誤處理、描述清晰
  • 🌍 發佈:通過 PR 提交到官方 Skill 倉儲,審核通過後所有用戶可以一鍵安裝
  • 🏢 企業內部分享:也可以搭建私有 Skill 倉儲,僅在團隊內部使用
💡好的 Skill 名字很重要:名字應該讓人一眼就知道它幹什麼。daily-report-generatortool-v2-final 好一萬倍。AI 也靠名字和描述來決定是否呼叫。

開發最佳實踐清單

  • 單一職責:一個 Skill 只做一件事。「發信件」和「生成報表」應該是兩個 Skill,而不是一個
  • 參數有預設值:盡量給參數設預設值,減少 AI 需要確認的資訊
  • 描述寫給 AI 看:Manifest 中的描述是寫給 AI 的,要讓 AI 能判斷什麼場景下該呼叫
  • 冪等設計:同樣的輸入執行多次,結果應該一樣。避免重複發信件、重複建立記錄
  • 敏感資訊用環境變數:API Key、密碼等絕對不要硬編碼在 Skill 裡
  • 傳回有意義的結果:不要只傳回「成功」,傳回具體做了什麼(如「已傳送 3 封信件給 張三、李四、王五」)

相關搜尋

OpenClaw Skill 開發 · 自訂 AI 技能 · OpenClaw 外掛開發 · AI Agent 擴展開發 · OpenClaw Skill 發佈 · 企業 AI 自動化

🔗相關閱讀:Skill 使用指南 · vs Dify · vs Coze · vs Claude Code