---
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——和人类开发者的工作方式一致。
