发布于 2026-01-06 8 阅读
0

如何向 AI 代理提供 Markdown 文档:让你的文档更易于 AI 访问

如何向 AI 代理提供 Markdown 文档:让你的文档更易于 AI 访问

介绍

如果你最近关注过开发者推特,你可能已经看到 Bun 发的推文,内容是关于将 Markdown 直接提供给 Claude Code 等 AI 编码助手。

MintlifyFumadocs都已在其文档平台中立即实现了该功能,而我自己也刚刚在Lingo.dev中实现了该功能。

这就是为什么它很重要,以及如何自己实施它。

问题:HTML 代码臃肿

人工智能代理可以获取网页内容以辅助开发者。大多数情况下,这些内容以 HTML 格式返回。但 HTML 中包含的标记会消耗令牌,却不添加任何有意义的信息,从而降低性能。

解决方案:内容谈判

优雅的解决方案是内容协商。这是一种标准的HTTP机制,客户端通过HTTP头部告诉服务器它们偏好的格式Accept

当 AI 代理使用 `<html>`Accept: text/markdown或 `<html>`请求您的文档时Accept: text/plain,您的服务器可以返回 Markdown 而不是 HTML。

这意味着:

  • 用更少的令牌传递相同的信息
  • 更容易解析和理解
  • 更多文档可在上下文窗口中查看。

实施指南

具体实现细节取决于你的编程语言和框架,但总体方法是相同的。

让我们通过一个 Express.js 的例子来了解一下。

1. 检测 Accept 标头

当请求到达时,检查标头是否Accept包含text/markdowntext/plain

app.get("/docs/*", (req, res) => {
  const acceptHeader = req.headers.accept || "";

  if (acceptHeader.includes("text/markdown")) {
    // Serve Markdown
  } else if (acceptHeader.includes("text/plain")) {
    // Serve plain text
  } else {
    // Serve HTML (default behavior)
  }
});
Enter fullscreen mode Exit fullscreen mode

2. 提供原始 Markdown 文件

加载并返回所请求页面的原始 Markdown 内容:

if (acceptHeader.includes("text/markdown")) {
  const markdownContent = await loadMarkdownForPage(req.path);
  res.setHeader("Content-Type", "text/markdown; charset=utf-8");
  res.send(markdownContent);
  return;
}
Enter fullscreen mode Exit fullscreen mode

3. 回退到现有行为

对于所有其他请求(浏览器、爬虫等),请继续使用现有的 HTML 渲染方式:

res.render("docs", { content: processedContent });
Enter fullscreen mode Exit fullscreen mode

4. 测试你的实现

用于curl验证您的实现是否正确:

# Request Markdown
curl -H 'Accept: text/markdown' https://lingo.dev/en/cli

# Request plain text
curl -H 'Accept: text/plain' https://lingo.dev/en/cli

# Request HTML (default)
curl -H 'Accept: text/html' https://lingo.dev/en/cli
Enter fullscreen mode Exit fullscreen mode

对于 Markdown 请求,您应该看到:

  • 响应头:Content-Type: text/markdown; charset=utf-8
  • 正文:不含 HTML 标签的原始 Markdown 内容

对于 HTML 请求,您应该会看到正常渲染的页面。

延伸阅读和资源

要了解更多实施方法,请查看以下资源:

(如果您已经创建了自己的指南、示例或模板,请在评论中分享,以便我将其添加到文章中。)

文章来源:https://dev.to/lingodotdev/how-to-serve-markdown-to-ai-agents-making-your-docs-more-ai-friend-4pdn