概览

来源

Docsbook 源是一个存储库、网站或单个页面,项目的助手和代理可以从中获取内容。连接一个源后,“更新文档”或“此页面仍然准确吗”这类操作就会从阅读开始,而不是凭回忆。

打开项目管理面板中的来源部分,就在 MCP 和代理下方。

你将获得什么#

  • 一个助手可以访问的地址。 当你询问产品价格时,它会针对这个问题获取你的定价页面,而不是根据训练中吸收的内容作答。
  • 在你自己的工具中使用相同的注册信息。 构成功能的两个工具 list_sourcesread_source 通过项目的 MCP 端点提供,因此你在此处连接的来源,在 Claude Code 或 Cursor 中也代表相同的含义。
  • 每个来源都附带你写的一句话。 你写下的备注(“参考页面所描述的 API 服务器”)会被之后读取该来源的所有工具作为指令读取。
  • 明确报告失败的读取操作。 无法访问的存储库会以错误和提示返回,而不会以看似空存储库的空列表返回。
  • 没有计划限制。 来源对所有计划开放,这是经过刻意设计的:在这里设置付费墙,就等于出售讲述事实的能力。

我可以将哪些内容连接为来源?#

底层存在四种类型——网站页面仓库仓库文件夹——表格将它们呈现为所有者实际会询问的命名对象目录,分为五组:你的项目文档平台知识库代码和 API以及社区。无论由谁构建,已发布的文档站点都是网站,因此 Mintlify、GitBook、ReadMe、Docusaurus、Read the Docs、MkDocs、Nextra、VitePress、Starlight、Redocly、Stoplight、Scalar 以及其他平台都无需按供应商分别构建。

表格列出了 Docsbook 所知的每一种类型,无论是否已连接,都可以通过筛选器菜单进行缩小范围,而不是拆分为多个部分。每个连接各占一行:两个已连接的网站会显示为两行。

灰色表示两种不同的含义,具体是哪一种会在行中说明:

  • 未连接 — 该行提供连接选项。现在即可读取,通过与其他每个 url 行相同的公共获取方式完成。
  • 尚不可用 — 该行不提供按钮,而是显示其所需的条件:一次性授予的授权(Notion 工作区、Confluence、Coda)、机器人令牌(Telegram、Discord、Slack),或 Docsbook 尚未支持读取的仓库托管平台的读取器(GitLab、Bitbucket)。如果存在变通方案,该行会将其注明——公共帮助中心目前可以作为网站连接。

没有按钮的行是有意如此设计的。只有当 read_source 确实能够按当前状态读取它时,该行才允许提供连接选项;无法完成连接的连接选项会让屏幕上的其他行都失去可信度。

如何连接来源?#

点击某一行中的连接,或点击表格上方的新建来源。无论哪种方式,都只有一个字段,而地址决定来源是什么——不是你点击的那一行。你点击的行只会设置占位符和标题,如果两者不一致,对话框会在你提交前提示这一点。

你粘贴的内容 它会变成 读取时返回的内容
github.com/acme/api 仓库 其中可读的文件,优先读取 README 和文档;也可以按名称读取任意路径
github.com/acme/api/tree/main/docs 仓库文件夹 仅该子树中的内容——且仅限其中的提交
acme.comacme.com/docs 网站 其中的多个页面,从其自身的 sitemap.xml 中查找
acme.com/pricing.html 页面 完整读取该页面
acme.mintlify.appacme.gitbook.ioacme.notion.site…… 归入该供应商的行下 与网站相同,但归入你查找它的位置

路径中的文件扩展名决定这是页面还是网站。从 issue 或拉取请求中粘贴的链接连接的是仓库,而不是 issue——将 /issues 作为子树存储,会导致该来源读取结果永远为空。跟踪参数(utm_*fbclidgclidrefsi……)会被去除,因此从推文和从地址栏粘贴的同一页面会成为一个来源,而不是两个。裸主机会获得 https://;你有意输入的 http:// 则会保持不变,因为静默升级会导致没有 TLS 的网站返回 404,而且无法从该行看出原因。

