Ask AI 明明有課程地圖,為什麼列不完整:Catalog Query 的召回與收斂事故
「有哪些課程文章」第一次觀測被舊快取干擾;真正未命中的 request 已找回四所大學課程地圖,卻因三輪 Writer/Critic 重試花了 51.169 秒。修正 catalog 專用檢索與 review 契約後,一次未命中快取的 production observation 在 26.821 秒內通過 q21。
「有哪些課程文章」第一次觀測被舊快取干擾;真正未命中的 request 已找回四所大學課程地圖,卻因三輪 Writer/Critic 重試花了 51.169 秒。修正 catalog 專用檢索與 review 契約後,一次未命中快取的 production observation 在 26.821 秒內通過 q21。
Ask AI 的 production 索引分兩階段:先用 source hash 增量更新 D1、post_chunks 與 FTS5,再以 embedding checkpoint 和 delete queue 讓 Vectorize 非同步追上;兩邊不是同一個 transaction。
Agent Memory 是 Cloudflare 的 private beta 服務,用來讓 agent 跨對話記住使用者、團隊、專案與任務脈絡。它適合存 facts、events、instructions、tasks;RAG 文件、產品資料、檔案和 audit log 仍應該放在 AI Search、Vectorize、D1 或 R2。
Cloudflare Agents 把 agent session 做成 durable runtime:每個 agent instance 有穩定 identity、local SQLite、WebSocket、scheduled work、recoverable execution 和 tools。它不只是聊天範例;真正處理的是怎麼把 Workers、Durable Objects、AI model、Browser、Sandbox、AI Search、MCP 接成可部署的 agent app。
AI app 不該把 conversation、artifact、memory、retrieval document、lock、eval trace 全塞進同一個 storage。D1 適合查詢與產品資料,R2 適合大型檔案與 artifact,Durable Objects 適合具名協調、WebSocket、per-session state;Agent Memory / AI Search / Vectorize 則分別處理記憶與檢索。
AI Gateway 解的是 AI 呼叫的控制問題:同一層處理 logs、analytics、cache、rate limit、retry/fallback、BYOK 與 Unified Billing。Workers 內可用 env.AI.run(..., { gateway }),外部 SDK 則改 baseURL 或 provider-native endpoint。
Cloudflare AI Stack 這條系列回答 AI app 的基礎設施問題:模型怎麼跑、gateway 怎麼控、RAG 怎麼做、agent 怎麼持續執行、memory 怎麼治理、browser/sandbox/secrets 怎麼接進產品。
Secrets Store 是 Cloudflare 的 open beta account-level secret store,目前整合 Workers 和 AI Gateway。它適合把 provider API keys、BYOK key、跨 Worker 共用 secret 集中管理;per-Worker secret 仍可用,但治理範圍不同。
Vectorize 是 Cloudflare 的向量資料庫。AI Search 適合先把 RAG pipeline 交給平台;Vectorize 適合你要自己控制 chunking、embedding、metadata filter、hybrid retrieval、重新索引與降級策略。
Looplane 的舊同步 M6 路徑曾完成一次真實 deployed coding run;目前已擴成帶 RunSession、SSE、approval、cancel 與 artifact 的 async control plane,但新增路徑尚未 live revalidate。Sandbox 只拿分 audience 的短效 HMAC capability,provider credential 留在 Worker;現有證據不等於 production traffic 或 SLO。
Browser Run 讓 Workers 使用 Cloudflare 管理的 headless Chrome。Quick Actions 適合 screenshot、PDF、HTML、JSON、crawl 這類單次任務;Browser Sessions 則適合 Puppeteer、Playwright、CDP、Stagehand 這類需要完整控制的 automation。
Cloudflare Cache Rules 是 zone 層的快取政策:用 request expression 決定哪些內容 eligible for cache、Edge TTL/Browser TTL 怎麼算、cache key 包哪些維度,以及遇到 stale、ETag、purge 時怎麼處理。它適合管理 CDN 快取規則;Worker Cache API 則適合程式化存取。
Cloudflare Containers 讓 Workers app 呼叫 on-demand serverless container,適合需要完整 filesystem、特定 runtime、既有 container image、更多 CPU/memory/disk 的工作。它不取代 Workers;Worker 保留入口與 routing,container 處理 runtime 太重的那段。
Cloudflare Edge Platform 這條系列回答一個產品問題:怎麼用 Workers、D1、KV、R2、Durable Objects、Queues、Workflows、Cache、Images、Email、Turnstile、Observability、Browser Run、Containers,把網站或 app 跑起來、跑穩、跑便宜。
Cloudflare app 上線前不要只看 deploy 成功。Custom Domains、Routes、www/root redirect、維護頁、CPU/memory/subrequest limits、log sampling、fallback path 都要先檢查。這篇把 Edge Platform 系列裡的 production pitfall 收斂成一份 checklist。
Cloudflare Email Service 把產品常見的交易信、magic link、通知與收信 routing 接進 Workers。寄任意收件人目前需要 Workers Paid;收信 routing 可在 Free/Paid 使用,但仍要注意 DNS、配額、message size、bounce 和 anti-spam 邊界。
Hyperdrive 解的是 Workers 連到既有 Postgres / MySQL 的延遲與連線池問題。它用 edge connection setup、靠近資料庫的 connection pool、read query cache,讓單區資料庫比較適合被全球 Workers 存取。
Cloudflare Images 有兩條路:把 R2/S3/origin 圖片拿來做 edge transformations,或直接把圖片存進 Images 再用 variant delivery。前者按 unique transformations 看成本,後者還要看 stored 和 delivered images。
Workers Observability 負責 debug 和 request tracing;Workers Analytics Engine 負責高基數產品事件與自訂 metrics;GraphQL Analytics API 則查 Cloudflare 既有產品資料。把三者分清楚,才不會把 log 當資料庫,也不會把 billing、monitoring、產品分析混在一起。
Smart Shield 是 Cloudflare 的 origin protection bundle:用 Smart Tiered Cache、connection reuse、Argo Smart Routing、Regional Tiered Cache、Cache Reserve、Health Checks 和 Dedicated CDN Egress IPs,減少打到 origin 的 request 與 connection。
Turnstile 是 Cloudflare 的 CAPTCHA 替代方案:前端 widget 產生 token,後端必須用 Siteverify API 驗證。token 有效 300 秒、只能驗一次;只放 widget 不驗 token,等於沒有完成防護。
Cloudflare Workflows 把 Workers 上的多步驟流程拆成可持久化的 step:每個 step 可以 retry、sleep、waitForEvent、rollback,instance 可以查狀態、暫停、恢復或終止。Queues 適合單步背景工作;Workflows 適合要記住進度的長流程。
沙箱不是單一套件,而是 Namespace、cgroups、seccomp、gVisor、Firecracker 層層疊起的光譜;本地 OS 級沙箱管爆破半徑,雲端 microVM 管多租戶隔離,選型關鍵在信任邊界與維運成本。
前身 AutoRAG 的託管搜尋原語:丟文件進內建儲存或綁 R2/網站,自動走 Markdown 轉換、切分與向量加 BM25 索引,透過 hybrid 加 RRF 加 rerank 檢索,並以 namespace 與 instance 兩種綁定或 REST 與 MCP 在 Worker 與 Agent 內查詢。
在 Ask AI 輸入「我想找入門的ai課程」顯示搜尋文章 0 筆並觸發拒答,底部的延伸閱讀卻精準推薦相關文章。第一輪修正中文斷詞、LIKE fallback 與 Vectorize 資料鏈路;第二輪再補漢字+數字短詞、文章 metadata 檢索,以及只在 Validation/Critic 通過後顯示來源。
查「認證」只有 10 筆,149 篇裡 41 篇命中被漏掉:D1 FTS5 的 unicode61 對 2 字中文失效、本地 chunks_fts 0 筆、加上硬上限 12 的共同結果;用 LIKE fallback 與拆字 OR 先把召回補回來,再補 trigram 重建與分頁。
Agent Platform 採 Cloudflare-first 架構:本機 `npm run dev` 跑 Node 模擬,生產映射到 Workers + Workers Assets + D1 + KV + R2 + Vectorize + Queues + Workflows + Durable Objects + Workers AI。Runtime 介面相同(InMemory → Cloudflare 實作),上層零感知遷移。部署只需 `wrangler login` → 建資源 → 填 ID → `wrangler secret put` → `wrangler deploy`。CI/CD 監聽 main 分支,跑 typecheck + build + dry-run + migration + deploy。
Agent Platform 把 AI agent 從「空白聊天視窗」升級為「可定義、可版本化、可觀測、可驗證、可改進」的結構化工作流平台,內建 Deep Research seed flow 示範完整閉環。
一個 Python agent 從本機 uv run 到 Docker 到 Cloudflare Containers 公開 API 的完整部署鏈:Worker 擋認證、Container 跑 FastAPI、secret 永遠不進映像檔,10 分鐘沒人用就自動休眠——side project 的正確省錢姿勢。
Kitesurf 是 Browser Run 內仍在 beta 的非 Chromium 瀏覽器後端:用 Workers isolates、Rust/Wasm 與無狀態元件換低 CPU/記憶體,但犧牲像素相容性、長登入工作階段、WebGL 與完整反機器人能力。
Durable Objects 把一個 name 或 ID 對到全球唯一、單執行緒、帶私有 SQLite storage 的 actor。它適合 per-room、per-user、per-tenant、per-run 這種需要強一致協調的邊界;真正的設計題是 object key 要切在哪裡。
手機 Chrome 登入後跳回登入頁,不一定是 OAuth 或前端狀態壞掉;這次根因是 app-dev.daodao.so 的 HTTP 入口沒有 301 到 HTTPS,導致 /auth/me 以 http origin 發出時沒有帶 auth_token。
別再把所有 tool description 在 session 開頭一次塞進 context。讓 model 寫 code、runtime 執行,tool 定義只在 import 那行才進 context — Anthropic 的 GDrive→Salesforce 範例從 ~150K tokens 降到 2K,Cloudflare 的 2,500 endpoints schema 從 1.17M 降到 1K。
Karpathy 在 2026 年提出 llm-wiki 模式,讓 LLM 主動維護 markdown wiki 而非每次從頭 RAG;目前已有 100+ 開源實作,從本機 CLI 到 serverless Telegram bot 各有差異。
Cloudflare 內部跑了 30 天 Multi-Agent Code Review,131K 次 Review、中位數 3 分鐘。這篇整理他們的架構,以及 Anthropic、GitHub、CodeRabbit、Greptile 等業界方案怎麼做同一件事。
AEO/GEO 工具不是單一類別,而是三個面向:輸入面(網站有沒有準備好給 AI 讀)、流量面(AI bot 實際爬了多少)、輸出面(品牌在答案裡怎麼被提到)。這篇把三面向、從開源自架到商業 SaaS 的工具一次攤開。
env.AI 這個 binding 不是只有 run()。它還掛了 toMarkdown(文件轉 Markdown)、autorag(託管 RAG)、gateway(外部 provider 代理)、models(metadata 查詢)。認識這四組方法,才能在 Workers 上把 Cloudflare 當完整的 AI 平台用。
標準 Playwright 無法通過 Cloudflare 驗證。playwright-extra + stealth 和 nodriver 都能繞過,最終包成 MCP server 讓 AI agent 自動使用。
nginx 重啟期間短暫出錯,Cloudflare 偵測到 origin 不健康後停止轉發請求,自己回傳 502。localhost 打 origin 是 200,nginx access log 空白是關鍵線索。等 Cloudflare 自動 re-check 即可恢復。
Cloudflare Custom Error Pages 需要付費方案,Free Plan 可改用 Worker inline HTML 攔截 5xx。
即使 route 有 prerender = true,Cloudflare Workers 的 Rollup 還是會嘗試打包 native module,導致 build 失敗。把需要 native module 的工作移到 postbuild script 才是正解。
為了集中散落筆記、展示多元興趣,選用 Astro + Cloudflare Workers D1 建立個人部落格,搭配 Claude post skill 讓寫作零阻力。
wrangler.jsonc 的 routes 用 custom_domain: true,pattern 只填 hostname,不加 /*
Astro + Cloudflare 全家桶,靜態優先、邊緣運算、零維運成本