SuperAPI AI 工具集

doc-reader

写作与研究

查看项目

更新于 10-15 17:08

技能介绍

用途

doc-reader 是一个帮助高效阅读和浏览外部文档的技能。它的目标是让使用者在查阅文档时既不超出上下文窗口,也不遗漏重要信息。当任务需要确认某个函数、接口或配置项如何工作时,可以调用该技能。

主要能力

该技能围绕“发现资源—建立连接—选择消费策略”的流程组织,提供以下能力:

  • 发现文档站点上对 AI 友好的资源,包括 llms.txt、llms-full.txt、skill.md 以及 MCP 端点。
  • 尝试页面的 .md URL 变体,以获取更易解析的 Markdown 内容。
  • 通过 MCP(Model Context Protocol)服务器对文档进行语义搜索。
  • 通过 grep 在 llms-full.txt 中做关键词精确匹配。
  • 在文件体积可控时加载完整文档内容。
  • 在需要浏览结构、查看图表或交互示例时查看 HTML 页面。

使用方式

第一步:发现可用资源

遇到文档站点时,先检查是否有 AI 友好资源。

检查 llms.txt:结构良好的文档站点通常会在根路径提供 llms.txt,例如 https://docs.example.com/llms.txt 或 https://example.com/docs/llms.txt。该文件包含文档覆盖范围的描述,以及指向各页面的链接。站点还可能在根路径提供 llms-full.txt,把整个文档站点的内容合并为单个 .md 文件。

尝试 Markdown URL 变体:许多文档站点会在 .md URL 变体上提供干净的 Markdown 版本页面。对于需要阅读的具体页面,先尝试 .md 变体,例如把 https://docs.example.com/page 改为 https://docs.example.com/page.md。如果返回的是有效 Markdown(而不是 404 或 HTML 错误页),就使用它而不是抓取 HTML。

检查 skill.md:部分文档站点提供 skill.md 文件,用于说明如何使用该产品。可在根路径检查,例如 https://docs.example.com/skill.md 或 https://example.com/docs/skill.md。阅读该技能以了解产品和功能,如果对当前任务有帮助,可用以下命令添加:

npx skills add docs.example.com/skill.md

检查 MCP 服务器:部分文档站点提供用于语义搜索的 MCP 服务器,MCP 端点通常遵循 https://docs.example.com/mcp 这一模式。

第二步:如可用则设置 MCP

MCP 服务器让你可以对文档进行语义搜索,而不必依赖关键词匹配或加载整个文件。

连接 MCP:设置过程因平台而异。以 Claude Code 为例:

{ "mcpServers": { "example-docs": { "type": "http", "url": "https://docs.example.com/mcp" } } }

连接后即可使用搜索工具对文档进行语义搜索。该工具遵循 Search{DocsTitle} 的命名模式(例如 SearchMintlify)。

管理多个 MCP:同时使用多个文档来源时,根据产品或库为每个 MCP 取一个描述性名称,并针对每次查询使用相应的 MCP,而不是在所有 MCP 中搜索。

第三步:选择消费策略

策略 A:MCP 搜索(针对具体问题首选)。适用于有具体问题或主题、在查找特定 API/函数/概念、希望获得语义相关结果而非仅关键词匹配的场景。使用 MCP 搜索工具,用自然语言描述你的需求。

策略 B:抓取 Markdown 变体(用于阅读具体页面)。适用于需要阅读某个具体文档页面、MCP 搜索返回了结果但需要完整页面内容、HTML 渲染带来噪声或导致截断的场景。尝试页面 URL 的 .md 变体:

curl -s "https://docs.example.com/page.md"

如果返回有效 Markdown 就使用;如果 404,则回退到 HTML(策略 E)。

策略 C:grep llms-full.txt(用于关键词精确搜索)。适用于需要精确匹配(函数名、错误码、特定术语)、MCP 不可用、想查看某个术语的所有出现位置的场景。例如:

curl -s "https://docs.example.com/llms-full.txt" | grep -C 3 "your-search-term"

策略 D:加载完整内容(用于全面理解)。适用于需要某个库/API 的完整上下文、llms-full.txt 足够小(建议小于 15k tokens)、要做大量会引用文档多个部分的工作。加载完整文件前务必先检查长度:

curl -sI "https://docs.example.com/llms-full.txt" | grep -i content-length

如果文件过大,可考虑改为加载 llms.txt 中标识的具体文件、使用 MCP 搜索特定主题,或按需分块加载。

策略 E:查看 HTML 页面(用于探索和导航)。适用于需要理解文档结构、用户需要浏览或点击文档、想查看图表/交互示例/格式化内容、帮助用户查找内容且用户需要继续浏览的场景。抓取并渲染 HTML 页面,或引导用户在浏览器中打开。HTML 页面提供导航菜单、交互式代码示例、可视化图表以及相关主题链接。注意截断:超过约 150,000 字符的页面可能被截断,从而在不知情的情况下遗漏关键信息。如果页面看起来不完整,尝试 .md URL 变体(策略 B)或查找 llms.txt 中的分节文件。

常见模式

  • 实现前调研:抓取 llms.txt 了解文档范围;如可用则设置 MCP;用 MCP 搜索具体的实现问题;按需加载相关章节;在实现过程中保持 MCP 连接以便追问。
  • 用文档调试:用 grep 搜索确切的错误信息或代码;若无结果,用 MCP 搜索描述问题;加载相关章节获取解决方案的完整上下文。
  • 学习新库:查看 HTML 落地页了解结构;若 llms-full.txt 足够小则加载,否则使用分节文件;设置 MCP 以便开发期间持续参考。
  • 快速参考查询:用 MCP 搜索函数/方法名,或 grep llms-full.txt 做精确匹配。

效率提示

  • 对 Mintlify 站点优先使用 MCP:语义搜索比加载和解析原始文本更高效。
  • 有策略地缓存:如果会反复引用同一份文档,加载一次 llms-full.txt 可能比多次 MCP 搜索更高效。
  • 使用分节文件:如果 llms.txt 链接到分节文件(如 api/llms.txt),只加载所需部分。
  • 并行 MCP 搜索:处理多个文档来源时,并行搜索而非串行。

边界情况处理

  • 没有 llms.txt:回退方案包括检查是否仍有 MCP 端点、尝试所需页面的 .md URL 变体、使用 WebFetch 阅读具体文档页面、在网络上搜索该文档。
  • 文档集非常大:对于超过 15k tokens 的文档,使用 MCP 搜索而非加载完整文件、按需加载分节文件、询问用户哪些区域最相关。
  • 页面未找到(404):检查 404 页面是否有相关内容链接;检查 llms.txt 中的当前 URL(它反映线上站点结构);用页面主题搜索 MCP 以找到内容迁移位置;告知用户内容可能已迁移并提供更新后的 URL。
  • 信息过时或冲突:检查文档中的版本标识;向用户说明差异;建议查看 changelog 或 release notes。

适用场景

需要查阅某个函数、接口或配置项如何工作;学习新库;用文档调试报错;快速查找参考资料;在单个任务中处理多个文档站点。

限制

该技能依赖文档站点是否提供 llms.txt、llms-full.txt、skill.md 或 MCP 端点等资源,若站点未提供则需回退到其他方式。加载完整内容时受上下文窗口限制,建议 llms-full.txt 小于 15k tokens;HTML 页面超过约 150,000 字符可能被截断。关于该技能的收费、价格、平台支持范围等具体信息,资料中暂未提供。