跟成熟 coding agent 學設計(33):Session 錄製與 replay——從事件檔走到可重播、可分叉
looplane 已把 events.jsonl 接成 deterministic reducer、CLI timeline、canonical JSON、SDK replay 與安全分叉;分叉不會重跑舊工具或模型呼叫。剩下的是 provider/live runtime 驗證、redaction 與更完整的 replay hook。
looplane 已把 events.jsonl 接成 deterministic reducer、CLI timeline、canonical JSON、SDK replay 與安全分叉;分叉不會重跑舊工具或模型呼叫。剩下的是 provider/live runtime 驗證、redaction 與更完整的 replay hook。
Ask AI 同一次請求有五種不同證據:公開 SSE、Langfuse trace、D1 log、semantic cache 與 hidden shadow run。它們看見的資料不同,單看任一層都不能還原完整 retrieval context。
AI Gateway 解的是 AI 呼叫的控制問題:同一層處理 logs、analytics、cache、rate limit、retry/fallback、BYOK 與 Unified Billing。Workers 內可用 env.AI.run(..., { gateway }),外部 SDK 則改 baseURL 或 provider-native endpoint。
Workers Observability 負責 debug 和 request tracing;Workers Analytics Engine 負責高基數產品事件與自訂 metrics;GraphQL Analytics API 則查 Cloudflare 既有產品資料。把三者分清楚,才不會把 log 當資料庫,也不會把 billing、monitoring、產品分析混在一起。
agent 跑完之後,「模型說它做完了」不是證據。codex 把 trace 拆成 manifest + JSONL + payloads 的 bundle、omp 用 SQLite 鏡像磁碟上的固定檔案、pi 用 runs.jsonl 索引原生 session 檔。looplane 選了最硬的一條:每個 run 固定六個檔案,缺一個就不算完成,patch 審計看 changes.patch 不看口頭宣稱。
Observability 不是事後加的 log,而是第一公民:結構化 Trace 連結 FlowRun→StepRun→SkillInvocation→ProviderCall→ToolInvocation→GuardResult→EvidenceItem→ArtifactVersion。Evidence Store 讓每個 claim 追溯到 source/excerpt/citation/confidence/conflict。Artifact 版本化支援 approve/reject/regenerate 不刪除歷史。Context Snapshot 按類別分配 token budget,超額自動壓縮記錄決定。Memory 分 procedural/episodic/semantic 三類,寫入需 proposal 經人工審核。
只有兩個 role 會叫 LLM,其餘分析師全程程式化;每個 call 依 Anthropic API → 本地 claude CLI → 規則降級的鏈路走,成本只信 provider 回報值,未知成本永遠不當 $0。
一個 Python agent 從本機 uv run 到 Docker 到 Cloudflare Containers 公開 API 的完整部署鏈:Worker 擋認證、Container 跑 FastAPI、secret 永遠不進映像檔,10 分鐘沒人用就自動休眠——side project 的正確省錢姿勢。
Braintrust 把 versioned datasets、immutable experiments、scorers 與 production traces 接成同一個評估迴圈;它的價值不是多一個分數,而是把線上失敗送回離線測試。公司在 2026-02 宣布 8,000 萬美元 B 輪,客戶名單為公司自報。
Mastra 是 TypeScript agent 框架,將 agent、typed workflow、memory、MCP、tracing 與 scorers 放進同一套 Node.js 開發環境。
Patronus AI 把 evaluator 當成可重用評分單元,再接到離線 experiment 與線上 trace;它適合要現成幻覺、安全與多模態評估模型的團隊,但 judge 分數不能取代人工標註、確定性測試或真正的資安驗證。
Portkey 是放在應用程式與模型供應商之間的 AI Gateway:用一個 OpenAI 相容端點統一路由、fallback、用量紀錄、預算與 guardrails,也能自行架設開放原始碼 gateway。
私有搜尋的授權必須在候選生成前生效,並把 ACL、刪除事件與來源版本傳到每一份衍生索引;freshness 也要用可量測的事件時間與 SLA 管理。
最後一週的講題是「self-running, self-improving software systems」。前九週的零件其實都出現過:確定性驗證迴圈、可寫回的 skill、背景 agent、集中治理。課程投影片有個容易被忽略的比例——寫程式只佔工程時間的 30%,另外 70% 是把它跑在 production 上。
業界已收斂到用 OpenTelemetry GenAI 語義約定把每個 LLM call / tool call 變成 span;偵測三大故障再分三條線:faithfulness + semantic entropy 抓幻覺、framework 層 symbolic guardrail 擋 tool misuse、max steps + action hash 去重防無限迴圈,最後全部掛上 Final / Trajectory / Single-step 三層評估。
不是每個人都該直接用 coding agent 改 code。AI Native 團隊要搞定 interface 規格、測試先行、monorepo、security guardrail、human-in-the-loop 與 token 預算管控,在 coding agent 上面再建一層 agent platform 並明確開發者角色轉型才是正途。
Langfuse 是目前最成熟的開源 LLM Observability 平台。這篇從 Tracing、Prompt 管理、評估、Dataset 四個核心功能切入,帶你搞清楚它在實際專案中怎麼用。
自己寫 trace 夠用,但開源工具讓你少做很多事。Langfuse、Phoenix、LangSmith 各有定位,選哪個取決於你對自架、開源、整合複雜度的取捨。
RAG 系統最難的不是建起來,是搞清楚為什麼這次回答不好。Pipeline Tracing 把每個步驟的決策和數據記下來,讓除錯有跡可循。