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