feat(skills): SemanticSkillRouter — TF-IDF + Embedding 混合路由
实现 SemanticSkillRouter 核心模块 (zclaw-skills): - Embedder trait + NoOpEmbedder (TF-IDF fallback) - SkillTfidfIndex 全文索引 - retrieve_candidates() Top-K 检索 - route() 置信度阈值路由 (0.85) - cosine_similarity 公共函数 - 单元测试覆盖 Kernel 适配层 (zclaw-kernel): - EmbeddingAdapter: zclaw-growth EmbeddingClient → Embedder 文档同步: - 01-intelligent-routing.md Phase 1+2 标记完成
This commit is contained in:
@@ -335,25 +335,32 @@ fn build_skill_aware_system_prompt(&self, base_prompt: Option<&String>) -> Strin
|
||||
|
||||
## 四、实现计划
|
||||
|
||||
### Phase 1: 基础架构 (当前)
|
||||
### Phase 1: 基础架构 ✅
|
||||
|
||||
- [x] 在系统提示词中注入技能列表
|
||||
- [x] 添加 `triggers` 字段到 SkillManifest
|
||||
- [x] 更新 SKILL.md 解析器
|
||||
- [x] SkillIndexMiddleware 注入轻量级技能索引
|
||||
|
||||
### Phase 2: 语义路由
|
||||
### Phase 2: 语义路由 ✅
|
||||
|
||||
1. **集成 Embedding 模型**
|
||||
- 使用本地模型 (如 `all-MiniLM-L6-v2`)
|
||||
- 或调用 LLM API 获取 embedding
|
||||
1. **Embedder trait 抽象**
|
||||
- ✅ `zclaw_skills::semantic_router::Embedder` trait
|
||||
- ✅ `NoOpEmbedder` (TF-IDF only fallback)
|
||||
- ✅ `EmbeddingAdapter` (kernel 层桥接 zclaw-growth `EmbeddingClient`)
|
||||
|
||||
2. **构建技能向量索引**
|
||||
- 启动时预计算所有技能描述的 embedding
|
||||
- 支持增量更新
|
||||
2. **SemanticSkillRouter 实现** (`crates/zclaw-skills/src/semantic_router.rs`)
|
||||
- ✅ TF-IDF 全文索引 (始终可用)
|
||||
- ✅ 可选 Embedding 向量索引 (70/30 混合权重)
|
||||
- ✅ `retrieve_candidates(query, top_k)` — 检索 Top-K 候选
|
||||
- ✅ `route(query)` — 完整路由(含置信度阈值 0.85)
|
||||
- ✅ `cosine_similarity` 公共函数
|
||||
- ✅ 增量索引重建 `rebuild_index()`
|
||||
|
||||
3. **实现 Hybrid Router**
|
||||
- 语义检索 Top-K 候选
|
||||
- LLM 精细选择
|
||||
3. **集成**
|
||||
- ✅ zclaw-runtime re-export `EmbeddingClient`
|
||||
- ✅ kernel `skill_router.rs` 适配层
|
||||
- ✅ 单元测试覆盖
|
||||
|
||||
### Phase 3: 智能编排
|
||||
|
||||
|
||||
Reference in New Issue
Block a user