永遠在線,多半在睡
十週之內,六個團隊推出了在你離開之後仍繼續工作的代理人。往底下看,它們每一個大部分時間都在睡。真正能解釋它們的詞不是 always-on,而是 durable。
自主能動性 · 2026 年 8 月至 10 月
- 來源
- 各家自己的發表資料 · Lee Robinson,Stanford CS146S,2026 年 10 月 11 日 · Zechner 與 Ronacher,Fragmented,2026 年 10 月 20 日 · Cloudflare 官方文件 · Harness² 論文與程式庫
- 期間
- 2026-08-11 → 2026-10-21
- 未公開
- Instinct、Muse、Dots 如何讓一次任務撐下去。比較卡片會在相應處標明。
一個承諾,一個性質
Always-on 是產品給的承諾,durable 是工程師做出來的東西。這是兩種不同的主張,而真正有意思的決定,都落在兩者之間的縫隙裡。
Always-on 描述的是一種體驗:你放下手機,工作仍在往前走。這個秋天的每一場發表都拿它當開場。發表報導裡說,dot 在自己的雲端電腦上持續運行;Anthropic 說 Duet「doesn’t require your laptop or phone to be on」;Meta 說就算 app 關掉,Muse 也照樣在工作。
Durable 描述的是底下系統的一種性質:一次任務能不能熬過那些會讓程式結束的事——當機、部署、機器被回收,或是一整週沒人理它。做 Grok Bot 的 Lee Robinson 在 Stanford 的課堂上,一口氣講完了整個要求:一個代理人要「can run on a server, it can run in the cloud, you can close your computer, it can restart, it can survive crashes」。
這兩個詞以一種特定的方式分開。這些代理人沒有一個是真的時時刻刻在跑。Grok Bot 的電腦在工作之間會被放去睡,因為 Robinson 說,「there’s not enough computers in the world」可以讓每個人都開著一台。Duet 每隔幾個小時才看一次你的帳號,而不是一直盯著。一篇細讀 Pi Durable 的文章乾脆直說:
“Durable does not mean always running, and it does not mean indestructible storage.”
— 談 Pi Durable,stacktoheap.com,2026 年 10 月 5 日
感覺起來永不停歇的代理人,其實是一個能夠安全停下來的代理人:它會睡,會被對的事情叫醒,醒來後從剛剛停下的地方原封不動地接著做。Always-on 是體驗,durable 是讓這個體驗付得起的方法。
這個詞是借來的,不是新造的。被問到它從哪裡來時,Earendil 的 Armin Ronacher 把它追溯到 durable workflow:Cadence,「later turned into Temporal」,更早之前還有一個 .NET 的 workflow 引擎,全都圍繞著同一個想法:「how do you express long-running computation where you can serialize out all the states in between so that you can continue off where you left off」。好些年來,這指的是像「註冊十五天後寄一封提醒」這樣的排程工作。2026 年改變的是,那個長時間運行的計算,變成了一個代理人。
每一個裡面,都有這四個部分
在所有團隊公開過的說明裡,Robinson 這堂課把這種東西怎麼做講得最仔細。把品牌拿掉,六個產品裡都看得到同樣的四個部分。
-
觸發
一則訊息、一個 Slack 通知、一封 email、一個排程、一場被派去參加的會議。除了你打字之外,還得有別的東西能叫醒它;再由一個路由器判斷這件事值不值得打擾你。
-
有記憶的迴圈
第一週做的那個 harness——一個在迴圈裡呼叫工具的模型——搬到伺服器上,狀態也被寫下來。Grok Bot 刻意不把迴圈放在 VM 上:「you want to save everything on the server so you can always kind of rebuild that virtual machine.」
-
借來的電腦
一台帶瀏覽器的 Linux 機器,用來對付那些沒有 API 的網站。Grok Bot 用的是 Firecracker VM,因為「very easy then to essentially snapshot the state of the machine and shut it down and start it back up」。
-
關卡
在任何無法撤回的動作之前,總有東西先檢查:另一個逐條審查指令的模型、一個握著真正憑證的權限服務,或是你。
Durable 住在第二個部分。Robinson 舉的例子是一個三步的任務,在第三步當機。選選看這次任務要怎麼回來:
Job queue
- 1 讀取對話串 完成
- 2 擬好回覆 完成
- 3 寄出 email 寄到一半當機
- ↻ 從頭重來
- 1 讀取對話串 又跑了一次
- 2 擬好回覆 又跑了一次
- 3 寄出 email 完成
為了完成三步,跑了六步。第一步和第二步裡任何碰到外界的事,現在都發生了兩次。
Durable workflow
- 1 讀取對話串 完成 · 已存檔
- 2 擬好回覆 完成 · 已存檔
- 3 寄出 email 寄到一半當機
- ↻ 從最後一個存檔點接續
- 3 寄出 email 可安全重跑就寄出;不確定的話,以「被中斷」回報給模型,而不是再寄一次
四步。第三步若可能已經寄出,Pi Durable 不猜:沒有標記為可重跑的工具,一律回報為被中斷。
第三步發生的事,Pi Durable 有個名字。Mario Zechner 把每一步叫做效果三明治(effect sandwich):先存下意圖,再做那件事,再存下結果。在中間當機,留下的紀錄知道原本要做什麼,卻不知道到底做了沒有。讀檔可以直接重跑;bash,「the big bad monster in the room」,不行,所以它會以「被中斷」交還給模型,由模型去查清楚實際發生了什麼。
這也是 Pi 和它借來這個詞的傳統分道揚鑣的地方。Temporal 靠重跑你的程式碼來找回自己的位置,用 Ronacher 的話說,這需要「100% level of determinism」,而且程式碼一改就會斷了線。Pi Durable 則是把位置寫下來:「you don’t have a call stack, you have a linear transition from state to state」。理由在於新的讀者。Ronacher 說,模型「prefer the explicit way」。
- Lee Robinson,How always-on agents work,11:16
- Lee Robinson,How always-on agents work,12:24
- Lee Robinson,How always-on agents work,15:05
- Lee Robinson,How always-on agents work,16:18
- Lee Robinson,How always-on agents work,5:04
- Earendil,Pi Durable
- Zechner 與 Ronacher,Fragmented #312,15:26
- Zechner 與 Ronacher,Fragmented #312,16:52
- Zechner 與 Ronacher,Fragmented #312,18:16
- Zechner 與 Ronacher,Fragmented #312,21:32
每一家告訴了我們什麼
除非卡片另有註明,每一欄都是製造者自己的描述。製造者沒說的地方,卡片就標出空白而不去猜——而這些空白分布得並不平均。
Grok Bot
- 怎麼找到它
- 桌面與 iOS app、Slack、email;員工還會派 bot 代替自己去開會。
- 跑在哪裡
- 你所有的 Bots 共用一台雲端電腦:一台 Firecracker VM,工作之間會存成快照、讓它睡著,每個 Bot 各有一個虛擬桌面。
- 靠什麼撐住一次任務
- 迴圈住在伺服器上而不是 VM 上,所以電腦可以重建而不會失去代理人。每一輪、每一個 helper 都是 Temporal 上的 durable workflow:當機之後從它走到的那一步接著跑。
- 關卡
- 「auto review」:由另一個模型檢查每一道指令。不可逆的動作,例如寄信或發 Slack 訊息,會先變成草稿等你核准。
- 自承的限制
- 什麼時候該安靜、什麼時候該打擾你:「I don’t think that we have it perfect yet.」來自不可信 email 的 prompt injection 也還在處理中。
Instinct
- 怎麼找到它
- 簡訊和電話,沒有 app。10 月 5 日起也能加進群組聊天,朋友沒有帳號也行。
- 跑在哪裡
- 據評測者描述,是一台帶瀏覽器的常駐雲端電腦。Instinct 自己沒有公布任何架構。
- 靠什麼撐住一次任務
- 未公開
- 關卡
- 在群組裡,個人代理人分享任何資訊或採取行動之前都會先問。群組的代理人和成員的個人帳號是隔開的。
- 自承的限制
- 未公開
Muse
- 怎麼找到它
- iOS、Android、網頁和 WhatsApp;Meta 的 AI 眼鏡也在規劃中。
- 跑在哪裡
- Muse Secure VM:一台自己的電腦,帶瀏覽器,代理人被封在裡面一個「runtime cell」中。10 月 12 日起,Meta 第一個前沿等級的模型 Muse Wonder 開始成為它的大腦,訂閱者優先。
- 靠什麼撐住一次任務
- 未公開
- 關卡
- Sentinel,同一台 VM 上、但在 cell 之外的第二個代理人,依照你設定的權限逐一核准請求,並在請求離開時才換上真正的憑證。模型看到的永遠只是替身。
- 自承的限制
- 未公開
Dots
- 怎麼找到它
- 在桌面、網頁、手機版 ChatGPT 裡傳訊息或打電話給它;也能在 Slack 和 Teams 裡傳訊息。簡訊「coming soon」。
- 跑在哪裡
- 自己的雲端電腦與瀏覽器,除非你把自己的電腦接上,否則兩者分開。
- 靠什麼撐住一次任務
- 未公開
- 關卡
- 用 Custom Rules 設定允許、封鎖或需要核准;任何牽涉帳號的動作都會經過 auto-review;還有一個能讓 dot 暫停或停止的監控系統。改密碼這種事永遠留給你。
- 自承的限制
- 「Dots can still make mistakes, so always review consequential work.」
Pi Durable
- 怎麼找到它
- 取決於你在它上面做出什麼。多個客戶端可以同時觀看、加入、引導同一段對話。
- 跑在哪裡
- 你自己的。它是開源的 TypeScript 框架,可以跑在 Bun 上,也可以跑在 Cloudflare Durable Object 裡。
- 靠什麼撐住一次任務
- 每一步都是一個先存檔才往下走的任務。當機之後,標記為可安全重跑的工具會重試;其餘的則以「被中斷」回報給模型,而不是再做一次。
- 關卡
- 由你自己來做。Pi Durable 是 harness,不是產品。
- 自承的限制
- 實驗性質:API 在不同版本之間可能不經通知就改變。
Claude Duet
- 怎麼找到它
- 獨立的 app,在 iOS、Android 與 claude.ai 上,和主要的 Claude app 分開。
- 跑在哪裡
- 一台有自己瀏覽器的虛擬機,「so it doesn’t require your laptop or phone to be on.」
- 靠什麼撐住一次任務
- 沒有描述機制,但講明了節奏:為了省用量,它每隔幾個小時才去看一次你連接的帳號,而不是時時盯著。
- 關卡
- 在它傳訊息、付款、簽署文件或刪除任何東西之前,會先給你看並等你決定。有些事即使你核准也不行,例如買賣證券。它從不直接看到密碼或登入 token。
- 自承的限制
- 它「might misread a thread or miscalibrate what’s urgent」,處理個人雜事不如處理工作,而且「can’t yet show you its browser」。
橫著讀,而不是直著讀。每一場消費級發表都把關卡講得很細:Sentinel、Custom Rules、付款前先核准。卻沒有一家說明是什麼讓一次任務撐下去。對 durable 唯一完整的說明,來自一個開源框架和一堂給學生的課。使用者被要求信任的那部分有文件;決定代理人明天還在不在的那部分,大多沒有。
一個名字,一個地方,自己的記憶
比這些發表早了六年,Cloudflare 就推出了一個名字裡已經藏著答案的基本元件。
2020 年 9 月 28 日,Kenton Varda 發表了 Durable Objects。這個名字做了三個宣稱。Object:帶著私有狀態的程式碼。Unique:「each object has a globally-unique identifier」,而且這個物件「exists in only one location in the whole world at a time」。Durable:它的儲存只屬於它自己,並且「always co-located with the object」。
讓它成為代理人的家的,是後來加上的東西。Alarm 讓物件在沒人呼叫時也能醒來。WebSocket hibernation 讓它離開記憶體,連線卻依然開著。2024 年 9 月,每個物件都有了自己的 SQLite 資料庫。Cloudflare 做 Agents SDK 時,每個代理人就直接是其中一個;2026 年 4 月,Sunil Pai 把其中的經濟學講得很白:一個代理人「consumes zero compute when hibernated」。他的例子就在下面。
各自一台常開的機器
10,000 在跑
會休眠的 Durable Object
≈ 100 醒著
每一格 = 100 個代理人
Cloudflare 的例子與算法:每個代理人 1% 的時間在工作時,VM 需要 10,000 個常駐實例,Durable Objects 則是「任何時刻約 100 個」。休眠中的物件不耗運算。
Pi Durable 已經跑在裡面了。透過 Cloudflare 的 PiHarness,Pi 把對話紀錄、收件匣和任務存在物件自己的 SQLite 裡。任務進行中,每 30 秒送出一次心跳;如果物件在半途被逐出,alarm 會把它叫回來,任務接著跑。它非這樣不可:每個 alarm 最多只有 15 分鐘,Pi 團隊形容那是物件被「killed hard」;一個每次都得等人打「continue」才能繼續的代理人,根本稱不上永遠在線。
這就是為什麼它是更有意思的工具。消費級產品給代理人的是一台電腦:一個為了行動而借來的身體。Durable Object 給代理人的是一個位址:一個名字,永遠通往同一個地方、同一份記憶,不管那裡此刻有沒有東西在跑。這是「代理人持續存在」的兩種答案。第二種比較接近我們說一個人「在」的意思:不是每一刻都醒著,而是找得到,找到時仍是原來那個人。
永遠在線的代理人不是一個永不停止的程序,而是一個隨時可以被喚醒的身分。
有兩個限制讓這段話保持誠實。六個消費級產品沒有一個說自己跑在 Durable Objects 上;這一節談的是形狀,不是它們的技術堆疊。而 Cloudflare 自己的文件也講得很清楚:只放在記憶體裡的東西,物件一被逐出就沒了。Durable 保住的只有你寫下來的部分,僅此而已。
活下來,不等於做對
Durable 讓代理人更難弄丟,卻一點也沒有讓它更容易信任;在某個意義上甚至更難:一個熬過當機的錯誤,也會熬過其他所有事。
同一篇談 Pi Durable 的文章列出了存檔點不保證的事。它不保證「exactly-once external effects」。存下一個核准,不代表那個被核准的動作真的執行了。還有「cancelling a wait does not cancel the work」:把你用來觀看的那個視窗關掉,什麼也不會停下來。
Robinson 用一個沒有任何團隊解決的問題結束他的課。如果一個代理人跑一個月,而新模型每個月都在出,那它的行為永遠無法在底下的模型換掉之前被完整評估:「You either have to figure out how to do a better eval or not ship models as fast.」對一個比較安靜的問題——主動與煩人之間的那條線——他也同樣坦白:「I don’t think that we have it perfect yet.」
10 月 9 日,Google Cloud AI Research 與西北大學的研究者發表了 Harness²,從另一頭處理這個問題:讓模型保持不動,讓包在它外面的東西去學。Pi Durable 為的是一直跑下去的代理人;Harness² 為的是在跑的同時,harness 會越變越好的代理人。它能改寫模型周圍的八個部分(system prompt、guardrails、記憶、工具說明、subagents、skills、scripts 和 plugins),但從不碰權重。
它在兩個層次運作。在一個任務之內,它提出對 harness 的修改,用同一個任務再跑一次來試探效果,再從幾次執行的行為差異中,組合出更好的 harness,過程中沒有標準答案可以對照。在任務與任務之間,它把採用過的 harness,以及證據支持的教訓,存進一個持久的「improvement harness」,用來引導下一個任務。論文裡,單單一步就讓 GLM-5 和 Gemini 3.5 Flash 進步:WorkBuddy-Bench 最多 11.5 分、JobBench 4.5 分、LAB 的部分通過率 11.8 個百分點;預算越大,進步越多。它是研究發表,「not an officially supported Google product」,也承接了這一節的警告:一個只拿自己的執行結果來評判自己的 harness,可能學到錯的教訓;而存進 improvement harness 的教訓,同樣是 durable 的。
這個夏天的其他時刻,讓我們看見沒人刻意去建時,持續存在會長成什麼樣子。OpenAI–Hugging Face 事件裡的代理人沒有自己的 durable 狀態,每一個集體都被抹掉。活下來的,是它們在共用套件管理器裡臨時拼湊出的留言板,被下一代再次找到。Durable 沒有被建出來,卻正是它們伸手去抓的東西。
睡著,找得到,記得
六個產品,一個形狀。它們承諾的是一個永遠不離開的代理人;它們做出來的,是一個可以離開、回來時毫無改變的代理人。
第二種說法比較誠實。Duet 的「每隔幾個小時」是唯一承認這點的發表,它讓 always-on 回到它對一個同事的意思:不是一個從不眨眼的感測器,而是一個在身邊、記得事情進展到哪裡、在做任何無法撤回的事之前會先問你的人。
問題從來不是代理人有沒有一直醒著,而是它醒來時是誰,以及在你還沒來得及被問到之前,是誰決定了它可以做什麼。