Skip to main content
Glama
AI代理技能識別機制說明.md13.1 kB
# AI 代理技能識別機制說明 ## 🔍 技能識別流程 AI 代理(如 Claude、Cursor、Windsurf、Aider)通過以下機制識別和使用技能: ### 1. AGENTS.md 文件的作用 `AGENTS.md` 是技能系統的核心配置文件,包含: - **技能列表** (`<available_skills>`): 所有已安裝技能的元數據 - **使用說明** (`<usage>`): 告訴 AI 如何調用技能 - **技能描述**: 每個技能的觸發條件 ### 2. 技能識別的三級載入系統 根據 OpenSkills 的設計,技能使用**漸進式披露**(Progressive Disclosure)機制: ``` Level 1: 元數據(始終在上下文中) ↓ AI 讀取 AGENTS.md 中的技能描述 ↓ 判斷是否需要使用技能 ↓ Level 2: SKILL.md 主體(觸發時載入) ↓ 執行 Bash("openskills read grasshopper-workflow") ↓ 載入 SKILL.md 的完整內容 ↓ Level 3: 參考資源(按需載入) ↓ 根據 SKILL.md 中的引用 ↓ 載入 references/ 或 scripts/ 中的文件 ``` ## 📋 當前 grasshopper-workflow 技能的識別機制 ### 技能元數據(Level 1) 在 `AGENTS.md` 中,您的技能定義為: ```xml <skill> <name>grasshopper-workflow</name> <description>"Grasshopper 參數化建模工作流程工具。當需要通過 MCP 協議與 Grasshopper 交互、創建和管理組件、建立連接、設置參數、執行完整建模工作流程時使用。適用於:(1) 從 MMD 文件創建 Grasshopper 定義, (2) 執行 placement_info.json 工作流程, (3) 批量管理組件和連接, (4) 參數化建模的自動化流程, (5) 解析 component_info.mmd 和 part_info.mmd 文件"</description> <location>project</location> </skill> ``` ### 觸發條件 AI 代理會在以下情況識別並使用此技能: 1. **關鍵詞匹配**: - "Grasshopper" - "MMD 文件" / "component_info.mmd" / "part_info.mmd" - "placement_info.json" - "創建組件" / "連接組件" - "參數化建模" - "MCP 協議" 2. **任務類型匹配**: - 從 MMD 文件創建 Grasshopper 定義 - 執行 placement_info.json 工作流程 - 批量管理組件和連接 - 解析 component_info.mmd 或 part_info.mmd - 設置 Grasshopper 組件參數 3. **工作流程匹配**: - 需要執行完整的 Grasshopper 建模流程 - 需要自動化 Grasshopper 操作 ## 🚀 實際使用流程 ### 範例 1: 用戶請求解析 MMD 文件 **用戶請求:** ``` 請幫我解析 component_info.mmd 文件並生成 placement_info.json ``` **AI 代理的識別過程:** 1. **讀取 AGENTS.md** (自動載入) - 看到 `grasshopper-workflow` 技能 - 描述中包含 "解析 component_info.mmd" 和 "執行 placement_info.json 工作流程" - ✅ 匹配成功 2. **調用技能** (AI 自動執行) ```bash openskills read grasshopper-workflow ``` 3. **載入技能內容** - SKILL.md 主體內容被載入 - AI 看到工作流程步驟和快速開始範例 4. **按需載入參考文檔** - AI 看到 SKILL.md 中引用 `references/workflow_steps.md` - 如果需要,會讀取該文件獲取詳細步驟 5. **執行任務** - AI 使用技能中的 Python 腳本 - 調用 `scripts/parser_utils.py` 解析 MMD - 調用 `scripts/placement_executor.py` 執行流程 ### 範例 2: 用戶請求創建 Grasshopper 組件 **用戶請求:** ``` 幫我在 Grasshopper 中創建一個 Number Slider 組件 ``` **AI 代理的識別過程:** 1. **關鍵詞匹配** - "Grasshopper" → 匹配 - "創建組件" → 匹配技能描述中的 "創建和管理組件" - ✅ 觸發 `grasshopper-workflow` 技能 2. **載入技能** - AI 執行 `openskills read grasshopper-workflow` - 看到組件管理的說明和範例 3. **使用技能內容** - 參考 `references/api_reference.md` 中的 ComponentManager 說明 - 使用 `scripts/component_manager.py` 中的方法 - 執行組件創建操作 ## 📝 AGENTS.md 中的使用說明 根據 `AGENTS.md`,AI 代理會: ```markdown When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively. How to use skills: - Invoke: Bash("openskills read <skill-name>") - The skill content will load with detailed instructions - Base directory provided in output for resolving bundled resources ``` 這意味著: 1. **自動檢查**: AI 會自動檢查所有可用技能 2. **智能匹配**: 根據技能描述匹配用戶請求 3. **按需載入**: 只在需要時載入技能內容 4. **資源訪問**: 可以訪問 scripts/ 和 references/ 中的資源 ## 🎯 技能描述的關鍵作用 **技能描述是唯一的觸發機制**,因為: - ✅ **始終在上下文中**: 技能描述在 AGENTS.md 中,AI 總是能看到 - ✅ **觸發判斷依據**: AI 根據描述判斷是否需要使用技能 - ✅ **不載入主體**: SKILL.md 主體只在觸發後才載入(節省 token) ### 您的技能描述分析 ```markdown "Grasshopper 參數化建模工作流程工具。當需要通過 MCP 協議與 Grasshopper 交互、 創建和管理組件、建立連接、設置參數、執行完整建模工作流程時使用。適用於: (1) 從 MMD 文件創建 Grasshopper 定義, (2) 執行 placement_info.json 工作流程, (3) 批量管理組件和連接, (4) 參數化建模的自動化流程, (5) 解析 component_info.mmd 和 part_info.mmd 文件" ``` **觸發關鍵詞:** - ✅ "Grasshopper" - 明確的領域標識 - ✅ "MCP 協議" - 技術棧標識 - ✅ "創建和管理組件" - 功能描述 - ✅ "MMD 文件" - 文件類型 - ✅ "placement_info.json" - 特定文件格式 - ✅ "component_info.mmd" / "part_info.mmd" - 具體文件名 ## 🔄 完整識別流程圖 ``` 用戶請求 ↓ AI 讀取 AGENTS.md(自動) ↓ 檢查 <available_skills> 列表 ↓ 匹配技能描述中的關鍵詞 ↓ 判斷是否需要使用技能 ↓ [是] → 執行 Bash("openskills read grasshopper-workflow") ↓ 載入 SKILL.md 主體內容 ↓ 根據 SKILL.md 中的引用 ↓ 按需載入 references/ 或 scripts/ ↓ 執行任務 ``` ## 💡 最佳實踐 ### 1. 技能描述要清晰 ✅ **好的描述**(您的技能): - 明確說明功能領域(Grasshopper 參數化建模) - 列出具體使用場景(5 個適用情況) - 包含關鍵技術詞彙(MCP 協議、MMD 文件) ❌ **不好的描述**: - "一個有用的工具"(太模糊) - 只說功能不說場景(缺少觸發條件) ### 2. 使用具體的關鍵詞 您的技能描述包含: - **領域**: Grasshopper、參數化建模 - **技術**: MCP 協議 - **文件類型**: MMD、JSON - **具體文件名**: component_info.mmd、part_info.mmd、placement_info.json - **操作類型**: 創建、管理、連接、設置、解析 ### 3. 保持 SKILL.md 簡潔 - ✅ 主體內容簡潔(<500 行) - ✅ 詳細內容放在 references/ - ✅ 腳本放在 scripts/ - ✅ 使用漸進式載入 ## 🧪 測試技能識別 您可以通過以下方式測試 AI 是否會識別您的技能: ### 測試請求 1: 明確匹配 ``` 請幫我從 component_info.mmd 生成 placement_info.json ``` **預期**: ✅ AI 應該識別並使用 `grasshopper-workflow` 技能 ### 測試請求 2: 部分匹配 ``` 我需要創建一些 Grasshopper 組件 ``` **預期**: ✅ AI 應該識別(匹配 "創建和管理組件") ### 測試請求 3: 間接匹配 ``` 幫我解析一個 MMD 文件 ``` **預期**: ✅ AI 應該識別(匹配 "解析 component_info.mmd") ## 📊 當前狀態 您的 `grasshopper-workflow` 技能: - ✅ **已安裝**: `.claude/skills/grasshopper-workflow/` - ✅ **已同步**: 在 `AGENTS.md` 中可見 - ✅ **描述完整**: 包含所有關鍵觸發條件 - ✅ **結構完整**: SKILL.md + 11 個腳本 + 4 個參考文檔 - ✅ **可被識別**: AI 代理可以自動識別並使用 ## 🎯 總結 AI 代理識別技能的機制: 1. **自動讀取 AGENTS.md** - 技能列表始終在上下文中 2. **智能匹配描述** - 根據技能描述中的關鍵詞匹配用戶請求 3. **按需載入內容** - 只在需要時載入 SKILL.md 和資源文件 4. **執行任務** - 使用技能中的腳本和文檔完成任務 您的技能已經完全配置好,AI 代理可以自動識別並使用它! --- ## 🖥️ Cursor IDE 中的使用 ### Cursor 與 OpenSkills Cursor 是一個 AI 代碼編輯器,也支持 OpenSkills 技能系統。在 Cursor 中使用技能的機制與 Claude Desktop 基本相同,但有一些 Cursor 特定的注意事項。 ### Cursor 中的技能識別 Cursor 中的 AI 代理(通常是 Claude)會: 1. **自動讀取 AGENTS.md** - Cursor 會自動掃描項目根目錄的 `AGENTS.md` 文件 - 讀取所有可用技能的描述 2. **智能匹配用戶請求** - 當您在 Cursor 的聊天界面中提出請求時 - AI 會檢查 `AGENTS.md` 中的技能列表 - 根據技能描述匹配您的請求 3. **自動調用技能** - 如果匹配成功,AI 會執行 `openskills read <skill-name>` - 載入技能內容到對話上下文中 ### Cursor 中的配置 #### 1. 確保 AGENTS.md 在項目根目錄 ``` your-project/ ├── AGENTS.md ← Cursor 會自動讀取 ├── .claude/ │ └── skills/ │ └── grasshopper-workflow/ └── ... ``` #### 2. 使用 Universal 模式(可選) 如果您同時使用 Cursor 和其他 AI 代理,可以使用 universal 模式: ```powershell # 安裝到 .agent/skills/(適用於所有代理) openskills install anthropics/skills --universal # 同步到 AGENTS.md openskills sync --universal ``` 這樣可以: - ✅ 避免與 Cursor 的內建功能衝突 - ✅ 在多個 AI 代理間共享技能 - ✅ 保持 `.claude/` 目錄專用於 Claude Code #### 3. 驗證 Cursor 可以訪問技能 在 Cursor 的終端中測試: ```powershell # 檢查技能是否安裝 openskills list # 測試讀取技能 openskills read grasshopper-workflow ``` ### Cursor 中的使用範例 #### 範例 1: 在 Cursor 聊天中請求 **您在 Cursor 聊天中輸入:** ``` 請幫我從 component_info.mmd 生成 placement_info.json ``` **Cursor AI 的處理:** 1. 讀取 `AGENTS.md`(自動) 2. 看到 `grasshopper-workflow` 技能描述 3. 匹配成功(包含 "MMD" 和 "placement_info.json") 4. 執行 `openskills read grasshopper-workflow` 5. 使用技能中的腳本完成任務 #### 範例 2: 在 Cursor 中編寫代碼 **您在 Cursor 中請求:** ``` 幫我寫一個腳本來解析 component_info.mmd ``` **Cursor AI 的處理:** 1. 識別需要使用 `grasshopper-workflow` 技能 2. 載入技能內容 3. 參考 `references/api_reference.md` 中的 MMDParser 說明 4. 使用 `scripts/parser_utils.py` 作為參考 5. 生成或修改代碼 ### Cursor 與 Claude Code 的區別 | 特性 | Claude Code | Cursor | |------|-------------|--------| | AGENTS.md 位置 | 項目根目錄 | 項目根目錄 | | 技能目錄 | `.claude/skills/` | `.claude/skills/` 或 `.agent/skills/` | | 自動識別 | ✅ 是 | ✅ 是 | | 技能調用方式 | `Bash("openskills read ...")` | `Bash("openskills read ...")` | | 內建插件 | 可能有衝突 | 無衝突(使用 universal 模式) | ### Cursor 最佳實踐 #### 1. 使用項目級安裝(推薦) ```powershell # 在項目根目錄 openskills install anthropics/skills openskills sync ``` 這樣每個項目都有獨立的技能配置。 #### 2. 使用 Universal 模式(多代理環境) 如果您同時使用 Cursor、Windsurf、Aider: ```powershell # 安裝到 .agent/skills/ openskills install anthropics/skills --universal openskills sync --universal ``` #### 3. 驗證 Cursor 可以訪問 在 Cursor 的終端中: ```powershell # 檢查 AGENTS.md 是否存在 Test-Path AGENTS.md # 檢查技能是否安裝 openskills list # 測試讀取 openskills read grasshopper-workflow ``` ### Cursor 中的調試 如果 Cursor 無法識別技能: 1. **檢查 AGENTS.md 位置** ```powershell # 確保在項目根目錄 Get-Location Test-Path AGENTS.md ``` 2. **檢查技能安裝** ```powershell openskills list ``` 3. **重新同步** ```powershell openskills sync -y ``` 4. **檢查 Cursor 設置** - 確保 Cursor 可以訪問項目文件 - 檢查是否有文件權限問題 ### Cursor 特定提示 1. **終端集成**: Cursor 的終端可以直接執行 `openskills` 命令 2. **文件監控**: Cursor 會監控 `AGENTS.md` 的變化 3. **上下文管理**: Cursor 會自動管理技能載入的上下文 4. **多項目支持**: 每個項目可以有獨立的技能配置 ### 總結:Cursor 中的使用 在 Cursor 中使用 OpenSkills 技能: - ✅ **機制相同**: 與 Claude Desktop 使用相同的識別機制 - ✅ **自動識別**: Cursor AI 會自動讀取 `AGENTS.md` 並匹配技能 - ✅ **無需額外配置**: 只要 `AGENTS.md` 在項目根目錄即可 - ✅ **支持 Universal 模式**: 可以與其他 AI 代理共享技能 您的 `grasshopper-workflow` 技能在 Cursor 中也可以正常使用!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AmemiyaLai/grasshopper-mcp-workflow'

If you have feedback or need assistance with the MCP directory API, please join our Discord server