SkillSeek Skill 技能

万级 SKILL.md 的两阶段开源检索器

技能简介

SkillSeek 是一个开源的 Agent Skill 检索器(论文 AACL-IJCNLP 2027),通过标准两阶段检索(bi-encoder 粗排 + cross-encoder 重排)在不上 LLM 的前提下从上万份 SKILL.md 中挑出最相关的几条,并通过 MCP 暴露给任何 MCP 客户端。仓库采用 MIT 协议,是 SkillsBench 基准测试中表现优于 LLM 检索循环的 BM25 + 向量混合方案:实验显示,BM25 单独在三组设置上与 LLM 检索循环持平或胜出,单次试验花费从 $51.30 降到 $27.54。

核心能力

  • 两阶段检索:先用 BGE-base bi-encoder 召回 20 条候选,再用 bge-reranker-v2-m3 cross-encoder 重排到 top-k,reranker 默认 CPU 运行。
  • 零 LLM 调用:检索路径完全不调 LLM,每次任务只付向量化与重排代价,对大型技能池成本极低。
  • MCP 原生暴露:通过 stdio 或 HTTP 注册,agent 可见 skill_lookup(query, k) / skill_load(name) / skill_list() 三件套工具。
  • SKILL.md 索引:扫描 SKILLS_DIR 下每个 /SKILL.md 的 name + description + 4 个 Tool-REX 标签,索引时不读 body(实验证明读 body 让 pass rate 掉 3.2%)。
  • Tool-REX 增强:每个技能配 1 句功能描述 + 4 个标签(文件类型 / 主要操作),可离线用 LLM 一次性生成,提高大体量池子检索质量。
  • HTTP / stdio 双传输:单机用 stdio 注册,多 agent / 多容器共享用 HTTP 暴露。
  • 多 LLM profile 构建器:profile builder 支持 OpenRouter、Anthropic、OpenAI、Gemini、Kimi、Z.ai、MiniMax 与本地 vLLM。

安装配置

  • 环境前置:Python 3.12,需要本地预装好至少一个 MCP 客户端(Claude Code / Codex / Cursor 等)。
  • 安装:克隆仓库 git clone https://github.com/guanqun-yang/SkillSeek && cd SkillSeek,python -m venv .venv && source .venv/bin/activate,pip install -r requirements.txt。
  • Claude Code stdio 注册:claude mcp add skillseek -e SKILLS_DIR=/path/to/skills -e MCP_TEXT_VARIANT=baseline -- /path/to/SkillSeek/.venv/bin/python /path/to/SkillSeek/mcp_server/skills_mcp.py。
  • HTTP 共享模式:SKILLS_DIR=/path/to/skills MCP_TEXT_VARIANT=baseline MCP_TRANSPORT=http MCP_PORT=8002 python mcp_server/skills_mcp.py,再用 claude mcp add --transport http skillseek http://localhost:8002/mcp 注册。

使用步骤

  • 第 1 步:把目标技能池放到一个目录,每个技能是一个含 SKILL.md 的子目录,名字 + description 写在 SKILL.md 顶部 YAML。
  • 第 2 步:可选地用 python scripts/build_toolrex_profiles.py --pool /path/to/skills --out data/toolrex_profiles_mine.json 离线生成 Tool-REX profile,提升大体量池检索质量;设置 OPENROUTER_API_KEY 或其他 LLM Key。
  • 第 3 步:按 stdio 或 HTTP 方式注册 SkillSeek 到 MCP 客户端;大池子把 MCP_TOOLREX_PATH 指到 profile 文件路径。
  • 第 4 步:在客户端对话里用 skill_lookup("vector store benchmark", k=5) 调取最相关的几条技能,再 skill_load(name) 加载完整 SKILL.md。
  • 第 5 步:按 docs/reproduce.md 在 SkillsBench 或 Liu et al. (2026) 34K pool 上复现论文实验,验证 liu_baseline/ 重新实现的对照基线。

适用场景

  • 大体量技能市场导航:当你的 SKILL.md 数量过百(10K+),靠 LLM 检索循环 token 费用太高时切到 SkillSeek。
  • 多 agent 共享池:把检索服务用 HTTP 暴露给多个 agent,避免每个 agent 都跑一遍向量化。
  • SkillsBench 评估:研究人员可直接用仓库脚本在 SkillsBench 池子上对比 BM25 与 LLM 检索。
  • 企业私有 skill hub:把团队沉淀的 SKILL.md 放进 skill 池,让 Claude Code / Codex 都能以最小代价挑到最合适的 skill。
  • 离线工具集发现:Tool-REX profile 离线生成一次后无需联网,提升数据敏感场景的可用性。

适用人群

  • 维护 100+ SKILL.md 的开发者 / 平台团队;
  • Agent 框架作者想要"低成本技能发现"能力;
  • NLP / 信息检索方向的研究者(论文 + 开源代码双轨发布);
  • 企业 IT 想让多个 agent 共享同一份技能库;
  • SkillsBench 用户做基线对比。

工作原理

SkillSeek 把技能检索视为标准的语义搜索问题:先用 BGE-base 把 query 和每个 SKILL.md 的 name+description+tags 编码到同一向量空间,取 top 20 候选;再让 bge-reranker-v2-m3 精排回 top k;整个流程不上 LLM,因此每次任务的成本可预测且极低。Tool-REX 是为大体量池子设计的 profile 增强:用 LLM 离线给每个技能写 1 句功能描述 + 4 个标签(文件类型 / 主要操作),profile 写入索引,避免 agent 在 SKILL.md body 上花 token;论文显示在大体量池(34K)上 profile 增强后 pass@1 显著高于基线。

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论