概述
安裝
工具列表
內容詳情
替代品
什麼是Skill Retriever?
Skill Retriever是一個智能的Claude Code組件檢索系統。它解決了社區組件碎片化的問題——目前有超過2,500個組件分散在56個GitHub倉庫中。當您需要完成特定任務時,Skill Retriever能夠智能地找到最相關的組件集合,自動處理依賴關係,並安全地安裝到您的Claude Code環境中。如何使用Skill Retriever?
Skill Retriever作為MCP服務器集成到Claude Code中。您只需在Claude Code中描述您的需求(如'我需要設置Git提交自動化'),系統就會搜索相關組件,檢查依賴和衝突,然後一鍵安裝。整個過程完全在Claude Code界面中完成,無需手動查找和配置。適用場景
Skill Retriever特別適合以下場景: 1. 需要擴展Claude Code功能但不知道有哪些可用組件 2. 需要完成複雜任務,涉及多個組件的協同工作 3. 擔心組件兼容性和安全性問題 4. 希望自動保持組件庫最新狀態 5. 需要安全掃描組件中的潛在風險主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}🚀 技能檢索器
技能檢索器是一個基於圖的MCP服務器,用於Claude Code組件檢索。給定一個任務描述,它能夠返回最小的正確組件集(包括代理、技能、命令、鉤子和MCP),並解決所有依賴關係。
🚀 快速開始
與Claude Code集成
- 添加到Claude Code的MCP配置:在
~/.claude/claude_desktop_config.json文件中添加以下內容:
{
"mcpServers": {
"skill-retriever": {
"command": "uv",
"args": ["run", "--directory", "/path/to/skill-retriever", "skill-retriever"]
}
}
}
- 重啟Claude Code:重啟Claude Code以加載MCP服務器。
可用工具
配置完成後,Claude Code可以使用以下工具:
| 工具 | 用途 |
|---|---|
| 搜索與安裝 | |
search_components |
根據任務描述查找組件 |
get_component_detail |
獲取特定組件的完整信息 |
install_components |
將組件安裝到.claude/目錄(自動記錄安裝結果) |
check_dependencies |
在安裝前檢查依賴關係和衝突 |
| 數據攝入 | |
ingest_repo |
對新的組件倉庫進行索引 |
| 同步管理 | |
register_repo |
跟蹤倉庫以進行自動同步 |
unregister_repo |
停止跟蹤倉庫 |
list_tracked_repos |
列出所有跟蹤的倉庫 |
sync_status |
獲取同步系統的狀態 |
start_sync_server |
啟動Webhook和輪詢器 |
stop_sync_server |
停止同步服務 |
poll_repos_now |
立即觸發輪詢 |
| 發現管道 | |
run_discovery_pipeline |
從GitHub發現並攝入新的技能倉庫 |
discover_repos |
在GitHub上搜索技能倉庫 |
get_pipeline_status |
獲取發現管道的配置 |
get_heal_status |
查看自動修復失敗的情況和狀態 |
clear_heal_failures |
清除跟蹤的失敗記錄 |
| 結果跟蹤 | |
report_outcome |
記錄使用結果(已使用、已移除、已棄用) |
get_outcome_stats |
獲取組件的成功/失敗統計信息 |
get_outcome_report |
查看有問題的組件和衝突 |
| 反饋引擎 | |
analyze_feedback |
分析模式以建議圖的改進 |
get_feedback_suggestions |
查看待處理的邊建議 |
review_suggestion |
接受或拒絕建議的邊 |
apply_feedback_suggestions |
將接受的建議應用到圖中 |
| 安全掃描 | |
security_scan |
對特定組件進行漏洞掃描(基於正則表達式) |
security_scan_llm |
使用LLM減少誤報進行掃描(需要API密鑰) |
security_audit |
對所有組件進行審計,按風險級別報告 |
backfill_security_scans |
對未掃描的現有組件進行掃描 |
示例對話
用戶:我需要設置使用常規提交的Git提交自動化
Claude:讓我搜索相關組件。
[調用search_components,查詢參數為 "git commit automation conventional commits"]
我找到了3個有幫助的組件:
1. **commit-command**(命令) - 以常規格式自動執行Git提交
- 得分:0.92
- 健康狀態:活躍(2天前更新)
- 令牌成本:450
2. **git-utils**(技能) - Git輔助函數
- 得分:0.85
- 依賴於:commit-command
3. **conventional-commits-hook**(鉤子) - 預提交驗證
- 得分:0.78
- 健康狀態:活躍
你想安裝這些組件嗎?
用戶:是的,請安裝
Claude:[調用install_components,組件ID為 ["davila7/commit-command", "davila7/conventional-commits-hook"]]
已將4個組件安裝到.claude/目錄:
- commands/commit.md
- skills/git-utils.md
- skills/shell-helpers.md(依賴項)
- hooks/conventional-commits.md
現在你可以使用`/commit`命令來創建常規提交了!
包含安全集成的工作流程
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code + 技能檢索器工作流程 │
│ │
│ 1. 用戶:"我需要JWT身份驗證" │
│ │ │
│ ▼ │
│ 2. Claude:search_components("JWT authentication") │
│ │ │
│ ▼ │
│ 3. 技能檢索器返回: │
│ ┌────────────────────────────────────────────────────┐ │
│ │ auth-jwt-skill │ │
│ │ 得分:0.89 │ │
│ │ 健康狀態:活躍(2天前) │ │
│ │ 安全狀態:⚠️ 中等(敏感環境密鑰) │ │
│ │ 令牌成本:320 │ │
│ │ │ │
│ │ crypto-utils │ │
│ │ 得分:0.72 │ │
│ │ 健康狀態:活躍 │ │
│ │ 安全狀態:✅ 安全 │ │
│ │ 令牌成本:180 │ │
│ └────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 4. Claude:"auth-jwt-skill有中等安全風險(從環境中訪問JWT_SECRET)。是否繼續?" │
│ │ │
│ ▼ │
│ 5. 用戶:"是的,對於JWT來說這是預期的" │
│ │ │
│ ▼ │
│ 6. Claude:install_components(["auth-jwt-skill"]) │
│ │ │
│ ▼ │
│ 7. 技能檢索器: │
│ - 解決依賴關係(添加crypto-utils) │
│ - 寫入.claude/skills/目錄 │
│ - 記錄INSTALL_SUCCESS結果 │
│ │ │
│ ▼ │
│ 8. Claude:"已安裝auth-jwt-skill + crypto-utils。注意:需要JWT_SECRET環境變量。" │
└─────────────────────────────────────────────────────────────────┘
✨ 主要特性
- 高效檢索:基於混合檢索(向量 + 圖)技術,能夠快速準確地找到所需組件。
- 自動同步:每小時自動輪詢倉庫更新,確保數據的及時性。
- 安全掃描:在攝入和按需掃描組件時,檢測安全漏洞,減少潛在風險。
- 反饋學習:通過執行結果反饋到圖中,不斷改進未來的推薦。
📦 安裝指南
# 安裝
uv sync
# 運行MCP服務器
uv run skill-retriever
💻 使用示例
基礎用法
# 搜索組件
search_components(query="git commit automation conventional commits")
# 安裝組件
install_components(["davila7/commit-command", "davila7/conventional-commits-hook"])
高級用法
# 運行安全掃描
security_scan(component_id="owner/repo/skill/name")
# 使用LLM進行安全掃描
security_scan_llm(component_id="owner/repo/skill/name")
📚 詳細文檔
當前索引
當前索引包含來自56個倉庫的2,561個組件,每小時自動發現並同步。
| 類型 | 數量 | 描述 |
|---|---|---|
| 技能 | 1,952 | 封裝領域專業知識和程序知識的可移植指令集 |
| 代理 | 492 | 具有隔離上下文和細粒度權限的專業AI角色 |
| 命令 | 40 | 斜槓命令(如/commit、/review等) |
| 鉤子 | 37 | 事件處理程序(如SessionStart、PreCompact等) |
| MCP | 37 | 用於外部集成的模型上下文協議服務器 |
| 設置 | 3 | 配置預設 |
頂級倉庫
| 倉庫 | 組件數量 | 描述 |
|---|---|---|
| sickn33/antigravity-awesome-skills | 722 | 跨領域精心策劃的大型技能集合 |
| VoltAgent/awesome-agent-skills | 232 | 200多個與Codex、Gemini CLI兼容的精心策劃的技能 |
| wshobson/agents | 226 | 具有129個技能的多代理編排 |
| davepoon/buildwithclaude | 158 | 全棧開發技能 |
| hesreallyhim/awesome-claude-code | 155 | 全面的Claude Code技能集合 |
| K-Dense-AI/claude-scientific-skills | 123 | 科學計算和研究技能 |
| zhayujie/chatgpt-on-wechat | 113 | 具有多平臺代理技能的微信機器人 |
| ComposioHQ/awesome-claude-skills | 85 | 與Rube MCP集成的自動化技能(Gmail、Slack、日曆) |
| Orchestra-Research/AI-Research-SKILLs | 80 | AI研究技能(微調、可解釋性、分佈式訓練、MLOps) |
| assafelovic/gpt-researcher | 78 | 深度研究代理技能 |
| BehiSecc/awesome-claude-skills | 61 | 文檔處理、安全、科學技能 |
| jeffallan/claude-skills | 56 | 社區Claude技能集合 |
| trailofbits/skills | 46 | Trail of Bits專注於安全的技能 |
| remotion-dev/skills | 35 | Remotion視頻渲染技能 |
| anthropics/skills | 17 | Anthropic官方技能(Excel、PowerPoint、PDF、技能創建器) |
解決的問題
Claude Code支持存儲在.claude/目錄中的自定義組件。
代理技能標準
技能是擴展Claude功能的指令文件夾。每個技能都包含一個SKILL.md markdown文件,其中包含名稱、描述和指令。技能採用漸進式披露方式,即最初只加載名稱和描述,只有在觸發時才加載完整的指令。
開放標準意味著技能可以在以下平臺上使用:
- Claude AI和Claude Desktop
- Claude Code
- Claude Agent SDK
- Codex、Gemini CLI、OpenCode等兼容平臺
組件類型解釋
| 類型 | 功能 | 使用場景 |
|---|---|---|
| 技能 | 將領域專業知識和程序知識封裝到可移植的指令中 | 可重複的工作流程、公司特定的分析、新功能 |
| 代理 | 具有隔離上下文和工具訪問權限的子進程 | 並行執行、專業任務、權限隔離 |
| 命令 | 觸發特定行為的斜槓命令(/name) |
快速操作、快捷方式、任務調用 |
| 鉤子 | 在事件(如SessionStart、PreCompact)上自動運行 | 上下文設置、自動保存、清理 |
| MCP | 連接到外部系統的模型上下文協議服務器 | 數據庫訪問、API、文件系統 |
技能、工具和子代理的比較
| 概念 | 類比 | 持久性 | 上下文 |
|---|---|---|---|
| 工具 | 錘子、鋸子、釘子 | 始終在上下文中 | 添加到主窗口 |
| 技能 | 如何建造書架 | 漸進式加載 | 名稱/描述 → SKILL.md → 引用 |
| 子代理 | 聘請專家 | 會話範圍 | 與父級隔離 |
關鍵見解:技能解決了上下文窗口問題。通過漸進式披露指令,它們避免了用可能永遠不需要的數據汙染上下文。
解決的問題
目前有1000多個社區組件分散在GitHub倉庫中。找到適合你任務的組件、理解它們的依賴關係並確保兼容性是一件痛苦的事情。 技能檢索器通過以下方式解決了這個問題:
- 將組件倉庫索引到可搜索的知識圖中。
- 理解組件之間的依賴關係。
- 準確返回給定任務所需的組件(不多也不少)。
- 直接將它們安裝到你的
.claude/目錄中。
架構
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code │
│ │
│ "我需要添加Git提交自動化" │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MCP客戶端(內置於Claude Code) │ │
│ │ │ │
│ │ tools/call: search_components │ │
│ │ tools/call: install_components │ │
│ │ tools/call: check_dependencies │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
│ stdio (JSON-RPC)
▼
┌─────────────────────────────────────────────────────────────────┐
│ 技能檢索器MCP服務器 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ 向量存儲 │ │ 圖存儲 │ │ 元數據存儲 │ │
│ │ Store │ │ Store │ │ Store │ │
│ │ (FAISS) │ │(FalkorDB/NX)│ │ (JSON) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
│ │ │ │ │
│ └────────────────┼────────────────────┘ │
│ ▼ │
│ ┌───────────────────────┐ │
│ │ 檢索管道 │ │
│ │ │ │
│ │ 1. 向量搜索 │ │
│ │ 2. 圖PPR │ │
│ │ 3. 得分融合 │ │
│ │ 4. 依賴解析 │ │
│ │ 5. 衝突檢查 │ │
│ │ 6. 上下文組裝 │ │
│ └───────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
工作原理
1. 攝入(索引倉庫)
當你攝入一個組件倉庫時:
倉庫 (GitHub)
│
▼
┌──────────────────┐
│ 克隆到臨時目錄 │
└──────────────────┘
│
▼
┌──────────────────┐ 策略(首個匹配策略生效):
│ 爬蟲 │ 1. Davila7Strategy: cli-tool/components/{type}/
│ (基於策略)│ 2. PluginMarketplaceStrategy: plugins/{name}/skills/
└──────────────────┘ 3. FlatDirectoryStrategy: .claude/{type}/
│ 4. GenericMarkdownStrategy: 任何帶有名稱前置元數據的*.md文件
│ 5. AwesomeListStrategy: README.md中的精選列表
│ 6. PythonModuleStrategy: 帶有文檔字符串的*.py文件
▼
┌──────────────────┐
│ 實體解析器 │ 使用以下方法對相似組件進行去重:
│ (模糊匹配 + 嵌入) │ - RapidFuzz token_sort_ratio (階段1)
└──────────────────┘ - 嵌入餘弦相似度 (階段2)
│
▼
┌──────────────────┐
│ 索引到: │
│ - 圖節點 │ 組件 → 具有類型和標籤的節點
│ - 圖邊 │ 依賴關係 → DEPENDS_ON邊
│ - 向量存儲 │ 用於語義搜索的嵌入
│ - 元數據 │ 用於安裝的完整內容
└──────────────────┘
2. 檢索(查找組件)
當你搜索組件時:
查詢:"使用常規提交的Git提交自動化"
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 查詢規劃 │
│ │
│ - 提取實體(關鍵字、組件名稱) │
│ - 確定複雜度(簡單/中等/複雜) │
│ - 決定:是否使用PPR?是否使用流程剪枝? │
│ - 檢測抽象級別(代理 vs 命令 vs 鉤子) │
└───────────────────────────────────────────────────────────────┘
│
┌───────────┴───────────┐
▼ ▼
┌───────────────┐ ┌───────────────────────┐
│ 向量搜索 │ │ 圖PPR (PageRank) │
│ │ │ │
│ 語義 │ │ 遵循依賴 │
│ 相似度 │ │ 邊以查找 │
│ 通過FAISS │ │ 相關組件 │
└───────────────┘ └───────────────────────┘
│ │
└───────────┬───────────┘
▼
┌───────────────────────────────────────────────────────────────┐
│ 得分融合 │
│ │
│ 綜合得分 = α × 向量得分 + (1-α) × 圖得分 │
│ 如果指定了組件類型,則進行過濾 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 傳遞依賴解析 │
│ │
│ 如果 "commit-command" 依賴於 "git-utils",而 "git-utils" 依賴於 "shell-helpers" → 則包含所有三個組件 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 衝突檢測 │
│ │
│ 檢查所選組件之間的 CONFLICTS_WITH 邊 │
│ 如果將安裝不兼容的組件,則發出警告 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 上下文組裝 │
│ │
│ - 按類型優先級排序(代理 > 技能 > 命令) │
│ - 估計每個組件的令牌成本 │
│ - 保持在令牌預算內 │
│ - 為每個推薦生成理由 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 結果 │
│ │
│ [ │
│ { id: "davila7/commit-command", score: 0.92, │
│ rationale: "高語義匹配 + 3個依賴項" }, │
│ { id: "davila7/git-utils", score: 0.85, │
│ rationale: "commit-command的必需依賴項" } │
│ ] │
└───────────────────────────────────────────────────────────────┘
3. 安裝
當你安裝組件時:
install_components(["davila7/commit-command"])
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 解析依賴關係 │
│ │
│ commit-command → [git-utils, shell-helpers] │
│ 總共:3個組件需要安裝 │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────┐
│ 寫入.claude/ │
│ │
│ .claude/ │
│ ├── commands/ │
│ │ └── commit.md ← commit-command │
│ └── skills/ │
│ ├── git-utils.md ← 依賴項 │
│ └── shell-helpers.md ← 傳遞依賴項 │
└───────────────────────────────────────────────────────────────┘
4. 發現管道 (OSS-01, HEAL-01)
自動從GitHub發現並攝入高質量的技能倉庫:
┌─────────────────────────────────────────────────────────────────┐
│ 發現管道 │
│ │
│ ┌──────────────────┐ │
│ │ OSS Scout │ 在GitHub上搜索技能倉庫: │
│ │ │ - 8個搜索查詢(claude、skills等) │
│ │ discover() │ - 最小星數:5 │
│ │ ─────────────▶ │ - 最近活動:180天 │
│ └────────┬─────────┘ - 質量評分(星數、主題等) │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ 過濾與評分 │ 得分 = 星數 (40) + 近期活動 (20) │
│ │ │ + 主題 (20) + 描述 (10) │
│ │ 最低得分:30 │ + 分支數 (10) │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ 攝入新倉庫 │ 克隆 → 爬取 → 去重 → 索引 │
│ │ (每次運行最多10個) │ 使用與ingest_repo相同的管道 │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ 自動修復器 │ 跟蹤失敗情況: │
│ │ │ - CLONE_FAILED, NO_COMPONENTS │
│ │ 最大重試次數:3 │ - NETWORK_ERROR, RATE_LIMITED │
│ └──────────────────┘ 自動重試可修復的失敗 │
└─────────────────────────────────────────────────────────────────┘
5. 自動同步 (SYNC-01, SYNC-02)
倉庫每小時自動輪詢更新。輪詢器在第一次工具調用時啟動,無需手動激活:
┌─────────────────────────────────────────────────────────────────┐
│ 同步管理器 │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────┐ │
│ │ Webhook服務器 │ │ 倉庫輪詢器 │ │
│ │ (端口9847) │ │ (默認每小時) │ │
│ │ │ │ │ │
│ │ POST /webhook │ │ GET /repos/{owner}/{repo} │ │
│ │ ← GitHub推送 │ │ → GitHub API │ │
│ └────────┬─────────┘ └──────────────┬───────────────┘ │
│ │ │ │
│ └─────────────┬─────────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 檢測到更改? │ │
│ │ (新提交SHA) │ │
│ └──────────┬──────────┘ │
│ │ 是 │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ 重新攝入倉庫 │ │
│ │ (增量式) │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
6. 反饋循環 (LRNG-04, LRNG-05, LRNG-06)
執行結果反饋到圖中,以改進未來的推薦:
┌─────────────────────────────────────────────────────────────────┐
│ 反饋循環 │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 結果跟蹤 (LRNG-05) │ │
│ │ │ │
│ │ install_components() │ │
│ │ │ │ │
│ │ ├── 成功 → INSTALL_SUCCESS + 增加使用次數 │ │
│ │ └── 失敗 → INSTALL_FAILURE + 跟蹤上下文 │ │
│ │ │ │
│ │ report_outcome() │ │
│ │ ├── USED_IN_SESSION → 使用次數++ │ │
│ │ ├── REMOVED_BY_USER → 負面反饋 │ │
│ │ └── DEPRECATED → 棄用標誌 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 基於使用的提升 (LRNG-04) │ │
│ │ │ │
│ │ 選擇率提升: │ │
│ │ 高選擇率 → +50% 得分提升 │ │
│ │ 低選擇率 → 無提升 │ │
│ │ │ │
│ │ 共同選擇提升: │ │
│ │ 經常一起選擇 → 每個 +10% (最大30%) │ │
│ │ │ │
│ │ 最終得分 = 基礎得分 × 提升因子 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 反饋引擎 (LRNG-06) │ │
│ │ │ │
│ │ analyze_feedback() 發現模式: │ │
│ │ │ │
│ │ 共同選擇 (≥3) → 建議 BUNDLES_WITH 邊 │ │
│ │ 共同失敗 (≥2) → 建議 CONFLICTS_WITH 邊 │ │
│ │ │ │
│ │ 人工審核建議 via review_suggestion() │ │
│ │ 接受的建議 → apply_feedback_suggestions() │ │
│ │ 新邊添加到圖中並帶有置信度分數 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
關鍵見解:系統從實際使用中學習。一起工作良好的組件會得到提升,一起失敗的組件會被標記為衝突。這創建了一個自我改進的推薦引擎。
7. 安全掃描 (SEC-01)
在攝入和按需掃描組件時,檢測安全漏洞:
┌─────────────────────────────────────────────────────────────────┐
│ 安全掃描器 │
│ │
│ 基於Yi Liu等人的 "Agent Skills in the Wild" 研究: │
│ - 26.1%的技能包含易受攻擊的模式 │
│ - 5.2%顯示惡意意圖指標 │
│ - 帶有腳本的技能更容易受到攻擊(2.12倍) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 漏洞檢測 │ │
│ │ │ │
│ │ 數據洩露 (13.3%) │ │
│ │ - HTTP POST 帶有數據負載 │ │
│ │ - 文件讀取 + 外部請求 │ │
│ │ - Webhook端點 │ │
│ │ │ │
│ │ 憑證訪問 │ │
│ │ - 環境變量收集 │ │
│ │ - SSH密鑰 / AWS憑證訪問 │ │
│ │ - 敏感環境變量 (API_KEY, SECRET, TOKEN) │ │
│ │ │ │
│ │ 權限提升 (11.8%) │ │
│ │ - 通過變量插值進行Shell注入 │ │
│ │ - 動態代碼執行 (eval/exec) │ │
│ │ - sudo執行,chmod 777 │ │
│ │ - 下載並執行模式 │ │
│ │ │ │
│ │ 混淆 (惡意意圖) │ │
│ │ - 十六進制編碼的字符串 │ │
│ │ - Unicode轉義符 │ │
│ │ - 字符串拼接混淆 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 風險評估 │ │
│ │ │ │
│ │ 風險級別:安全 → 低 → 中等 → 高 → 嚴重 │ │
│ │ │ │
│ │ 風險得分 (0-100): │ │
│ │ 基礎得分 = 發現結果權重之和 │ │
│ │ 腳本乘數 = 如果有腳本則為1.5倍 │ │
│ │ │ │
│ │ 每個組件存儲: │ │
│ │ - 安全風險級別 │ │
│ │ - 安全風險得分 │ │
│ │ - 安全發現結果數量 │ │
│ │ - 是否有腳本 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 集成點 │ │
│ │ │ │
│ │ 攝入:在ingest_repo()期間掃描 │ │
│ │ 檢索:在搜索結果中包含安全狀態 │ │
│ │ 按需:security_scan() 和 security_audit() 工具 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
關鍵見解:安全掃描在潛在易受攻擊的模式進入你的代碼庫之前捕獲22%以上的問題。系統標記數據洩露、憑證訪問、權限提升和代碼混淆。
當前索引統計 (2,561個組件):
| 風險級別 | 數量 | 百分比 |
|---|---|---|
| 安全 | 796 | ~49% |
| 低 | 2 | ~0.1% |
| 中等 | 19 | ~1.2% |
| 高 | 8 | ~0.5% |
| 嚴重 | 202 | ~12% |
| 未掃描 | 600 | ~37% |
頂級發現模式 (在嚴重組件中):
| 模式 | 數量 | 備註 |
|---|---|---|
shell_injection |
424 | 許多是markdown中的bash示例(誤報) |
webhook_post |
87 | Discord/Slack Webhook URL |
env_harvest_all |
74 | process.env / os.environ 訪問 |
ssh_key_access |
51 | 對 .ssh/ 路徑的引用 |
http_post_with_data |
38 | HTTP POST 帶有數據負載 |
已知限制:
shell_injection模式對markdown中的bash代碼塊存在誤報。- Webhook模式會標記合法的集成(Discord機器人、Slack通知)。
8. LLM輔助的安全分析 (SEC-02)
在正則表達式掃描之上的可選層,使用Claude減少誤報:
┌─────────────────────────────────────────────────────────────────┐
│ LLM安全分析器 (SEC-02) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 使用場景 │ │
│ │ │ │
│ │ - 組件被正則表達式掃描標記為高/嚴重風險 │ │
│ │ - 懷疑存在誤報(文檔中的shell命令) │ │
│ │ - 在安裝嚴重組件之前需要確認信心 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 分析過程 │ │
│ │ │ │
│ │ 1. 運行正則表達式掃描 (SEC-01) 以獲取發現結果 │ │
│ │ 2. 將發現結果 + 組件內容發送給Claude │ │
│ │ 3. Claude分析每個發現結果: │ │
│ │ - 它是在文檔中還是可執行代碼中? │ │
│ │ - 它是合法的功能(JWT訪問環境變量)?│ │
│ │ - 上下文:通知技能中的Webhook = 預期 │ │
│ │ 4. 返回每個發現結果的裁決: │ │
│ │ - TRUE_POSITIVE: 真正的安全問題 │ │
│ │ - FALSE_POSITIVE: 安全,錯誤標記 │ │
│ │ - CONTEXT_DEPENDENT: 取決於使用情況 │ │
│ │ - NEEDS_REVIEW: 無法確定,需要人工審核 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 調整後的風險得分 │ │
│ │ │ │
│ │ 原始得分 = 75 (嚴重,5個發現結果) │ │
│ │ │ │
│ │ LLM分析: │ │
│ │ - 3 × FALSE_POSITIVE (markdown中的bash) │ │
│ │ - 1 × TRUE_POSITIVE (環境變量收集) │ │
│ │ - 1 × CONTEXT_DEPENDENT │ │
│ │ │ │
替代品












