目标:让 devbase 从"知识基底"升级为"能力 OS",提供 Skill 的存储、注册、发现、执行全生命周期管理。
理论基础:AKU Registry (arXiv:2603.14805)、OmniRoute Skills System、LM-Kit.NET SkillRegistry、AGNTCY ADS、Semantic Kernel PluginCollection、BMO Agent Skill System。
版本:v1.0 — Waves 16-20 已全部实现。本文档作为历史设计与实现记录保留,"Skill 市场"等未实现项已 defer 至
docs/ROADMAP.md阶段二。
| 领域 | 已有标准 | devbase 策略 |
|---|---|---|
| Skill 文件格式 | Kimi CLI / Clarity / BMO Agent 的 SKILL.md (Markdown + YAML frontmatter) |
直接兼容,不做自定义格式 |
| 执行协议 | Python/Bash/可执行文件 | Process-based,不内置 Wasm/容器 |
| 发现机制 | Embedding 语义搜索 (LM-Kit.NET FindMatchesWithEmbeddings) |
复用已有 embedding 基础设施 |
| 工具注册 | MCP + OpenAPI + LangChain (ToolRegistry) | Protocol-agnostic adapter |
Skill 的元数据存在 devbase 的 SQLite skills 表中,与 code_symbols、code_embeddings、code_call_graph 共享同一个知识基底。
这带来独特价值:cross-layer 查询。例如:
"找到所有与'代码审计'相关的 skill,然后审计这个仓库的 Rust 代码"
Skill Runtime 遵循三仓库架构的正交原则:
- Skill 的业务逻辑变化 不影响 MCP 协议格式
- 替换底层执行引擎(Python → Node.js)不影响 Skill 注册表
- 新增 GitHub 仓库 自动继承 所有已安装的 Skill
一个 Skill 是可复用的 AI 能力单元,包含:
skill-name/
├── SKILL.md # 元数据 + 指令(必需)
│ ├── YAML frontmatter: name, description, version, tags, inputs, outputs
│ └── Markdown body: 执行指令、工作流、示例
├── scripts/ # 可执行脚本(可选)
│ ├── run.py # 主入口
│ └── validate.sh # 校验脚本
└── references/ # 参考文档(可选)
YAML frontmatter 规范(与 Kimi CLI / Clarity 兼容):
---
name: code-audit
version: "1.0.0"
description: Audit a Rust codebase for common issues using devbase knowledge
author: devbase-team
tags: [rust, audit, security]
inputs:
- name: repo_id
type: string
description: Target repository ID in devbase
required: true
- name: severity
type: string
description: Minimum severity level
default: "warning"
outputs:
- name: report
type: markdown
description: Audit report in markdown
---Install → Register → Discover → Activate → Execute → Uninstall
| 阶段 | 操作 | 对应命令 / API |
|---|---|---|
| Install | 从 Git URL / 本地路径复制 Skill 文件到 ~/.local/share/devbase/skills/ |
devbase skill install <url> |
| Register | 解析 SKILL.md,写入 SQLite skills 表 |
自动(install 后) |
| Discover | 按标签/语义搜索匹配用户意图的 Skill | devbase skill search <query> |
| Activate | 将 Skill 上下文注入 AI system prompt | MCP devkit_skill_run |
| Execute | 调用 Skill 的 entry script,传入参数 | devbase skill run <name> --args |
| Uninstall | 从文件系统和注册表中移除 | devbase skill uninstall <name> |
内置 Skill(随 devbase 分发):
embed-repo— 调用local.py生成 embeddingssearch-workspace— 封装 hybrid + cross-repo + related symbolsknowledge-report— 封装generate_reportcode-audit— 组合上述工具做代码审计
自定义 Skill(用户安装):
- 从 GitHub URL 安装:
devbase skill install https://github.com/.../my-skill.git - 从本地路径安装:
devbase skill install ./my-skill/ - 支持版本管理和依赖声明(未来)
CREATE TABLE skills (
id TEXT PRIMARY KEY, -- skill 标识符(kebab-case)
name TEXT NOT NULL, -- 显示名称
version TEXT NOT NULL, -- SemVer
description TEXT NOT NULL, -- 一句话描述
author TEXT, -- 作者
tags TEXT, -- JSON array: ["rust", "audit"]
entry_script TEXT, -- 入口脚本路径(相对 skill 目录)
skill_type TEXT NOT NULL DEFAULT 'custom', -- builtin | custom | system
local_path TEXT NOT NULL, -- 本地绝对路径
inputs_schema TEXT, -- JSON Schema for inputs
outputs_schema TEXT, -- JSON Schema for outputs
embedding BLOB, -- f32 BLOB(语义搜索用)
installed_at TEXT NOT NULL, -- ISO 8601
updated_at TEXT NOT NULL, -- ISO 8601
last_used_at TEXT -- ISO 8601
);
CREATE INDEX idx_skills_tags ON skills(tags);
CREATE INDEX idx_skills_type ON skills(skill_type);
CREATE VIRTUAL TABLE skills_fts USING fts5(name, description, tags);CREATE TABLE skill_executions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
skill_id TEXT NOT NULL REFERENCES skills(id),
args TEXT, -- JSON: 传入参数
status TEXT NOT NULL, -- pending | running | success | failed | timeout
stdout TEXT, -- 标准输出
stderr TEXT, -- 标准错误
exit_code INTEGER,
started_at TEXT NOT NULL,
finished_at TEXT,
duration_ms INTEGER
);devbase skill
├── list [--type <builtin|custom|all>] [--json]
├── install <git-url|local-path> [--version <ver>]
├── uninstall <skill-id>
├── search <query> [--semantic] [--limit <n>]
├── run <skill-id> [--arg key=value] [--timeout <sec>]
├── info <skill-id>
├── validate <skill-id> # 校验 SKILL.md 格式
├── publish [--dry-run] # 打包为 git tag + release
└── sync --target <clarity|kimi> # 同步到外部 skill 系统
# 列出所有内置 skill
devbase skill list --type builtin
# 从 GitHub 安装社区 skill
devbase skill install https://github.com/juice094/devbase-skills/tree/main/code-audit
# 语义搜索与"代码审计"相关的 skill
devbase skill search "audit rust code for security issues"
# 运行 skill,传入参数
devbase skill run code-audit --arg repo_id=devbase --arg severity=error
# 验证本地 skill 格式
devbase skill validate ./my-custom-skill/┌─────────────────────────────────────────┐
│ SkillExecutor │
│ ├── load_skill(skill_id) → SkillMeta │
│ ├── resolve_interpreter(entry_script) │
│ │ ├── .py → python │
│ │ ├── .sh → bash (Git Bash on Win) │
│ │ ├── .ps1 → powershell │
│ │ └── binary → direct exec │
│ ├── spawn_process(args, env, timeout) │
│ ├── capture_stdout_stderr() │
│ └── return ExecutionResult │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Sandbox (轻量级隔离) │
│ ├── timeout: 30s default │
│ ├── cwd: skill 目录 │
│ ├── env: 注入 devbase 相关变量 │
│ │ ├── DEVBASE_REGISTRY_PATH │
│ │ ├── DEVBASE_SKILL_ID │
│ │ └── DEVBASE_HOME │
│ └── 禁止: 网络访问(未来可配置) │
└─────────────────────────────────────────┘
Skill 的 entry script 可以直接调用 devbase 的现有能力:
#!/usr/bin/env python3
# skills/embed-repo/scripts/run.py
import subprocess
import sys
repo_id = sys.argv[1]
subprocess.run([
"python", "tools/embedding-provider/local.py",
"--repo-id", repo_id,
"--device", "auto"
], check=True)或者通过 MCP 调用(更松耦合):
# 通过 devbase MCP stdio server 调用工具
from mcp import ClientSession, StdioServerParameters
params = StdioServerParameters(command="devbase", args=["mcp", "--transport", "stdio"])
# ... 调用 devkit_hybrid_search 等工具| Tool | 功能 | 状态 |
|---|---|---|
devkit_skill_list |
列出所有可用 skill(含元数据) | 规划中 |
devkit_skill_search |
语义搜索 skill | 规划中 |
devkit_skill_run |
执行指定 skill,传入参数 | 规划中 |
devkit_skill_install |
从 URL 安装 skill | 规划中 |
// AI 通过 MCP 调用 skill
{
"name": "devkit_skill_run",
"arguments": {
"skill_id": "code-audit",
"args": {
"repo_id": "devbase",
"severity": "warning"
}
}
}
// 返回
{
"status": "success",
"stdout": "## Audit Report\n...",
"stderr": "",
"exit_code": 0,
"duration_ms": 1250
}目标:建立 Skill 的存储层和 CLI 框架。
-
src/skill_runtime/schema.rs—skills/skill_executions表定义 -
src/skill_runtime/registry.rs— CRUD:install / list / uninstall / get -
src/skill_runtime/parser.rs— 解析 SKILL.md(YAML frontmatter + Markdown body) -
src/cli/skill.rs— CLI 子命令框架:devbase skill list - SQLite migration(Schema v14)
- 3 个内置 skill 模板:
embed-repo、search-workspace、knowledge-report
验收标准:
- ✅
devbase skill list --type builtin输出 3 个内置 skill - ✅
devbase skill install ./skills/embed-repo/成功写入 SQLite - ✅
devbase skill info embed-repo显示完整元数据
目标:让 AI 能发现正确的 skill。
-
devbase skill search <query>— 基于 LIKE 的文本搜索 -
devbase skill search <query> --semantic— 基于 embedding 的语义搜索(已完成:search_skills_semantic()已实现,--semanticCLI 标志已可用,56,722 code_embeddings 已生成) - Skill embedding 生成(已完成:
tools/embedding-provider/skills.py已可用,3 个 builtin skill 已有 384-dim embeddings) -
devbase skill validate <path>— 校验 SKILL.md 格式合规性
验收标准:
- ✅
devbase skill search "audit"返回code-audit devbase skill search "find bugs" --semantic返回code-audit(语义匹配)- ✅
devbase skill validate能检测出格式错误的 SKILL.md
目标:让 skill 能真正执行。
-
src/skill_runtime/executor.rs— Process-based 执行引擎 -
devbase skill run <id> --arg key=value— CLI 执行入口 - Sandbox:timeout、stdout/stderr capture、exit code handling
-
skill_executions表自动记录每次执行 - 内置 skill 实现:
embed-repo:调用local.pysearch-workspace:封装 keyword search workflowknowledge-report:封装 registry metrics report
验收标准:
- ✅
devbase skill run knowledge-report --arg repo_id=devbase成功生成报告 - ✅ 执行结果被记录到
skill_executions表 - ✅ 超时 skill 被自动 kill(timeout 参数已支持)
目标:让 AI 通过 MCP 调用 skill。
-
DevkitSkillListTool— MCP tool #32 -
DevkitSkillSearchTool— MCP tool #33 -
DevkitSkillRunTool— MCP tool #34 - 更新
ai_first_user.rs:验证 Skill Runtime 注册状态
验收标准:
- ✅ AI 能调用
devkit_skill_run执行 skill(通过 MCP stdio) - ✅
ai_first_user.rs新增 skill 调用验证步骤(3 builtin skills registered)
目标:skill 可分发、可同步。
-
devbase skill install <git-url>— 从 GitHub 安装(auto-detect http/https/git@) -
devbase skill publish—validate_skill_for_publish()+create_version_tag()+push_tag_to_remote() -
devbase skill sync --target clarity— 导出为 Clarity plan JSON(冲突解析:updated_at比对) - Skill 依赖管理 — Schema v15
dependencies列,Kahn 拓扑排序,DFS 环检测,自动安装缺失依赖 - Skill 市场 / Registry 服务 — ❌ 未开始,已 defer 至
docs/ROADMAP.md阶段二或 Future
| 现有模块 | Skill Runtime 如何使用 |
|---|---|
registry |
Skill 与 repo 关联:repo: frontmatter 字段 → repos 表外键 |
search/hybrid |
Skill 语义搜索复用 embedding 基础设施 |
semantic_index |
为 SKILL.md 的 description 生成 embedding |
mcp/ |
新增 3 个 MCP tools 暴露 skill 能力 |
vault/ |
Vault 笔记可标记 skill_type: true 自动转为 skill |
tools/embedding-provider/ |
内置 skill embed-repo 的底层实现 |
| 风险 | 缓解措施 |
|---|---|
| Skill 格式与 Kimi CLI / Clarity 不兼容 | 严格遵循现有 SKILL.md 规范,不自定义字段 |
| 执行引擎安全(恶意 skill) | Phase 1 不做网络 sandbox,但限制执行时间 + 只读 registry 路径 |
| 嵌入式 skill 过多导致 context 爆炸 | Skill 分级(builtin/custom),AI 默认只加载 builtin |
| 与现有 31 个 MCP tools 的功能重叠 | Skill = 组合编排,MCP tool = 原子操作,边界清晰 |
- Agent Knowledge Architecture — arXiv:2603.14805v1, 2026. AKU Registry + Knowledge Topology.
- OmniRoute Skills System — GitHub:
diegosouzapw/OmniRoute. SQLite-backed registry + executor + sandbox. - LM-Kit.NET SkillRegistry —
lm-kit.com. Semantic matching, hot reload, remote loading. - AGNTCY Agent Directory Service — arXiv:2509.18787v1. Schema + Indexing + Storage + Distribution layers.
- Semantic Kernel PluginCollection — Microsoft. Kernel as DI container for plugins.
- BMO Agent — GitHub:
joelhans/bmo-agent. Markdown+YAML skill format. - ToolRegistry — arXiv:2507.10593v1. Protocol-agnostic tool unification.
- devbase Three-Repositories Architecture —
docs/theory/three-repositories.md.