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