当用户通过 /experience-skill 提出技术问题时,你必须按以下顺序执行:
从用户问题中提取核心关键词(如用户问 "Python API 冲突导致 dnf 无法使用",则提取 "Python API" "dnf" "冲突" 等),然后执行检索命令(在 SKILL.md 所在目录的 scripts/ 子目录下执行):
cd scripts
uv run experience-skill search-experiences \
--query "<关键词>" \
--type SKILL \
--top-k 5
> 默认启用混合检索:同时搜索元数据(FTS5)和正文内容(grep)。结果中会标注匹配来源(元数据+正文 / 仅元数据 / 仅正文)。
>
> 如需仅搜索元数据(旧行为),添加 --metadata-only;如需仅搜索正文,添加 --content-only。
如果问题涉及文档参考资料,同时检索 Wiki:
uv run experience-skill search-experiences \
--query "<关键词>" \
--type WIKI \
--top-k 5
> 重要:禁止跳过本地知识检索直接回答。即使你自身具备相关知识,也必须先检查本地知识库是否存在现成的 Skill 或 Wiki。
找到 N 条结果 > 0),按 来源 字段路径读取对应文档:data/skill_hub//skill_def.md 获取完整内容data/wiki_hub/.md 获取完整内容找到 0 条结果),说明本地知识库中暂无相关内容,直接使用自身通用知识回答即可,无需特别说明。experience_skill/
├── abilities/ # 核心能力定义(skill + wiki 各五项)
├── scripts/ # Python 项目(uv 管理)
│ └── src/experience_skill_cli/
│ ├── cli.py # CLI 入口
│ ├── service/ # 业务服务层
│ ├── manager/ # 数据库操作层
│ ├── sqlite.py # SQLite + FTS5 封装
│ └── tokenizer/ # 中文分词扩展
├── data/ # 用户数据(不纳入版本控制)
│ ├── experience.db # SQLite 数据库
│ ├── skill_hub/ # Skill 仓库
│ └── wiki_hub/ # Wiki 仓库
├── example/ # 参考模板
├── SKILL.md # 本文件
└── .gitignore
> 以下命令假设当前工作目录为 SKILL.md 所在目录(即 experience_skill/)。
cd scripts
uv sync
scripts/ 目录下执行)所有命令通过 uv run experience-skill <子命令> 执行:
| 子命令 | 用途 |
|---|---|
| -------- | ------ |
sync | 同步 data/ 中所有经验到数据库 |
add-experiences | 添加 Skill/Wiki 经验到数据库 |
list-experiences | 分页列出经验,支持类型/名称/热门过滤 |
search-experiences | 全文检索经验(默认混合:FTS5 + 正文 grep) |
delete-by-ids | 按 ID 列表删除经验 |
delete-by-source | 按来源路径删除经验 |
delete-all | 清空所有经验数据 |
web | 启动 Web 管理界面 |
查看子命令详细参数:
uv run experience-skill <子命令> --help
cd scripts
uv run experience-skill web
默认监听 http://127.0.0.1:8080,支持 --port 和 --no-browser 参数。
组件针对 Skill、Wiki 分别提供创建、评估、检索、合并、优化五大标准化能力:
data/skill_hub、data/wiki_hub 专属目录,禁止自定义存储路径;skill_def.md(YAML front matter + Markdown 正文)格式,内容结构遵循 Agent Skills 规范。包含 name、description 等必需字段,以及 license、compatibility、metadata(含 keywords)、allowed-tools 等可选字段;skill_def.md(必需)、scripts/(可执行脚本)、references/(参考文档)、assets/(静态资源)、database.yaml(评测用例);skill_def.md 而非 SKILL.md 命名,是为了防止部分 Agent 框架通过 ~/.agents/skills/ 递归扫描自动发现并加载 skill_hub 中的 Skill。格式完全遵循 Agent Skills 规范,仅文件名不同;.md(YAML front matter + Markdown 正文)格式,与 Skill 相同的文件结构,包含 name、description、keywords、references 等元信息;共 1 个版本