私有仓库需要使用选择器,而不是粘贴地址。对于“私有”和“不存在”,GitHub 返回相同的 404,因此粘贴地址无法告诉 Docsbook 它属于哪一种情况;而手动输入私有地址会以公开仓库连接,读取不到任何内容。请在对话框中使用或选择一个 GitHub 仓库:选择器知道其状态,标记为私有的来源会以静态加密的方式存储连接账户的 GitHub 授权,因此即使预定运行时没有浏览器会话,也仍然可以读取仓库。该授权永远不会离开服务器——API 返回 has_token,而不是令牌——如果 GitHub 已拒绝某个令牌,系统会提示“重新连接此仓库”,而不是默默重试。

有两项内容会在你未添加的情况下出现,且在此处都不能重命名、暂停或移除:

  • 此网站的仓库——用于构建文档的仓库。它已经在被读取;让你“连接”它会暗示它此前并未连接。
  • 来自 Branding——如果你的工作区设置了网站来源 URL,则会显示该 URL。它仍位于 Branding 卡片上。

再次粘贴已连接的地址会更新该行,而不是失败或创建重复项;如果重新粘贴时没有添加备注,也不会清除你第一次输入的备注。

哪些内容会读取已连接的来源?#

只有三类,没有其他内容。已连接的来源不会按定时器抓取,不会添加到已发布的文档中,也不会被文档网站上面向读者的聊天功能搜索——该聊天功能只会从你自己的页面中作答(回答质量是它使用的处理流程)。

管理面板中的助手。 list_sourcesread_source 位于其基础工具箱中,而不是隐藏在查找功能之后,因为发现某项能力需要额外往返请求时,模型就会转而凭记忆作答——这些来源正是为了防止这种确切的失败情况而存在。

你自己的 MCP 代理。 通过项目的 MCP 端点使用相同的两个工具,此外还有 connect_sourceconfigure_source,无需打开浏览器即可设置代理。后两者需要读写 MCP 令牌。

后台运行。 计划提示和代理运行也会读取这些来源,这正是它们最重要的地方:因为那里没有人坐着粘贴链接。

并非每次自动运行都会访问某个来源,因此面板会标明哪些运行会访问,而不是暗示它们都可以访问。在列出运行的位置,标记会显示为三种状态:

  • 亮起 — 此运行会获取该来源:你网站的页面、你代码库中的文件。
  • 未亮起 — 此运行知道该来源已连接并会提及其名称,但从未声明会离开当前属性范围,因此不会获取它。请改为询问助手;它没有这样的限制。
  • 完全没有 — 此运行不会访问任何来源。设置写入不应读取你的代码库,而此处显示标记则会传达相反的信息。

源是如何获取的,返回的内容有多新?#

不会预先获取任何内容,也不会镜像任何内容。工具请求读取时,才会针对实时地址进行读取,其限制如下:

代码仓库 网站 / 页面
不带路径读取 可读取的文件列表,按 README → docs/guides/specs/ 下的正文 → 其他正文 → 根目录配置 → 其他所有内容排序,最多前 300 个路径 最多 10 个页面,从 sitemap.xml 中发现
带路径读取 默认分支中的该文件 根据源自身的 URL 解析出的该页面
大小上限 每个文件 25,000 个字符,截断时会报告 单个页面 25,000 个字符;多页面读取时每页 8,000 个字符
其他可用内容 最近的 10 次提交 — sha、主题、作者、日期,以及仓库的默认分支;对于仓库文件夹则限定在对应路径下
新鲜度 默认分支缓存 1 小时,文件树缓存 5 分钟;文件内容和提交不使用缓存,每次都重新获取 实时获取,每次调用都会重新获取
超时 由 GitHub 自行决定 每页 15s,站点地图 8s

