Skip to main content

EXPERIMENTAL_SKILL_SEARCH — 技能语义搜索

Feature Flag: FEATURE_EXPERIMENTAL_SKILL_SEARCH=1 实现状态:全部 Stub(8 个文件),布线完整 引用数:21

一、功能概述

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

二、实现架构

2.1 模块状态

模块文件状态说明
DiscoverSkillsToolsrc/tools/DiscoverSkillsTool/prompt.tsStub空工具名
预取src/services/skillSearch/prefetch.tsStub3 个函数全部空操作
远程加载src/services/skillSearch/remoteSkillLoader.tsStub返回空结果
远程状态src/services/skillSearch/remoteSkillState.tsStub返回 null/undefined
信号src/services/skillSearch/signals.tsStubDiscoverySignal = any
遥测src/services/skillSearch/telemetry.tsStub空操作日志
本地搜索src/services/skillSearch/localSearch.tsStub空操作缓存
功能检查src/services/skillSearch/featureCheck.tsStubisSkillSearchEnabled => 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 的技能发现结果

三、需要补全的内容

优先级模块工作量说明
1DiscoverSkillsTool语义搜索工具 schema + 执行
2skillSearch/prefetch.ts用户输入分析和预取逻辑
3skillSearch/remoteSkillLoader.ts远程市场/注册表获取
4skillSearch/remoteSkillState.ts已发现技能状态管理
5skillSearch/localSearch.ts本地索引构建/查询
6skillSearch/featureCheck.tsGrowthBook/配置门控
7skillSearch/signals.tsDiscoverySignal 类型定义

四、关键设计决策

  1. 预取优化:在用户提交前就开始搜索,减少首次响应延迟
  2. 本地+远程双搜索:本地索引快速匹配 + 远程市场深度搜索
  3. SkillTool 集成:发现的技能通过 SkillTool 调用,不需要新的调用机制
  4. 独立于 MCP_SKILLS:MCP_SKILLS 从 MCP 服务器发现,EXPERIMENTAL_SKILL_SEARCH 从技能市场发现

五、使用方式

# 启用 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.tsSkillTool 集成点
src/constants/prompts.ts:95,335,778提示增强