SkillRanker:让 AI Agent 在数百个 Skill 中动态选择最优下一步

SkillRanker:让 AI Agent 学会在数百个 Skill 中动态选择最优下一步

SkillRanker 解决的是一个真实痛点:当一个 AI Coding Agent 装了几十个、上百个 Skill 时,”该用哪个” 本身变成了瓶颈——Skill 描述相似、上下文变化快、选错则浪费 Token 甚至走错方向。SkillRanker 是一个 Rust 编写的独立 CLI,通过 TypeSafe.ai 的 Jev 模型在运行时实时评估候选 Skill,为 Agent 动态推荐最匹配当前任务的那个。9 月 17 日首发登榜 GitHub Trending,9 月 19 日仍在榜。

功能与设计原则

SkillRanker 的核心是一个技能路由(Skill Routing)引擎,而非另一个 Skill 合集。它的设计原则是:

  • 实时上下文感知:输入是 Agent 当前对话、最近请求和工作区信号,而非静态的 Skill 名称列表
  • 结构化输出 + 弃权选项:Jev 返回带校准概率的结构化判断,并内置 “None of these” 选项,避免强行推荐
  • 可解释可复现:每轮排名结果均可记录、重放和本地校准,开发者能清楚知道为什么推荐了某个 Skill
  • Claude Code Hook 集成:提供原生 prompt-hook,直接嵌入 Agent 的决策循环

认可度

  • GitHub Star:50(截至 2026-09-19)
  • 编程语言:Rust(高性能 CLI,无运行时依赖)
  • 创建时间:2026-09-17,首日即进入 GitHub Trending
  • 技术支撑:Jev(TypeSafe.ai)——亚秒级带校准概率的结构化判断模型,455ms 响应,16 模型测试中唯一同时满足亚秒级和不确定性承认的模型
  • 同类比较:在技能路由方向,SkillRanker 是少数几个将动态排名机制实际落地的开源项目之一

链接

GitHub:https://github.com/Dicklesworthstone/skillranker

原作者

Dicklesworthstone(GitHub Username),是一位专注于 AI Agent 工作流工具的独立开发者,已在 GitHub 上发布 14 个 Claude Code Skill,涵盖 Tmux 多 Agent 编排、CASS 记忆系统、Destructive Command Guard 等多个实用工具链。

介绍

随着 Claude Code、Codex 等 Coding Agent 安装的 Skill 越来越多,一个新问题浮现出来:Skill 选对了是加速,选错了是浪费上下文甚至误导 Agent。传统方案靠 Agent 自己根据 Skill 名称猜测,或者让用户手动指定——前者不够智能,后者打断了 flow。

SkillRanker 把这个问题当作一个独立的推理任务来处理。它维护 Agent 当前可见的 Skill 清单(来自 Claude Code 的 ~/.claude/skills/ 或其他 Harness 的 Skill 注册表),结合对话上下文,调用 Jev 对候选 Skill 进行两轮比较:第一轮广度初筛,第二轮读取富文本摘要注意辨别细微差异。最终输出包含排序结果、置信度评分,以及 “None of these” 弃权标记——这意味着它不会强迫 Agent 选一个不合适的 Skill。

技术栈上,SkillRanker 用 Rust 编写,依赖 Jev 的 HTTP API 做推理,无需本地模型。超过 254 个候选 Skill 时,内置 Quill(FrankenSearch)先做本地预筛选再交 Jev,避免上下文爆炸。

特点

  • Jev 驱动:TypeSafe.ai 的 Jev 模型提供带概率校准的结构化判断,避免随机 hallucinated 排序
  • 双层比较架构:广度初筛 + 富文本细筛,两轮确保既不全错也不漏掉细微差异
  • Claude Code Hook 原生集成:提供 sr hook claude 命令,将排名结果直接注入 Agent prompt 循环
  • 弃权机制:内置 “None of these” 选项,Skill 不适用时可选择不推荐,防止误导 Agent
  • 本地反馈回路:支持本地校准和历史重放,开发者可针对自己的 Skill 库调优推荐策略
  • 隐私优先:排名推理在 TypeSafe API 端执行,本地状态不外传;Skill 元数据全部本地管理
  • 大规模 Skill 库支持:超过 254 个候选时自动触发 Quill 预筛选,不依赖外部向量库

使用方法

安装(需要 Rust 工具链):

cargo install skillranker

或从源码构建:

git clone https://github.com/Dicklesworthstone/skillranker
cd skillranker
cargo build --release
# 二进制在 target/release/sr

注册 Claude Code Hook(让 Agent 自动调用):

sr hook claude

基本调用流程:

# 离线演示(不需要 API Key)
sr demo --case useful

# 在线排名(需要 TypeSafe API Key)
export TYPESAFE_API_KEY=your_key_here
sr rank --allow-network

配置文件(~/.config/skillranker/config.toml):

typesafe_api_key = "your_key_here"  # 必填
model = "jev"                       # 默认 jev,可选 jev-fast
max_candidates = 254                 # 超过此数自动触发 Quill 预筛

使用场景与人群

适用场景:
– 团队维护了大量内部 Skill(10+),Agent 经常选错或选不到合适的
– 需要在 Skill 选型层面做可观测性和可解释性(为什么推荐了这个 Skill)
– 在 CI/CD 流程中希望 Agent 的 Skill 调用决策可被审计和复现
– 大型 Skill 库(100+)的动态路由,避免全量加载导致 Token 浪费

目标用户:
– AI Coding Agent 高级用户(Claude Code / Codex / Cursor)
– AI Engineering 团队(需要规范 Agent 行为、积累 Skill 资产)
– Skill 开发者(需要工具来验证自己的 Skill 在真实任务中是否被正确选中)

输入与输出案例

案例 1:日常 Bug 修复场景

输入(Agent 上下文片段):

“I’m fixing a null pointer exception in the user auth flow. The stack trace shows it happens in refreshToken().”

SkillRanker 排名输出(JSON 结构):

{
  "rankings": [
    {"skill": "diagnose", "score": 0.91, "reason": "debugging workflow, null pointer context"},
    {"skill": "code-review", "score": 0.73, "reason": "auth-related code path"},
    {"skill": "tdd", "score": 0.44, "reason": "less relevant to hotfix"},
    {"skill": "none_of_these", "score": 0.12, "reason": ""}
  ],
  "selected": "diagnose",
  "calibration": "high_confidence",
  "latency_ms": 487
}

Agent 最终调用 /diagnose Skill,进入系统性调试工作流,而非直接写代码。


案例 2:新功能实现场景

输入(Agent 上下文片段):

“User wants a new REST endpoint for listing all subscriptions with pagination and filtering by status.”

SkillRanker 排名输出:

{
  "rankings": [
    {"skill": "api-design", "score": 0.88, "reason": "REST endpoint design, pagination"},
    {"skill": "spec-driven", "score": 0.81, "reason": "new feature spec before implementation"},
    {"skill": "tdd", "score": 0.65, "reason": "write tests before code"},
    {"skill": "improve-codebase", "score": 0.21, "reason": "not a refactor context"}
  ],
  "selected": "api-design",
  "calibration": "high_confidence",
  "latency_ms": 512
}

Agent 先进入 API 设计 Skill,定义端点规范,再通过 TDD 循环实现。


GitHub: https://github.com/Dicklesworthstone/skillranker

评论区

0 条评论

登录后可评论。

Skill超级捕获手 2358 阅读