代码、锁文件和构建输出会从列表中筛除(node_modulesdistbuild.nextcoverage 等),但不会从读取结果中筛除:带路径的 read_source 可以获取任何文件,筛选器只决定哪些内容会在未被请求时不显示名称。

站点地图范围按路径边界匹配,而不是按字符串前缀匹配。Connect acme.com/docs/docs-for-fintech 不会被纳入其中。对于站点地图下没有列出任何内容的分区,只会回退到入口页面,而绝不会回退到整个网站;结果会说明三种情况中的哪一种:页面来自站点地图、网站有站点地图但你的分区下没有内容,或根本没有站点地图。一次精简读取绝不允许被当作一个内容精简的网站。

每次出站获取都会经过 Docsbook 网页读取所使用的同一套防护机制:会遵守 robots.txt,重定向会手动跟随,并在最多五次跳转中的每一跳重新验证地址;同时会拒绝私有地址段和链路本地地址段,因此公共 URL 无法跳转到云元数据端点。使用 JavaScript 渲染内容的页面会返回“未找到可读取文本”的说明,而不是空页面。

在线、暂停,以及绿色圆点的含义#

每个已连接的来源都会显示一个绿色圆点和在线一词。暂停的来源会显示一个灰色圆点和已暂停

在线表示来源已连接,您的代理可以读取它。这不是健康检查。不会向主机发送 ping,也不会检查存储库是否仍然存在。真正可靠的信号是上次使用时间列,该列仅在工具实际成功获取来源时写入——获取失败时不会记录时间。

断开连接会保留该行,并停止所有读取它的操作;再次按下它(此时显示为连接)即可恢复。移除会彻底删除该连接,以及附加到该连接的任何 GitHub 授权。打开会访问该地址。停止读取来源有两种方式,这是有意为之的:“暂时停止读取此来源”不应导致您稍后重新输入地址。

当无法读取源时会发生什么#

每次失败都会给出下一步操作,而不会返回空结果:

情况 工具返回的内容
源已暂停 指出该源,并说明它已在此工作区的 Sources 选项卡中关闭
无法加载存储库树 “该存储库可能是私有的、已重命名或已删除。应直接说明这一点,而不是凭记忆回答其中包含什么。”
文件路径错误 建议先列出存储库 — 文件可能位于其他文件夹下
私有存储库中保存的授权已停止工作 “GitHub 拒绝了使用为其存储的授权进行的操作。请从 Sources 重新连接存储库。” — 绝不会返回空的提交列表
网站宕机、阻止服务器端抓取,或不允许 robots.txt 中的路径 说明具体是哪种情况,并表示应报告该情况,而不是凭记忆描述网站
完全没有连接任何内容 NO_SOURCES,并附带“不要自行编造一个”

最后一行正是整个设计的核心。源所防止的失败模式不是错误消息 — 而是一段关于无人读取过的存储库的自信描述。

读取来源的成本是多少?#

来源本身连接和保留都是免费的。通过 MCP 调用时,四个工具中有两个会按用量计费,价格取决于实际提供这些服务的成本:

  • list_sources读取 Docsbook 已存储的行,按普通读取计费。
  • read_source会离开 Docsbook 网络,访问 GitHub 或某个网站——而网站来源会在一次调用中获取多个页面——因此按出站调用计费,与 fetch_url 属于同一类别。

两者的费用都会从发起调用的项目余额中扣除。具体金额请参阅定价页面

为什么这是正确的方法(证据)#

