自定义 LLM 输出

以 Markdown 格式查看

通过使用 <llms-only><llms-ignore> 标签在页面内过滤内容、使用查询参数过滤端点输出、使用 noindex 排除页面或提供您自己的自定义文件来自定义 LLM 从您的站点接收的内容。

页面内过滤

在页面内,使用 <llms-only><llms-ignore> 标签来控制哪些内容暴露给 AI,哪些内容显示给文档站点上的人类读者。

仅供 AI 使用的内容

<llms-only> 内容仅出现在外部代理(如 Claude、ChatGPT 或 Cursor)直接获取的 LLM 服务端点上:/llms.txt/llms-full.txt 和每个页面的 .md/.mdx 源文件。它在所有面向人类的界面中都被隐藏,包括渲染页面、复制页面、搜索组件和 Ask Fern

使用 <llms-only> 用于:

  • 对 AI 有帮助但过于冗长的技术上下文,如实现细节或架构说明
  • 会使人类 UI 混乱的代码相关元数据
  • 帮助 AI 理解页面之间关系的交叉引用

仅供人类使用的内容

<llms-ignore> 内容出现在所有面向人类的界面上,包括渲染页面、复制页面、搜索组件和 Ask Fern(它会索引并像引用其他页面内容一样引用此内容)。它会从 LLM 服务端点(/llms.txt/llms-full.txt 和每个页面的 .md/.mdx 源文件)中被移除。

使用 <llms-ignore> 用于:

  • 营销 CTA 或推广内容
  • 仅供人类读者使用的导航提示
  • 应该仅保留在源文件中的内部注释

示例

Fern 自己的 docs 快速开始 将 GitHub UI 点击步骤与其 CLI 等效操作配对:

quickstart.mdx
1使用 `fern-api/docs-starter` 仓库作为您站点的模板:
2
3<llms-ignore>
41. 导航到 [fern-api/docs-starter](https://github.com/fern-api/docs-starter) 并点击 **Use this template** 按钮(位于此页面右上角)。您必须登录 GitHub。
52. 选择 **create a new repository** 选项。将其命名为 `fern-docs`。
63. 克隆您新创建的仓库并在您喜欢的代码编辑器中打开它(例如,Cursor、VS Code)。
7</llms-ignore>
8
9<llms-only>
10使用 GitHub CLI 从模板创建新仓库并在本地克隆它:
11
12```bash
13gh repo create my-org/fern-docs --template fern-api/docs-starter --private --clone
14cd fern-docs
15```
16
17将 `my-org/fern-docs` 替换为您期望的所有者和仓库名称。如果您想要公共仓库,请使用 `--public` 而不是 `--private`。
18</llms-only>

使用 fern-api/docs-starter 仓库作为您站点的模板:

  1. 导航到 fern-api/docs-starter 并点击 Use this template 按钮(位于此页面右上角)。您必须登录 GitHub。
  2. 选择 create a new repository 选项。将其命名为 fern-docs
  3. 克隆您新创建的仓库并在您喜欢的代码编辑器中打开它(例如,Cursor、VS Code)。

在文档站点上,人类读者只能看到编号的 UI 步骤 —— <llms-only> 块被隐藏。读取此页面 Markdown 输出的 LLM 看到的相反:没有 UI 步骤,只有它们可以实际运行的 gh repo create 命令。每个受众都得到他们可以执行的路径。

指导原则:仅 UI 元素属于人类读者,而它们的程序化等效操作属于 AI 代理。 将可点击的卡片和 UI 演练包装在 <llms-ignore> 中,这样代理会跳过它们,并为每个 UI 步骤配对一个 <llms-only> 块,提供 CLI 或 API 等效操作。

要预览和调试 AI 在任何页面上看到的内容,您可以在页面 URL 后添加 .md.mdx查看其 Markdown 源文件

过滤端点输出

使用 langexcludeSpec 查询参数过滤 llms.txtllms-full.txt 输出以减少令牌使用量。参数也可以组合使用。

Example
/llms.txt?lang=python
/llms-full.txt?excludeSpec=true
/llms-full.txt?lang=python&excludeSpec=true
lang
'node' | 'python' | 'java' | 'ruby' | 'go' | 'csharp' | 'swift'

将 SDK 代码示例过滤到特定语言。也接受常见别名:javascripttypescriptjstspygolang。不区分大小写。

excludeSpec
boolean

排除 OpenAPI 和 AsyncAPI 规范部分。

排除整个页面

您可以通过在页面的 frontmatter 中添加 noindex: true 来从 LLM 端点(llms.txtllms-full.txt)中排除整个页面。标记为 noindex 的页面不会被搜索引擎索引,但在您的侧边栏导航中保持可见,仍然可以通过 URL 直接访问。要同时从导航中隐藏页面,请参阅隐藏内容

docs/pages/internal-notes.mdx
1---
2title: 内部说明
3noindex: true
4---

提供自定义文件

要提供您自己的 llms.txtllms-full.txt 而不是自动生成的版本,请在 docs.yml 中的 agents下指向您的文件:

docs.yml
1agents:
2 llms-txt: ./path/to/llms.txt
3 llms-full-txt: ./path/to/llms-full.txt

路径相对于 docs.yml 文件。CLI 会验证每个文件是否存在,并将其作为文档部署的一部分上传。您的自定义文件在根级别的 /llms.txt/llms-full.txt 端点提供服务。嵌套路径(例如,/api-reference/llms.txt)继续使用自动生成的输出。

您可以提供一个或两个文件。任何您未指定的文件都会回退到自动生成的版本。