wen aidev

Agent Skills 進階篇

五大 Workflow 設計模式 × 完整 Troubleshooting 指南

📚 這是進階篇。還沒看過概念基礎?先看「Agent Skills 開發概念指南」→

先選思路:Problem-first vs Tool-first

設計 Skill 前,先確定你的出發點——這決定了你要套用哪種 Pattern。

🎯 Problem-first

用戶描述的是「我要達到什麼結果」,Skill 負責決定呼叫哪些工具、按什麼順序。

用戶說:

「幫我設置一個新的專案工作空間」

Skill 內部自動協調 MCP 工具的呼叫順序。

🔧 Tool-first

用戶已經有工具(如 Notion MCP),Skill 提供的是「如何使用這個工具的最佳實踐」。

用戶說:

「我連接了 Notion MCP,幫我管理專案」

Skill 提供針對 Notion 的工作流專業知識。

* 大多數 Skill 偏向其中一個方向。確定你的方向後,再選擇下面最符合的 Pattern。

五大 Workflow Design Patterns

這五個 Pattern 來自 Claude 官方整理的早期採用者與內部團隊案例,不是死板模板,而是常見的高效設計思路。選一個最符合你 Use Case 的作為起點。

Use when:用戶需要按固定順序完成多步驟流程

範例結構

# Workflow: Onboard New Customer

# Step 1: Create Account
Call MCP tool: create_customer
Parameters: name, email, company

# Step 2: Setup Payment
Call MCP tool: setup_payment_method
Wait for: payment method verification

# Step 3: Create Subscription
Call MCP tool: create_subscription
Parameters: plan_id, customer_id (from Step 1)

# Step 4: Send Welcome Email
Call MCP tool: send_email
Template: welcome_email_template

關鍵技巧

  • 明確標示步驟之間的依賴關係(如 Step 3 需要 Step 1 的 customer_id)
  • 每個步驟都要有驗證(Validation)
  • 提供失敗時的 Rollback 說明

Troubleshooting 指南

Skill 不如預期?以下是六種最常見的問題與對應的診斷步驟。

Error: "Could not find SKILL.md"

檔名大小寫必須完全一致,rename 成 SKILL.md(注意大寫)

Error: "Invalid frontmatter"

檢查 YAML 格式:前後必須有 --- 分隔符,引號要閉合。技能名稱欄位(name:)不能有空格或說明用引號的錯誤。

Error: "Invalid skill name"

名稱只能用小寫字母和連字符。❌ My Cool Skill → ✅ my-cool-skill

描述太通用

"Helps with projects" 不夠具體,Claude 不知道何時使用。加入用戶實際會說的觸發語境。

觀察 Claude 如何理解你的 Skill

問 Claude:「你什麼時候會使用 [skill name] skill?」Claude 會引用你的描述。根據回答調整。

加入具體的觸發 Use case

描述中加入 "Use when...",包含具體的檔案類型或任務情境。

加入 Negative triggers

在描述中明確寫出 "Do NOT use for..." 排除不相關的觸發場景。

縮小 Scope

把 "Processes documents" 改為 "Processes PDF legal documents for contract review"。越具體越好。

驗證 MCP Server 是否已連接

Claude.ai → Settings → Extensions → 確認目標服務顯示 "Connected" 狀態

先獨立測試 MCP

不透過 Skill,直接叫 Claude 呼叫 MCP("Use [Service] MCP to fetch my projects")。如果這也失敗,問題在 MCP 不在 Skill。

確認工具名稱

Skill 中引用的 MCP tool names 要完全和 MCP server documentation 一致,區分大小寫。

指令太冗長

SKILL.md 限制在 5,000 字以內。重要指令放在最前面,用 ## Important / ## Critical 標題強調。

語言描述太模糊

❌ "Make sure to validate things properly" → ✅ "CRITICAL: Before calling create_project, verify: Project name is non-empty, at least one team member assigned, start date is not in the past"

用腳本取代語言驗證

對關鍵驗證步驟,用程式腳本(Python/Bash)執行,而不是靠語言指令。代碼是確定性的,語言解讀不是。

防止「偷懶」跳步驟

在 SKILL.md 中加入:# Performance Notes / - Take your time to do this thoroughly / - Do not skip validation steps(放在用戶 Prompt 中比 SKILL.md 更有效)

SKILL.md 太大

將詳細文件移到 references/ 資料夾,SKILL.md 只保留連結。嚴格限制 SKILL.md 在 5,000 字以內。

同時啟用 Skill 太多

不建議同時啟用超過 20-50 個 Skills。考慮按用途分組成「Skill Packs」,按需啟用。

還沒掌握 Progressive Disclosure、命名規則、腳本穩健性等基礎概念?

← 回到基礎篇