代码搜索决策指南Skill search-tools

本技能基于搜索工具层次结构,帮助开发者根据代码搜索需求选择最合适的工具,包括语义搜索(如LEANN)、结构搜索(如AST-grep)、文本搜索(如Morph)和字面搜索(如Grep),适用于代码理解、重构和开发效率提升。关键词:代码搜索、语义搜索、AST-grep、Morph、Grep、代码分析、开发工具、架构设计。

架构设计 0 次安装 0 次浏览 更新于 3/14/2026

name: search-tools description: 搜索工具层次结构

搜索工具层次结构

当搜索代码时,使用此决策树:

决策树

需要概念/语义搜索吗?
  (X如何工作,查找模式,理解架构)
  → 使用 LEANN (/leann-search) - 基于嵌入的语义搜索
  → PreToolUse 钩子自动重定向语义 Grep 查询

需要理解代码结构吗?
  (查找函数调用,类使用,重构模式)
  → 使用 AST-grep (/ast-grep-find)

需要在代码中查找文本吗?
  → 使用 Morph (/morph-search) - 快 20 倍
  → 如果没有 Morph API 密钥:回退到 Grep 工具

简单的单次搜索?
  → 直接使用内置的 Grep 工具

工具比较

工具 最适用于 要求
LEANN 语义搜索:“缓存如何工作”、“错误处理模式”,概念性查询 索引已构建
AST-grep 结构模式:“查找所有调用 foo() 的地方”,重构,按类型查找使用情况 MCP 服务器
Morph 快速文本搜索:“查找提到错误的文件”,跨代码库的 grep API 密钥
Grep 字面模式,类/函数名称,正则表达式 无(内置)

例子

LEANN(语义/概念):

  • “身份验证如何工作”
  • “查找错误处理模式”
  • “限流在哪里实现”

AST-grep(结构):

  • “查找所有返回 Promise 的函数”
  • “查找所有使用 useState 的 React 组件”
  • “将所有 X 的导入重构为 Y”

Morph(文本搜索):

  • “查找所有提到‘身份验证’的文件”
  • “搜索 TODO 注释”

Grep(字面):

  • class ProviderAdapter
  • def __init__
  • 正则表达式模式

LEANN 命令

# 使用语义查询搜索
leann search opc-dev “黑板通信如何工作” --top-k 5

# 列出可用索引
leann list

# 重建索引(当代码变化时)
leann build opc-dev --docs dir1 dir2 --no-recompute --no-compact --force