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:
iven
2026-03-30 00:54:11 +08:00
parent eed26a1ce4
commit 5595083b96
6 changed files with 565 additions and 11 deletions

View File

@@ -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: 智能编排