AgentRail:为网站打造的AI代理友好层
AgentRail 是一个部署在 Cloudflare 边缘的层,它会为已知的 AI 代理提供确定性的 Markdown 响应,而人类和传统爬虫则继续获取原始 HTML。它包含机器人检测、Markdown 提取、爬虫和 Worker 运行时等组件,并支持通过 Cron 触发器进行后台爬取。项目旨在减少 AI 代理对网站造成的负载,并确保内容提取的一致性。
AgentRail 是一个新颖的 Cloudflare 边缘层解决方案,专门为日益增长的 AI 代理流量而设计。它的核心思想是对已知的 AI 代理(如 GPTBot、ClaudeBot 等)直接返回结构化的 Markdown 内容,而对人类用户和传统搜索引擎爬虫则照常提供原始的 HTML 页面。这种区分处理不仅能显著降低源服务器的负载,还能为 AI 代理提供更为干净、一致的数据源。
项目由多个子包组成:@agentrail/bot-detector 负责精确分类请求来源(AI 代理、搜索爬虫、浏览器等);@agentrail/markdown-extractor 负责将 HTML 转换为确定的 Markdown;@agentrail/crawler 管理站点地图解析、链接发现和爬取流程;@agentrail/worker 则作为 Cloudflare Worker 的运行环境。此外,create-agentrail 脚手架工具可帮助开发者快速搭建项目。
AgentRail 的请求处理流程非常智能:当已知 AI 代理首次请求某个页面时,如果 KV 存储中还没有对应的 Markdown,系统会返回原始 HTML,但同时通过 Cloudflare 的 ctx.waitUntil 机制在后台异步生成 Markdown 并存入 KV。这样,后续来自同一 AI 代理的请求就能直接获得 Markdown,而不会增加额外的延迟。后台的 Cron 触发器还会定期爬取站点地图,主动预热 KV 缓存。
项目还提供了灵活的部署选项。开发者可以通过脚手架工具一键生成包含正确 KV 命名空间配置的 Worker 项目,并自动安装依赖。对于已有 Cloudflare 账户的用户,只需运行 npm run deploy 即可完成部署。同时,项目也支持手动配置 KV 命名空间,以适应不同的开发环境。
值得注意的是,AgentRail 对 AI 代理的默认列表包含了主流的 AI 爬虫,但同时也明确将 Googlebot、Bingbot 等传统搜索引擎爬虫排除在外,确保它们依然获得完整的 HTML 页面。这种设计既满足了 AI 应用对结构化数据的需求,又不影响传统 SEO。
总的来说,AgentRail 为网站所有者提供了一种优雅的方式来管理和优化 AI 代理的访问,无需牺牲用户体验或搜索引擎排名。它的开源特性和 Apache-2.0 许可证也使得社区可以自由使用和贡献。