AI Engineer Europe 2026 · 演講 · 2026-05-17 · 19 分
AI 體驗卡關,問題在傳輸層
Why Your AI UX Is Broken (and It's Not the Model's Fault) · Mike Christensen,Ably
Mike 認為直接 HTTP 串流把 AI 體驗綁死在單一連線上,主張在 agent 與 client 之間放一層 durable session,並示範 Ably 的做法。
概要
- 預設的串流做法有天花板主流框架預設用 SSE,client 對單一 agent 建立單一連線。Mike 主張這種模式限制了 AI 產品能做出的體驗品質與豐富度。
- 好體驗靠三項能力Mike 說訪談過 40 多家公司,歸納出可續傳的串流、跨裝置的連續對話、agent 工作時的即時控制,是區分脆弱 demo 與好產品的關鍵。
- 根源是一切綁在單一請求串流的健康綁著 client 連線,連線一斷就沒了;連線又是私有管道,其他分頁與裝置看不到進度,也無法插話。
- Durable Sessions 把兩端拆開在 agent 層與 client 層之間放共享、持久、有狀態的 session,agent 直接寫入,client 隨時連上來重播或續傳。
- SSE 讓續傳與取消互斥因為只能單向,按停止只能關連線,agent 分不出是取消還是稍後重連。Mike 引 Vercel AI SDK 的文件,裡面也寫明 abort 與 resume 不相容。
- Ably 用 Channels 實作Channels 可獨立定址、持久、可續傳,Ably AI Transport 在上面處理事件還原、多工與多裝置分發,並以客服聊天 demo 示範。
原話
▶ 05:28“Many teams are doing this with a concept called Durable Sessions.”
許多團隊用一個叫 Durable Sessions 的概念來做這件事
▶ 08:30“resume and cancel are mutually exclusive when you're using SSE in particular”
尤其用 SSE 的時候,續傳和取消是互斥的
▶ 09:06“a bi-directional transport doesn't solve all of our problems automatically”
雙向傳輸並不會自動解決我們所有的問題
▶ 13:41“They are persistent, which means the messages on the channel outlive the life cycle of any individual connection, any individual device, any individual agent”
它們是持久的,意思是 channel 上的訊息比任何單一連線、單一裝置、單一 agent 的生命週期都長
▶ 16:30“There is no additional agent logic to make this work, right?”
要讓這個運作,不需要任何額外的 agent 邏輯,對吧?
延伸
- Mike 給的 Ably 規模:每月超過 300 億次連線、超過 2 兆次 API 操作;過去一年訪談的是 10 個產業、40 多家公司。
- 斷線續傳的情境,Mike 舉的是:走出家門時手機從 Wi-Fi 切到 5G,或使用者重新整理頁面、離開再回來。
- 即時控制的例子是 Claude Code:看到它正在做什麼,就能送訊息引導、追加要求,不必等它做完。
- demo 裡在第二個分頁發起的子 agent 研究任務,可以從第一個分頁取消。
章節
點時碼直接跳到原片的那一段。
- 開場:AI 聊天應用Mike 先問現場有多少人做過 AI 聊天應用,幾乎全場舉手,接著說明使用者送訊息、agent 即時串流回應是最基本的積木。
- 預設的 HTTP 串流目前主流做法是 Vercel AI SDK、TanStack AI 預設的 SSE:client 對 agent 建立一條點對點連線,agent 再把 LLM 的事件串流轉送回來。
- Mike 與 Ably 簡介Mike 是 Ably 的 staff engineer,主張這種單一 client 對單一 agent 的模式,限制了 AI 產品的體驗品質與豐富度。
- 三項基礎能力訪談了 40 多家公司後歸納,好的 AI 體驗靠三件事:串流斷線能續傳、對話跨裝置延續、能在 agent 工作時即時控制。
- 問題出在綁定單一請求串流的健康綁著 client 的連線,連線一斷串流就沒了;而且這條連線是私有管道,別的分頁、裝置看不到也插不上手。
- Durable Sessions 概念把 agent 層與 client 層拆開,中間放一個共享、持久、有狀態的 session,讓兩邊都透過它互動。
- 可續傳串流的負擔直接串流要自己存事件、編序號、寫 resume handler,還得對每個斷線時間點不同的 client 各自重播;有了 session 就不用 agent 操心。
- SSE 讓續傳與取消互斥SSE 只能單向,按下停止鈕只能關連線,agent 無從分辨是要取消還是等會重連;Mike 說要雙向控制,例如改用 WebSocket。
- 多分頁、多裝置就算換成 WebSocket,第二個分頁或手機仍看不到進行中的回應,也沒有通道追加「改訂週三」這類指令;session 讓所有 client 持續連著並互通。
- 多 agent 並行orchestrator 不必再轉發子 agent 的細部進度;各 agent 獨立寫入 session,client 只訂閱一個對象就能看到全部。
- 以 PubSub 與 Channels 實作Ably Channels 讓發布者與訂閱者透過共享資源溝通,具備可獨立定址、持久、可續傳三個特性,正好拿來做 session 層。
- Ably AI Transport一層可直接套用的 durable session 做法,不限模型、供應商或 agent 框架,處理事件還原、續傳、多工與多裝置分發,另有推播與共享資料物件。
- 示範:電子產品客服聊天示範一個客服聊天介面,多個分頁自動同步、斷網後自動接續,不需要額外的 agent 邏輯。
- 並行任務與轉接真人示範使用者一邊買耳機、一邊取消訂單,兩個 agent 同時寫入 session;再把真人客服加進同一個 session,看得到完整對話紀錄並直接接手。
名詞
- Ably
- Mike 任職的即時訊息平台,提供各種即時與互動體驗的 SDK 與 API,包含 AI 體驗
- Durable Sessions
- 位於 agent 層與 client 層之間的共享、持久、有狀態的媒介,兩邊都透過它互動
- SSE(Server-Sent Events)
- 只能由 server 單向推給 client 的串流方式,是主流 AI 框架的預設傳輸
- Vercel AI SDK
- Mike 舉例預設使用 SSE 的框架,還引了它的文件說 abort 與 resume 功能不相容
- TanStack AI
- Mike 點名同樣預設使用 SSE 的框架
- Ably Channels
- Ably 的共享資源,發布者與訂閱者經由它溝通;可獨立定址、持久、可續傳
- Ably AI Transport
- Ably 在做的 durable session 套用層,可接任何事件串流格式







