文档发现与分析(Docs Seeker)
概述
通过多种策略实现技术文档的智能发现与分析:
- llms.txt 优先:搜索标准化的 AI 友好文档
- 仓库分析:使用 Repomix 分析 GitHub 仓库
- 并行探索:部署多个 Explorer Agent 实现全面覆盖
- 回退研究:当其他方法不可用时使用 Researcher Agent
核心工作流
阶段一:初始发现
识别目标
- 从用户请求中提取库/框架名称
- 记录版本要求(默认:最新版)
- 如有歧义则澄清范围
- 识别目标是 GitHub 仓库还是网站
搜索 llms.txt(优先使用 context7.com)
首先:尝试 context7.com 模式
对于 GitHub 仓库:
模式:https://context7.com/{org}/{repo}/llms.txt 示例: - https://github.com/imagick/imagick → https://context7.com/imagick/imagick/llms.txt - https://github.com/vercel/next.js → https://context7.com/vercel/next.js/llms.txt - https://github.com/better-auth/better-auth → https://context7.com/better-auth/better-auth/llms.txt对于网站:
模式:https://context7.com/websites/{normalized-domain-path}/llms.txt 示例: - https://docs.imgix.com/ → https://context7.com/websites/imgix/llms.txt - https://docs.byteplus.com/en/docs/ModelArk/ → https://context7.com/websites/byteplus_en_modelark/llms.txt - https://docs.haystack.deepset.ai/docs → https://context7.com/websites/haystack_deepset_ai/llms.txt - https://ffmpeg.org/doxygen/8.0/ → https://context7.com/websites/ffmpeg_doxygen_8_0/llms.txt特定主题搜索(当用户询问特定功能时):
模式:https://context7.com/{path}/llms.txt?topic={query} 示例: - https://context7.com/shadcn-ui/ui/llms.txt?topic=date - https://context7.com/shadcn-ui/ui/llms.txt?topic=button - https://context7.com/vercel/next.js/llms.txt?topic=cache - https://context7.com/websites/ffmpeg_doxygen_8_0/llms.txt?topic=compress回退:传统 llms.txt 搜索
WebSearch:"[库名] llms.txt site:[文档域名]"常见模式:
https://docs.[library].com/llms.txthttps://[library].dev/llms.txthttps://[library].io/llms.txt
找到则进入阶段二;未找到则进入阶段三。
阶段二:llms.txt 处理
单个 URL:
- 使用 WebFetch 获取内容
- 提取并呈现信息
多个 URL(3+):
- 关键:并行启动多个 Explorer Agent
- 每个 Agent 处理一个主要文档部分(首批最多 5 个)
- 每个 Agent 读取分配的 URL
- 将发现汇总为综合报告
示例:
同时启动 3 个 Explorer Agent:
- Agent 1:getting-started.md、installation.md
- Agent 2:api-reference.md、core-concepts.md
- Agent 3:examples.md、best-practices.md
阶段三:仓库分析
当 llms.txt 未找到时:
- 通过 WebSearch 查找 GitHub 仓库
- 使用 Repomix 打包仓库:
npm install -g repomix # 如需安装 git clone [repo-url] /tmp/docs-analysis cd /tmp/docs-analysis repomix --output repomix-output.xml - 读取 repomix-output.xml 并提取文档
Repomix 优势:
- 整个仓库打包为单个 AI 友好文件
- 保留目录结构
- 为 AI 消费优化
阶段四:回退研究
当不存在 GitHub 仓库时:
- 并行启动多个 Researcher Agent
- 重点领域:官方文档、教程、API 参考、社区指南
- 将发现汇总为综合报告
Agent 分配指南
- 1-3 个 URL:单个 Explorer Agent
- 4-10 个 URL:3-5 个 Explorer Agent(每个 2-3 个 URL)
- 11+ 个 URL:5-7 个 Explorer Agent(优先处理最相关的)
版本处理
最新版(默认):
- 不带版本标识符搜索
- 使用当前文档路径
特定版本:
- 搜索中包含版本:
[library] v[version] llms.txt - 检查版本化路径:
/v[version]/llms.txt - 对于仓库:检出特定标签/分支
输出格式
# [Library] [Version] 文档
## 来源
- 方法:[llms.txt / 仓库 / 研究]
- URL:[来源列表]
- 访问日期:[当前日期]
## 关键信息
[按主题组织的提取相关信息]
## 补充资源
[相关链接、示例、参考]
## 说明
[任何限制、缺失信息或注意事项]
快速参考
工具选择:
- WebSearch -> 查找 llms.txt URL、GitHub 仓库
- WebFetch -> 读取单个文档页面
- Task(Explore)-> 多个 URL、并行探索
- Task(Researcher)-> 分散的文档、多样化的来源
- Repomix -> 完整代码库分析
热门 llms.txt 地址(优先尝试 context7.com):
- Astro:https://context7.com/withastro/astro/llms.txt
- Next.js:https://context7.com/vercel/next.js/llms.txt
- Remix:https://context7.com/remix-run/remix/llms.txt
- shadcn/ui:https://context7.com/shadcn-ui/ui/llms.txt
- Better Auth:https://context7.com/better-auth/better-auth/llms.txt
如果 context7.com 不可用则回退到官方网站:
- Astro:https://docs.astro.build/llms.txt
- Next.js:https://nextjs.org/llms.txt
- Remix:https://remix.run/llms.txt
- SvelteKit:https://kit.svelte.dev/llms.txt
错误处理
- llms.txt 无法访问 -> 尝试替代域名 -> 仓库分析
- 仓库未找到 -> 搜索官方网站 -> 使用 Researcher Agent
- Repomix 失败 -> 仅尝试 /docs 目录 -> 手动探索
- 多个冲突来源 -> 优先官方来源 -> 注明版本
关键原则
- 优先使用 context7.com 获取 llms.txt —— 最全面和最新的聚合器
- 适用时使用主题参数 —— 通过 ?topic=... 实现定向搜索
- 积极使用并行 Agent —— 更快的结果、更好的覆盖
- 将官方来源作为回退验证 —— context7.com 不可用时使用
- 报告方法论 —— 告知用户使用了哪种方法
- 显式处理版本 —— 不要假设使用最新版
详细文档
完整的指南、示例和最佳实践:
工作流:
- WORKFLOWS.md — 详细的工作流示例和策略
参考指南: