@docmd/plugin-llms 插件实现了 llms.txt 标准,在构建编译过程中生成机器可读的上下文文件。AI 工具、IDE 扩展(如 Cursor 与 Copilot)以及自主智能体可摄取这些生成的文件,为您的站点构建高精度的上下文模型。

该插件 默认启用。请在 docmd.config.json 中设置 url 属性,以确保发射绝对 URL。

生成的产物

在站点编译期间,构建输出根目录会生成三个文件:

  • llms.txt — 包含页面标题、描述与规范 URL 的结构化概述。
  • llms-full.txt — 完整的文档上下文,每个条目下方均附有原始 Markdown 正文。
  • llms.json — 包含类型化元数据(标题、URL、描述、优先级)的机器可读 JSON 清单。

自动发现 <link> 标签会自动注入至页面的 <head> 标头中。

配置选项

docmd.config.json 中配置 LLM 上下文参数:

选项 类型 默认值 技术描述
enabled boolean true 启用或禁用 LLM 上下文文件生成。
fullContext boolean true 生成包含完整 Markdown 正文的 llms-full.txt
maxTokenLimit number null 可选,限制上下文包输出的总字符数/Token 数。
i18n boolean false 除了默认语言集外,写入按语言划分的文件 (llms.<locale>.txt)。

全局配置示例

docmd.config.json
{
  "url": "https://docs.docmd.io",
  "plugins": {
    "llms": {
      "fullContext": true,
      "i18n": false
    }
  }
}

默认语言行为

默认情况下,插件会为 默认语言 生成无后缀的文件(llms.txtllms-full.txtllms.json)。这保持了与预期标准根文件名的 AI 工具的兼容性。

对于单语言站点,会生成一组根文件。对于多语言站点,默认语言的内容会在无后缀的根路径中提供。

多语言上下文包

要为次要语言生成专门的上下文文件,请设置 i18n: true

docmd.config.json
{
  "plugins": {
    "llms": {
      "i18n": true
    }
  }
}

启用后,构建输出包含:

site/llms.txt          ← 默认语言(无后缀)
site/llms-full.txt     ← 默认语言(无后缀)
site/llms.json         ← 默认语言(无后缀)
site/llms.de.txt       ← 德语(带后缀)
site/llms-full.de.txt  ← 德语(带后缀)
site/llms.zh.txt       ← 中文(带后缀)
site/llms-full.zh.txt  ← 中文(带后缀)

默认语言保留无后缀路径,从而使外部集成能够无缝继续运行。

安全与过滤防御

在输出知识包之前,所有由用户控制的字符串(标题与描述)都会经过严格的安全净化过滤:

  • 链接完整性: 页面标题中的 Markdown 控制字符(`[]、换行符)均被转义,以防止损坏 [title]\(target-path\) 语法。
  • CSV/表格注入防御: 以 =+-@ 开头的字符串会自动补前缀单引号 ('),以消除单元格公式执行风险。

排除内容页面

要从 AI 上下文文件中排除内部笔记、草稿页面或安全敏感文档,请在 页面 Frontmatter 中设置 llms: false

---
title: "内部发布检查清单"
llms: false # 从 llms.txt 与 llms-full.txt 中排除该页面
---

被排除的页面仍会在标准 HTML 输出和本地站点搜索中保持可见。

结构化知识图谱

对于深度结构化的 AI 上下文图谱包(包含类型化概念图谱与节点可视化),请将此插件与 OKF Bundle 插件 配合使用。