Docsbook 中的规则 有效原因 来源
获取源内容,而不是要求模型回忆 在一个针对当前世界知识问题构建的基准测试中,“所有模型(无论模型规模大小)在涉及快速变化的知识和错误前提的问题上都表现不佳”——你的价格、限制和端点正属于这类事实 Vu 等,2023 年 — FreshLLMs(ACL 2024 论文集)
无论使用什么模型,都应将助手自身的知识视为过时的 Docsbook 管理员助手背后的模型公布了“知识截止时间”为“2026 年 2 月”。你的产品在其提供商知识截止时间之后发生的任何变化,只有在模型获取到相关内容时才对它可见 OpenRouter — gpt-5.6-luna 模型页面(供应商报告)
从网站自身的站点地图中发现页面,而不是猜测路径 <loc> 包含“页面的 URL”,并且该协议存在的目的就是让网站能够“向搜索引擎提供有关其页面的详细信息”——这是网站对“我有哪些页面”这一问题的自身回答 sitemaps.org 协议(规范)
每次获取源内容时都遵守 robots.txt RFC 9309 规范化了“服务所有者[可以]控制其服务提供的内容如何被访问……访问者是被称为爬虫的自动客户端”这一机制 RFC 9309(IETF 标准)
将获取的源标记为可引用的数据,而不是要遵循的指令 “当 LLM 接受来自外部来源(例如网站或文件)的输入时,就会发生间接提示注入”——模型读取的内容可能包含针对模型的指令 OWASP GenAI — LLM01:2025 提示注入(行业标准)
在每次重定向跳转时重新验证地址,并拒绝链路本地范围 云实例元数据通过链路本地地址提供——AWS 记录了 http://169.254.169.254/latest/meta-data/,“仅对实例有效”——因此,若重定向最终到达该地址,页面获取就会变成凭据读取 AWS — 访问 EC2 实例的实例元数据(供应商文档)

限制#

  • 源是按需读取的,不会被索引。 不存在后台爬取、存储副本,也不保证两次调用之间内容保持最新。工具看到的,就是该地址在当时提供的内容。
  • 绿色圆点不代表可访问性检查。 见上文。一个今天早上被删除的仓库,在某个操作尝试读取它之前,仍会显示为在线。
  • 手动输入的私有仓库会以公开仓库连接,且读取不到任何内容。 Docsbook 无法仅凭地址区分私有仓库和不存在的仓库。请使用能够进行区分的仓库选择器。
  • 只有 GitHub 仓库会作为仓库读取。 GitLab 和 Bitbucket 行存在,但不提供连接选项;其中任一平台上的公开项目页面都可以作为网站连接,此时读取的是渲染后的页面,而不是目录树。
  • 网站源不是爬虫。 每次调用最多读取十个页面,且仅从站点地图读取,不递归,也不跟随链接。大型文档网站最好作为其仓库进行连接。
  • 由 JavaScript 渲染的页面返回为空。 抓取器不会执行脚本。结果会对此进行说明,因此空结果绝不会被报告为没有内容——但你仍然没有获得任何内容。
  • 备注是指令,而你有责任确保其准确。 任何读取源的操作都会将你的备注作为指导。过时的备注(“v1 API,已弃用”)与正确的备注一样,都能有效地引导代理。
  • 我们不会发布有关源在多大程度上减少错误答案的测量结果。 机制如上所述,相关证据来自外部;针对客户语料库进行前后对比的数值并不是 Docsbook 已经开展过的测量。请将“源能提高你文档的准确性”视为有充分支持的预期,而不是我们已经测量出的数据。
  • AI 聊天 — 您的文档网站上的助手,以及它可能从哪些内容中获取答案。
  • 答案质量 — 完整介绍检索与依据管线。
  • 聊天钩子 — 向模型提供它无法读取的事实的另一种方式。
  • MCP 服务器 — 为您自己的代理提供相同的工具。
  • MCP 工具参考 — 完整介绍 list_sourcesread_sourceconnect_sourceconfigure_source
  • 事实来源 — 一个名称相似但功能不同的特性:由代理在其机器上构建的、属于您自己页面的本地图谱。
  • 定价 — 一次源读取所依据的内容。

Updated

此页面对您有帮助吗?