面向 AI Agents 的 Link Headers

HTTP Link header 可以使用已注册 relation 暴露 API catalog、机器可读服务描述、人工文档和元数据。本文说明标准边界、响应语法、部署检查与常见误用。

发布于 2026-07-04
·
更新于 2026-07-22
·
2 分钟阅读

面向 AI Agents 的 Link Headers

Link headers 是 HTTP 响应里的链接字段,可以在 agent 解析页面正文前,先告诉它相关资源在哪里。对 AI agents 来说,它可以作为 API catalog、机器可读服务描述、人工文档和服务元数据的轻量发现层。

它不能替代可见导航或 HTML 链接,但可以补充一个协议层信号,让 crawler 或 agent 不必只靠抓页面模板来猜资源位置。

为什么重要

AI agents 经常从一个 URL 开始,然后需要判断:

  • 有没有 API 描述文件?
  • 有没有人工文档或服务状态页?
  • 有没有注册在 IANA 的 relation 能准确表达这种关系?

HTTP Link header 可以直接暴露这些资源。

常见发现目标

  • rel="api-catalog":指向发布方的 API 目录;RFC 9727 同时定义 /.well-known/api-catalog
  • rel="service-desc":指向主要供机器使用的 API 或服务描述,例如 OpenAPI 文件
  • rel="service-doc":指向主要供人阅读的服务文档
  • rel="service-meta":指向其他机器可读服务元数据
  • rel="status":指向服务状态资源
  • rel="alternate":指向当前资源的替代表示;必须结合媒体类型和具体使用场景解释

relation 应以 IANA Link Relation Registry为准。不要随意创造一个看起来合理的 relation 并假设客户端认识它。sitemap 目前不是该注册表中的标准 relation;面向搜索引擎提交 sitemap 时,应继续使用 robots.txt、Search Console 和搜索引擎明确支持的方式。

响应示例

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Link: </.well-known/api-catalog>; rel="api-catalog"; type="application/linkset+json"
Link: </openapi.yaml>; rel="service-desc"; type="application/yaml"
Link: </docs/api/>; rel="service-doc"; type="text/html"

一个响应可以包含多个 Link 字段,也可以在一个字段中用逗号组合多个链接。部署时要检查 CDN、反向代理和 Pages/Workers 规则是否保留了全部字段,避免后写入的值覆盖前一个。

SEO 建议

把 Link headers 当成支撑基础设施,而不是内容替代品。核心页面仍然需要可抓取 HTML、canonical、内部链接、结构化数据和清晰正文。

适合 Agent SEO 的模式是:

  1. 重要资源保留 HTML 链接
  2. 为机器发现补充 HTTP Link headers
  3. 让 header 指向稳定资源
  4. 测试原始 HTTP 响应,不只看渲染页面

发布审计清单

  1. 使用 curl -I 或等价工具检查生产响应,而不是只看源码。
  2. 确认目标 URL 返回预期状态码、媒体类型和 CORS 策略。
  3. 验证 relation 已注册,且语义与目标资源一致。
  4. 同时保留人类可发现的 HTML 导航,不把 Link header 当成唯一入口。
  5. 对私有 API catalog、认证元数据和内部服务描述执行访问控制,不能因为“机器可读”就默认公开。
  6. 记录 relation、目标格式、版本和负责人,避免协议文件长期失效。

Link header 是发现机制,不是搜索排名保证,也不代表 agent 获得调用或付款授权。客户端仍需决定是否支持该 relation,并继续执行认证、策略与安全检查。

相关概念

官方资源

Privacy & Cookies

We use cookies to enhance your experience. By continuing to visit this site you agree to our use of cookies.