--- title: "搜索与导航" description: "AI 如何在百万行代码中精准定位目标" --- {/* 本章目标:介绍搜索类工具和工具搜索机制 */} ## 两种搜索维度 | 维度 | 工具 | 适用场景 | |------|------|---------| | **按名称找文件** | Glob | "找到所有测试文件"、"找 config 开头的文件" | | **按内容找代码** | Grep | "哪里定义了这个函数"、"谁在调用这个 API" | 两者组合使用,AI 就拥有了在大型项目中"导航"的能力。 ## 搜索结果的智能处理 大型项目的搜索结果可能有成千上万条,直接全部返回不现实: - **结果数量限制**:默认最多返回 250 条匹配 - **上下文行**:Grep 支持显示匹配行前后的上下文(类似 `grep -C`) - **按修改时间排序**:Glob 默认把最近修改的文件排在前面 - **文件类型过滤**:按语言类型过滤(只搜 `.ts` 文件、只搜 `.py` 文件) ## 工具发现机制 当可用工具超过 50 个时,AI 可能不知道该用哪个。系统提供了 **ToolSearch** 机制: - AI 可以用自然语言描述需求("我需要连接数据库") - 系统在所有已注册工具(包括 MCP 提供的)中搜索匹配 - 返回最相关的工具列表及使用说明 这让 AI 在面对庞大的工具库时不会迷路。 ## Web 搜索与抓取 AI 的信息获取不局限于本地代码: - **WebSearch**:搜索互联网获取最新信息 - **WebFetch**:抓取特定网页内容,转换为 Markdown 供 AI 阅读 这让 AI 可以查阅文档、搜索 Stack Overflow、阅读 GitHub issue——和人类开发者的工作方式一致。