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 許可證也使得社區可以自由使用和貢獻。