vault backup: 2026-06-09 23:15:17
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
---
|
||||
tags: [skill-search, 语义搜索, 技能发现, feature-flag]
|
||||
create time: 2026-06-09 22:30
|
||||
---
|
||||
|
||||
# EXPERIMENTAL_SKILL_SEARCH — 技能语义搜索
|
||||
|
||||
> Feature Flag: `FEATURE_EXPERIMENTAL_SKILL_SEARCH=1`
|
||||
> 实现状态:全部 Stub(8 个文件),布线完整
|
||||
> 引用数:21
|
||||
|
||||
## 一、功能概述
|
||||
## 概述
|
||||
|
||||
EXPERIMENTAL_SKILL_SEARCH 提供 DiscoverSkills 工具,根据当前任务语义搜索可用技能。目标是让模型在执行任务时自动发现和推荐相关的技能(包括本地和远程),无需用户手动查找。
|
||||
|
||||
## 二、实现架构
|
||||
> [!info]
|
||||
> Feature Flag: `FEATURE_EXPERIMENTAL_SKILL_SEARCH=1`
|
||||
> 实现状态:全部 Stub(8 个文件),布线完整
|
||||
|
||||
### 2.1 模块状态
|
||||
## 正文
|
||||
|
||||
### 实现架构
|
||||
|
||||
#### 模块状态
|
||||
|
||||
| 模块 | 文件 | 状态 | 说明 |
|
||||
|------|------|------|------|
|
||||
@@ -25,31 +32,22 @@ EXPERIMENTAL_SKILL_SEARCH 提供 DiscoverSkills 工具,根据当前任务语
|
||||
| SkillTool 集成 | `src/tools/SkillTool/SkillTool.ts` | **布线** | 动态加载所有远程技能模块 |
|
||||
| 提示集成 | `src/constants/prompts.ts` | **布线** | DiscoverSkills schema 注入 |
|
||||
|
||||
### 2.2 预期数据流
|
||||
#### 预期数据流
|
||||
|
||||
```
|
||||
模型处理用户任务
|
||||
│
|
||||
▼
|
||||
DiscoverSkills 工具触发 [需要实现]
|
||||
│
|
||||
├── 本地搜索:索引已安装技能元数据
|
||||
│ └── localSearch.ts → 技能名称/描述/关键字匹配
|
||||
│
|
||||
└── 远程搜索:查询技能市场/注册表
|
||||
└── remoteSkillLoader.ts → fetch + 解析
|
||||
│
|
||||
▼
|
||||
结果排序和过滤
|
||||
│
|
||||
▼
|
||||
返回推荐技能列表
|
||||
│
|
||||
▼
|
||||
模型使用 SkillTool 调用推荐技能
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["模型处理用户任务"] --> B{"DiscoverSkills 工具触发 需要实现"}
|
||||
B --> C["本地搜索: 索引已安装技能元数据"]
|
||||
C --> D["localSearch.ts -> 技能名称/描述/关键字匹配"]
|
||||
B --> E["远程搜索: 查询技能市场/注册表"]
|
||||
E --> F["remoteSkillLoader.ts -> fetch + 解析"]
|
||||
D --> G["结果排序和过滤"]
|
||||
F --> G
|
||||
G --> H["返回推荐技能列表"]
|
||||
H --> I["模型使用 SkillTool 调用推荐技能"]
|
||||
```
|
||||
|
||||
### 2.3 预取机制
|
||||
#### 预取机制
|
||||
|
||||
`prefetch.ts` 预期在用户提交输入前分析消息内容,提前搜索相关技能:
|
||||
|
||||
@@ -57,7 +55,7 @@ DiscoverSkills 工具触发 [需要实现]
|
||||
- `collectSkillDiscoveryPrefetch()` — 收集预取结果
|
||||
- `getTurnZeroSkillDiscovery()` — 获取 turn 0 的技能发现结果
|
||||
|
||||
## 三、需要补全的内容
|
||||
### 需要补全的内容
|
||||
|
||||
| 优先级 | 模块 | 工作量 | 说明 |
|
||||
|--------|------|--------|------|
|
||||
@@ -69,21 +67,21 @@ DiscoverSkills 工具触发 [需要实现]
|
||||
| 6 | `skillSearch/featureCheck.ts` | 小 | GrowthBook/配置门控 |
|
||||
| 7 | `skillSearch/signals.ts` | 小 | `DiscoverySignal` 类型定义 |
|
||||
|
||||
## 四、关键设计决策
|
||||
### 关键设计决策
|
||||
|
||||
1. **预取优化**:在用户提交前就开始搜索,减少首次响应延迟
|
||||
2. **本地+远程双搜索**:本地索引快速匹配 + 远程市场深度搜索
|
||||
3. **SkillTool 集成**:发现的技能通过 SkillTool 调用,不需要新的调用机制
|
||||
4. **独立于 MCP_SKILLS**:MCP_SKILLS 从 MCP 服务器发现,EXPERIMENTAL_SKILL_SEARCH 从技能市场发现
|
||||
|
||||
## 五、使用方式
|
||||
### 使用方式
|
||||
|
||||
```bash
|
||||
# 启用 feature(需要补全后才能真正使用)
|
||||
FEATURE_EXPERIMENTAL_SKILL_SEARCH=1 bun run dev
|
||||
```
|
||||
|
||||
## 六、文件索引
|
||||
### 文件索引
|
||||
|
||||
| 文件 | 职责 |
|
||||
|------|------|
|
||||
@@ -97,3 +95,8 @@ FEATURE_EXPERIMENTAL_SKILL_SEARCH=1 bun run dev
|
||||
| `src/services/skillSearch/featureCheck.ts` | 功能检查(stub) |
|
||||
| `src/tools/SkillTool/SkillTool.ts` | SkillTool 集成点 |
|
||||
| `src/constants/prompts.ts:95,335,778` | 提示增强 |
|
||||
|
||||
## 关联笔记
|
||||
|
||||
- [[claude-code-best/docs/features/mcp-skills]]
|
||||
- [[claude-code-best/docs/features/extensibility/skills]]
|
||||
|
||||
Reference in New Issue
Block a user