技能库
基于RAG的人工智能代理技能检索系统。可扩展的长期存储,通过MCP进行语义搜索。
技能库 用选择性语义检索取代了“将所有技能前沿内容转储到上下文中”的方法。代理技能存储为Markdown文件,并使用向量嵌入进行索引——只有相关技能在需要时才会加载,从而保持上下文简洁。
✨ 特性
- 🔍 语义搜索 --使用嵌入式矢量搜索,通过含义而不仅仅是关键字来查找技能
- 🏠 完全本地化 -没有API密钥,没有云。使用SQLite+SQLite-vec进行存储,并使用本地变压器模型进行嵌入
- 🤖 代理人不可知 --可与Claude Code、Codex、OpenClaw、Gemini和任何兼容MCP的代理配合使用
- 📂 双作用域存储 --全球技能(
~/.skill-depot/)无处不在,项目技能(.skill-depot/)通过git同步 - ⚡ 自动发现 --在设置过程中从您的AI代理中查找现有技能
- 🔌 MCP协议 --作为MCP服务器与9个技能管理工具无缝集成
- 📊 分层细节级别 --三个层次的细节(摘录→ 概述→ 完整内容)以最大限度地减少令牌使用
- 📈 活动评分 --常用技能在搜索结果中自动排名较高
- 🔗 关系跟踪 --将相关技能联系在一起,以便代理人发现相关知识
🚀 快速开始
1.初始化
npx skill-depot init这将:
- 创建
~/.skill-depot/全球目录 - 在Claude Code、Codex、OpenClaw目录中扫描现有技能
- 让您通过交互式清单选择要导入的技能
- 下载嵌入模型(约80MB,一次性)
- 索引所有导入的技能
2.配置您的代理
将技能库添加到代理的MCP配置中:
克劳德代码 (~/.claude/mcp.json):
{
"mcpServers": {
"skill-depot": {
"command": "npx",
"args": ["skill-depot", "serve"]
}
}
}Codex/OpenClaw/Cursor:在代理的设置中添加相同的MCP服务器配置。
3.使用
您的代理现在可以访问这些工具:
| 工具 | 说明 |
|---|---|
skill_search | 语义搜索--接受可选 context 为了更好的相关性 |
skill_preview | 在不加载完整内容的情况下获得结构化的概述(标题+第一句话) |
skill_read | 加载技能的全部内容 |
skill_learn | 学习新东西——创造或附加到技能中(提升) |
skill_save | 保存新技能并将其编入索引 |
skill_update | 更新现有技能 |
skill_delete | 删除技能 |
skill_reindex | 重建搜索索引 |
skill_list | 列出所有索引技能 |
📖 运作原理
问题
传统代理技能系统负载 全部 每次会话都将技能文件frontmatter放入代理的上下文窗口。由于拥有庞大的技能库,这会在无关的信息上浪费宝贵的上下文。
解决方案
技能库充当 RAG层 对于代理技能:
- 技能存储为带有YAML frontmatter的Markdown文件
- 使用局部变换器模型将每种技能嵌入384维向量中
- 当代理需要技能时,它会按意义搜索——只返回最相关的技能
- 结果包括a
hasOverviewflag——代理可以加载结构化的概述(skill_preview)或完整内容(skill_read)
分层细节级别
技能库提供三个细节级别的上下文,以最大限度地减少令牌的使用:
| 级别 | 工具 | 你得到什么 | 典型尺寸 |
|---|---|---|---|
| L0——代码段 | skill_search | 200个字符预览+元数据 | ~200个字符 |
| L1——概述 | skill_preview | 标题+每节第一句 | ~500-2000个字符 |
| L2——已满 | skill_read | 完成原始降价 | 无限制 |
代理可以逐步加载详细信息——检查代码片段,预览大纲,并在需要时仅加载完整内容:
Agent → skill_search("deploy nextjs to vercel")
← [{ name: "deploy-vercel", score: 0.92, snippet: "...", hasOverview: true }, ...]
Agent → skill_preview("deploy-vercel")
← { overview: "## Steps\nInstall the Vercel CLI.\n\n## Configuration\nSet environment variables." }
Agent → skill_read("deploy-vercel")
← Full markdown content of the skill上下文感知搜索
传递可选 context 参数到 skill_search 以获得更相关的结果。在生成搜索嵌入之前,上下文与查询相结合:
Agent → skill_search({ query: "deploy", context: "Next.js app with Vercel, fixing CI pipeline" })
← deploy-vercel ranks higher than deploy-aws because the context narrows the searchAgent学习
代理人可以使用以下方式即时保存知识 skill_learn如果技能不存在,它就被创造出来了。如果是这样,新内容将附加一个 --- 标签、分隔符和标签/关键字被自动合并。
Agent → skill_learn({ name: "nextjs-gotchas", content: "API routes cache by default...", tags: ["nextjs"] })
← { action: "created" }
Agent → skill_learn({ name: "nextjs-gotchas", content: "Image optimization requires sharp...", tags: ["images"] })
← { action: "appended" } // tags merged: ["nextjs", "images"]存储体系结构
~/.skill-depot/ # Global (all projects)
├── config.json
├── models/ # Embedding model cache
├── skills/ # Global skill files
└── index.db # SQLite + vector index
/.skill-depot/ # Project-level (git-synced)
├── skills/ # Project-specific skills
└── index.db # Project vector index (gitignored)🛠️ CLI参考
# Setup
skill-depot init # Interactive setup + agent discovery
skill-depot init --auto # Non-interactive, import everything
# Server
skill-depot serve --project . # Start MCP server (foreground/stdio)
skill-depot start --project . # Start as background daemon
skill-depot stop # Stop daemon
skill-depot status # Check daemon status
skill-depot restart # Restart daemon
# Skill Management
skill-depot add # Add a skill file (project scope)
skill-depot add --global # Add as global skill
skill-depot remove # Remove a skill
skill-depot list # List all skills
skill-depot list --global # List global skills only
skill-depot search # Search skills from CLI
# Maintenance
skill-depot reindex # Rebuild all indexes
skill-depot doctor # Health check📝 技能格式
技能使用标准的YAML frontmatter+Markdown——与Claude Code、Codex和其他代理使用的格式相同:
---
name: deploy-to-vercel
description: How to deploy a Next.js application to Vercel
tags: [deployment, vercel, nextjs]
keywords: [vercel cli, production build, environment variables]
related: [setup-env-vars, vercel-domains]
---
## Steps
1. Install the Vercel CLI: `npm i -g vercel`
2. Run `vercel` in the project root
3. Follow the prompts to link your project
...🏗️ 技术栈
| 组件 | 技术 |
|---|---|
| 语言 | TypeScript(ESM) |
| 数据库 | SQLite通过 better-sqlite3 |
| 矢量搜索 | sqlite-vec 扩展 |
| 嵌入件 | @xenova/transformers (all-MiniLM-L6-v2) |
| 回退 | BM25词频哈希 |
| 协议 | MCP通过 @modelcontextprotocol/sdk |
| CLI | commander + inquirer + chalk + ora |
🤝 贡献
欢迎投稿!这是一个开源项目。
# Clone and install
git clone https://github.com/your-username/skill-depot.git
cd skill-depot
pnpm install
# Development
pnpm dev # Watch mode build
pnpm test # Run tests
pnpm lint # Type check
pnpm build # Production build📄 许可证
麻省理工学院
