> ## Documentation Index
> Fetch the complete documentation index at: https://ccb.agent-aura.top/llms.txt
> Use this file to discover all available pages before exploring further.

# Experimental skill search

# EXPERIMENTAL\_SKILL\_SEARCH — 技能语义搜索

> Feature Flag: `FEATURE_EXPERIMENTAL_SKILL_SEARCH=1`
> 实现状态：全部 Stub（8 个文件），布线完整
> 引用数：21

## 一、功能概述

EXPERIMENTAL\_SKILL\_SEARCH 提供 DiscoverSkills 工具，根据当前任务语义搜索可用技能。目标是让模型在执行任务时自动发现和推荐相关的技能（包括本地和远程），无需用户手动查找。

## 二、实现架构

### 2.1 模块状态

| 模块                 | 文件                                              | 状态       | 说明                              |
| ------------------ | ----------------------------------------------- | -------- | ------------------------------- |
| DiscoverSkillsTool | `src/tools/DiscoverSkillsTool/prompt.ts`        | **Stub** | 空工具名                            |
| 预取                 | `src/services/skillSearch/prefetch.ts`          | **Stub** | 3 个函数全部空操作                      |
| 远程加载               | `src/services/skillSearch/remoteSkillLoader.ts` | **Stub** | 返回空结果                           |
| 远程状态               | `src/services/skillSearch/remoteSkillState.ts`  | **Stub** | 返回 null/undefined               |
| 信号                 | `src/services/skillSearch/signals.ts`           | **Stub** | `DiscoverySignal = any`         |
| 遥测                 | `src/services/skillSearch/telemetry.ts`         | **Stub** | 空操作日志                           |
| 本地搜索               | `src/services/skillSearch/localSearch.ts`       | **Stub** | 空操作缓存                           |
| 功能检查               | `src/services/skillSearch/featureCheck.ts`      | **Stub** | `isSkillSearchEnabled => false` |
| SkillTool 集成       | `src/tools/SkillTool/SkillTool.ts`              | **布线**   | 动态加载所有远程技能模块                    |
| 提示集成               | `src/constants/prompts.ts`                      | **布线**   | DiscoverSkills schema 注入        |

### 2.2 预期数据流

```
模型处理用户任务
      │
      ▼
DiscoverSkills 工具触发 [需要实现]
      │
      ├── 本地搜索：索引已安装技能元数据
      │   └── localSearch.ts → 技能名称/描述/关键字匹配
      │
      └── 远程搜索：查询技能市场/注册表
          └── remoteSkillLoader.ts → fetch + 解析
      │
      ▼
结果排序和过滤
      │
      ▼
返回推荐技能列表
      │
      ▼
模型使用 SkillTool 调用推荐技能
```

### 2.3 预取机制

`prefetch.ts` 预期在用户提交输入前分析消息内容，提前搜索相关技能：

* `startSkillDiscoveryPrefetch()` — 开始预取
* `collectSkillDiscoveryPrefetch()` — 收集预取结果
* `getTurnZeroSkillDiscovery()` — 获取 turn 0 的技能发现结果

## 三、需要补全的内容

| 优先级 | 模块                                 | 工作量 | 说明                     |
| --- | ---------------------------------- | --- | ---------------------- |
| 1   | `DiscoverSkillsTool`               | 大   | 语义搜索工具 schema + 执行     |
| 2   | `skillSearch/prefetch.ts`          | 中   | 用户输入分析和预取逻辑            |
| 3   | `skillSearch/remoteSkillLoader.ts` | 大   | 远程市场/注册表获取             |
| 4   | `skillSearch/remoteSkillState.ts`  | 小   | 已发现技能状态管理              |
| 5   | `skillSearch/localSearch.ts`       | 中   | 本地索引构建/查询              |
| 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 theme={null}
# 启用 feature（需要补全后才能真正使用）
FEATURE_EXPERIMENTAL_SKILL_SEARCH=1 bun run dev
```

## 六、文件索引

| 文件                                              | 职责              |
| ----------------------------------------------- | --------------- |
| `src/tools/DiscoverSkillsTool/prompt.ts`        | 工具 schema（stub） |
| `src/services/skillSearch/prefetch.ts`          | 预取逻辑（stub）      |
| `src/services/skillSearch/remoteSkillLoader.ts` | 远程加载（stub）      |
| `src/services/skillSearch/remoteSkillState.ts`  | 远程状态（stub）      |
| `src/services/skillSearch/signals.ts`           | 信号类型（stub）      |
| `src/services/skillSearch/telemetry.ts`         | 遥测（stub）        |
| `src/services/skillSearch/localSearch.ts`       | 本地搜索（stub）      |
| `src/services/skillSearch/featureCheck.ts`      | 功能检查（stub）      |
| `src/tools/SkillTool/SkillTool.ts`              | SkillTool 集成点   |
| `src/constants/prompts.ts:95,335,778`           | 提示增强            |
