Install
openclaw skills install @awoo129/yan-skill-router两阶段路由:embedding粗筛之后LLM精排,977技能里挑top5。中文query自动翻成英文再匹配,外加三重拒选防线,纯信息类查询直接踢到L0工具,别浪费LLM token。
openclaw skills install @awoo129/yan-skill-routerskill库大到977个以后,让LLM一条条翻着看太傻也太贵。这个router用两段路由解决:先embedding粗筛,再LLM精排。
from skill_router import SkillRouter
router = SkillRouter()
result = router.route("做一篇新生儿低血糖的系统综述")
# → top1: literature-search (96%)
print(router.route_formatted("帮我画个森林图"))
Query → BM25 + 翻译桥(双通道embedding) → RRF融合 → top5候选 → 拒选防线 → LLM精排
↓
拒选的走L0工具
三道防线:
skill超过50个以后,传统一条条审查的方案token成本就扛不住了。特别是中英文混着用的场景——用户说中文但skill库全是英文名。还有就是明确不想让LLM碰的信息查询类请求,路由器帮你拦外面。
路由引擎本身全本地跑:skill索引存在本地,embedding模型本地加载,query不走外部API。
L0工具层(技能全拒后的保底)可能调用外部API:PubMed、Semantic Scholar、TinyFish等。
这些工具的API key通过环境变量注入,详见tool_catalog.json中的${VAR_NAME}占位符。
拒选防线保证纯查询类请求不会进LLM上下文。