# AI 智能体

> 向 AI 智能体提供 Markdown、llms.txt、内容信号和智能体技能。

每次构建都会在浏览器所用的 HTML 之外，以 AI 智能体最易读取的形式发布你的站点。这无需任何配置，下面的两个键只用于调整它。

## 构建产出的内容

| 文件                                     | 用途                                                                                                                    |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `<page>.md`                            | 每个页面旁都有一份 Markdown 副本：`guides/build.html` 对应 `guides/build/index.md`，包含标题、描述和内容，每个组件都简化为纯 Markdown（标注框变为引用，标签页变为粗体标题） |
| `/llms.txt`                            | 一个 [llms.txt](https://llmstxt.org/) 索引：先是站点标题和描述，然后是每个页面的 Markdown 副本及其描述，按导航的分组方式分组                                  |
| `/index.md`                            | 首页的副本；若项目没有 `index.html`，则为 `llms.txt` 的副本                                                                            |
| `/robots.txt`                          | 一行 `Content-Signal`，声明自动化系统可以如何使用你的内容                                                                                 |
| `/_headers`                            | 用于 Cloudflare 和 Netlify：首页上的 `Link` 响应头，指向 `llms.txt`、`index.md` 和技能索引                                                |
| `/.well-known/agent-skills/index.json` | 一个 [Agent Skills](https://agentskills.io/) 发现索引，在设置了 `skills` 时生成                                                     |

每个页面还带有指向其副本的 `<link rel="alternate" type="text/markdown">`，旁边的页面工具栏会链接到该副本，并借助其脚本复制副本，或在 ChatGPT 或 Claude 中打开页面。

项目中的同名文件会替换生成的文件。`_headers` 是唯一的例外：你的规则会被保留，生成的 `Link` 规则追加在其后。`htmlpress start` 运行同样的构建，因此也会提供这些文件。

## 内容信号

`contentSignals` 控制 `robots.txt` 中的 [Content Signals](https://contentsignals.org/) 行。三个信号默认都是 `true`：

```yaml
contentSignals:
  search: true # build a search index and show links to your pages
  aiInput: true # feed pages to a model answering a question in real time
  aiTrain: false # train or fine-tune models on your content
```

它生成的行位于 `User-agent: *` 组中： `Content-Signal: search=yes, ai-input=yes, ai-train=no`。

## 智能体技能

如果你的项目附带 [Agent Skills](https://agentskills.io/specification)，请将 `skills` 指向它们的 `SKILL.md` 文件，可以是一个 glob 或一个列表，路径相对于项目：

```yaml
skills: .skills/*/SKILL.md
```

每个匹配的技能都会发布在 `/.well-known/agent-skills/<name>/SKILL.md`，并连同 `sha256` 摘要列在 `index.json` 中。其 frontmatter 需要一个 `name`（小写字母、数字和单个连字符，最多 64 个字符）和一个 `description`（最多 1024 个字符）；若缺少任一字段，或两个技能同名，构建将失败。本站在 [/.well-known/agent-skills/](/.well-known/agent-skills/index.json) 发布了 htmlpress 自己的技能。

## 按需提供 Markdown

智能体通过向页面 URL 发送 `Accept: text/markdown` 来请求 Markdown。静态托管本身无法响应这种请求，但 CDN 上的重写规则可以为这些请求提供页面的 `.md` 副本，而其他人仍获得 HTML。每个页面都有副本，所以重写永远不会指向缺失的文件。现成的规则请参见 [Cloudflare](/zh/deployment/cloudflare/)。

## 另请参阅

- [Agent Skills](/zh/agent-skills/)：将 htmlpress 自己的技能安装到你的编程智能体中。
- [配置文件](/zh/customization/configuration-file/)：所有顶层键。
- [自定义路由](/zh/customization/custom-routes/)：与页面一同复制的静态文件。
