返回部落格

常駐的個人 AI 代理如何讓長期工作持續推進

看看常駐的個人 AI 代理如何儲存任務狀態、等待依賴、在正確的環境中恢復工作,並把關鍵決定交還給你。

開始使用閱讀文件

許多重要的任務,並不是在有人積極處理時失敗的。它們失敗在空檔裡。

供應商還沒回復。一份報告依賴明天才到的數字。一個瀏覽器工作階段開在一台電腦上,而能核准下一步的人在另一個時區。等依賴終於解除,最初的對話早已被淹沒,沒人記得工作到底停在了哪裡。

常駐的個人 AI 代理應該擅長處理這些空檔。它不需要持續思考,也不需要讓一台電腦全功率運轉。它需要保住責任:它接下了什麼結果、已經做了什麼、在等什麼、工作材料放在哪裡,以及什麼事件或決定能讓任務繼續。

這就是長對話和長期工作的區別。長對話存的是訊息。長期工作需要一個持久的執行狀態。

長期工作需要一個持久的 Task,而不是更長的對話

對話適合用來確立意圖,卻不適合作為承擔責任的單位。

假設你讓 AI 代理在財務完成月結後準備一份董事會報告。有用的狀態不只是你最初的請求,還包括已經拼好的草稿、核對過的原始檔、缺少的數字、預計提供這些數字的人或系統、會議的截止時間,以及最終報告必須達到的標準。

在 Comma 裡,需要的不只是一個快速回答的工作會變成一個 Task。根據 Comma Task 文件,Task 可以經歷進行中的工作,在需要人來決定時停在 待審核,並在工作完成時進入 已完成。重要的不是標籤本身,而是聊天關掉之後,這份責任依然存在。

一個持久的 Task 應該始終能回答六個問題:

問題應該保留下來的狀態
我們要達成什麼?結果、完成標準、截止時間和約束
發生過什麼?已完成的步驟、重要的發現和相關的決定
現在有什麼?草稿、檔案、連結、工具輸出和其他證據
為什麼沒有繼續?當前卡住工作的依賴、阻礙或決定
工作能在哪裡繼續?擁有所需脈絡的應用程式、雲端電腦、已連線的裝置或外部執行環境
什麼會讓它恢復?一個時間、事件、核准、裝置狀態或其他明確的條件

沒有這些答案,「我稍後繼續」只是樂觀。有了它們,這句話才成為計畫。

等待是一種狀態,而不是失敗

大多數有用的工作都包含正當的等待。錯誤在於把每一次暫停都當成故障,或者當成無限輪詢下去的理由。

AI 代理應該識別自己進入了哪一種等待,並附上清楚的退出條件:

等待型別例子恢復條件
等時間月結數字明天釋出到達預定的檢查點
等事件客戶回覆了所需的細節相關事件到達
等環境某個檔案只在一台離線的 Mac 上指定的裝置變得可用
等決定兩個可接受的方案各有取捨使用者選擇或核准其中一個

這些區分很重要,因為每種等待需要不同的做法。等時間的 Task 可以睡到檢查點。等事件的 Task 可以盯著一個定義得很窄的變化。等環境的 Task 應該說明是哪台裝置或哪個工具不可用,而不是悄悄換個地方去做。等決定的 Task 應該把一個表述清楚的選擇交還給擁有它的人。

暫停也應該有邊界。如果預期的回覆一直沒來,AI 代理需要一個後備方案:提醒負責的人,問使用者是否按假設繼續,或者把 Task 以受阻狀態關閉。否則,一項背景責任可能在技術上仍然開著,實際上卻已被遺棄。

這也是為什麼常駐不應該意味著一直打擾。哪些事件值得喚醒 AI 代理,其中又有哪些值得打擾使用者,這個單獨的問題在常駐的個人 AI 代理應該在什麼時候醒來?裡討論。這裡相關的原則更窄:每一次暫停都需要一個看得見的理由,以及一條明確的回到工作中的路徑。

從檢查點恢復,而不是從新的情況介紹開始

等待結束時,AI 代理不應該從零散的訊息裡重新拼湊任務,也不應該讓使用者再解釋一遍。它應該從檢查點恢復。

一個有用的檢查點,是對工作現狀的精簡記錄:

  • 最初的結果和當前的完成標準;

  • 最近一次有意義的行動及其結果;

  • 已經建立或修改的產出物;

  • 仍然有效的假設;

  • 導致暫停的阻礙;

  • 阻礙解除後打算採取的下一步行動;

  • 這一行動必須在其中進行的環境。

這是工作狀態,不是個人記憶。記憶可以幫助 AI 代理在許多工中記住一個人的偏好。檢查點的存在,是為了讓某一項具體的責任在閒置、重啟或交接之後準確地繼續下去。

這種區分能避免兩種常見的失敗。第一,AI 代理不應該把一段長對話裡的每個細節都拖進今後的每一步。第二,它也不應該把 Task 壓縮得太狠,以至於一個關鍵約束消失了。檢查點是有選擇的:它保留下一步行動所依賴的東西。

Comma 的底層系統在不止一個層面上體現了這種模式。Salix 的 Loop 可以為自己的狀態設檢查點,讓一個有界的背景程序在重啟後恢復。這套基礎架構並不能替代一個定義清楚的 Task,但它體現的是同一條連續性規則:恢復應該從已知的狀態開始,而不是從猜測開始。

讓工作留在它真正需要的環境裡

長期工作很少發生在一個抽象的「AI 工作區」裡。它發生在郵件、文件、專案工具、瀏覽器、本機檔案和專業軟體裡。因此,連續性也包括工作所在的位置。

Comma 可以在已連線的應用程式和檔案、一個人自己的電腦或它自己的雲端電腦上工作。Salix 文件說明,雲端電腦的儲存在兩次使用之間會保留,即使虛擬機器在空閒時可以休眠。檔案和工具可以留在 AI 代理離開時的位置,Task 需要時,電腦可以再次醒來。

有些工作必須留在某台特定的裝置上。一個本機的設計檔案、一個已登入的桌面應用程式或一個開發環境,可能只存在於一台連線的 Mac 或 Linux 電腦上。Comma 的AI 代理執行環境文件對這個邊界說得很明確:如果指定的外部裝置離線,工作就會等待或失敗;Salix 不會悄悄把它挪到另一台機器上。

這個限制是一種有用的信任特性。自動遷移看起來也許方便,但它可能改變可用的檔案、權限、憑據和執行條件。可靠的 AI 代理應該讓這個邊界看得見:

下一步需要名為 「Studio」的那台 Mac。它目前離線。Task 正在那裡等待;沒有任何工作被挪到雲端電腦上。

使用者現在既知道進展為什麼停下,也知道什麼能讓它恢復。AI 代理可以在裝置回來時重試,或者問使用者能否接受另一個環境。它不應該假裝所有執行環境都可以互換。

只交還屬於這個人的決定

把工作交還給人,並不是自主的失敗。這正是個人 AI 代理保持「做事」和「承擔後果」之間區別的方式。

屬於這項任務範圍內、例行且可逆的步驟,AI 代理應該繼續做下去。當它遇到實質性的含糊、權限的邊界、不可逆的外部行動,或者一個取決於使用者偏好而非現有證據的選擇時,就應該交還控制權。

交接本身應該很小。糟糕的交接會說:「我卡住了,我該怎麼辦?」有用的交接包含:

  1. 什麼變了: 讓原先計畫失效的新資訊或新條件。

  2. 什麼已經完成: AI 代理在提問之前已經做完的工作。

  3. 還剩什麼決定: 一個明確的選擇,而不是請使用者重新管理整個 Task。

  4. 各個選項會改變什麼: 每條路徑有意義的後果。

  5. 這個選擇什麼時候要緊: 截止時間,或者等待會帶來的影響。

  6. 接下來會發生什麼: 得到答覆後 AI 代理會繼續的行動。

例如:「場地只能把這個日期保留到週四。我核實了取消條款,並準備好了預訂資訊。現在核准就要付定金;等待能保留靈活性,但可能失去這個檔期。要我提交預訂嗎?」

Comma 用 待審核 來承接需要這種人工決定的工作。Task 會圍繞這個問題保持完整,所以一個答覆就能放行下一步行動,而不必重新開始一輪規劃。

「已完成」需要證據和收尾

一個長時間執行的 Task,並不會僅僅因為 AI 代理停止了行動就算完成。它可能超時了,可能用盡了重試策略,可能產出了一份仍需審核的草稿,也可能走到了權限的盡頭。

收尾時應該說明:

  • 被要求的結果;

  • 實際產出的結果;

  • 建立或修改的產出物;

  • 做過的檢查;

  • 任何尚未解決的限制、假設或後續事項;

  • 外部行動是已經執行了,還是隻準備好了。

這份記錄讓使用者不必回放整段歷史就能檢查工作。它也避免了「Task 已不在執行」和「結果已經達成」之間一種危險的混淆。

已完成是一個工作流程狀態,不是真實性證書。 AI 代理可以核實一個檔案已經建立、一條命令已經成功或一條訊息已經發出。它無法靠改一個狀態,把不確定的源材料變成確定的事實。結論仍然需要恰當的證據,有後果的工作也可能仍然值得人來審核。

一套適用於跨越數天工作的實用流程

把一項持續多天的責任交出去之前,你不需要先設計一套編排系統。一個好的請求,用幾行話就能把基本約定立起來。

先說清楚結果,以及什麼叫「足夠好」。指出硬性截止時間和更早的決策視窗。說明哪些行動 AI 代理可以不問就做,哪些需要核准。告訴它源材料和工作檔案應該放在哪個環境裡。

然後把等待說明白。告訴 AI 代理預計會等哪一項依賴、什麼時候再檢查,以及如果它一直沒來該怎麼辦。要求它在每次暫停前留一個檢查點,只交還真正需要你做的決定。最後,要求一份收尾說明,包含產出、檢查和剩下的不確定之處。

一份精簡的委託可能像這樣:

財務釋出月結數字後,準備最終的董事會報告。使用雲端電腦裡現有的草稿和工作簿。你可以更新草稿、核對合計,但對外傳送任何東西之前要先問我。如果到週二中午數字還沒到,告訴我哪些部分受阻,並提出風險最小的後備方案。完成後,交回文件、核對過的來源以及仍然存在的假設。

價值並不來自把提示寫得多複雜,而是來自給 Task 一組清楚的狀態讓它經歷:已接受、進行中、等待中、待審核、已恢復和已關閉。

常見問題

長時間執行的 Task 在等待時,什麼仍在起作用?

Task 保留著結果、已完成的工作、當前的依賴、檢查點和恢復條件。執行環境可以休眠,也不需要任何模型持續推理。如果有一個範圍很窄的 Loop 在盯著缺失的條件,它與持久的 Task 狀態是分開的,後者告訴 AI 代理條件到來後該做什麼。

如果 Task 需要的電腦離線了,會怎樣?

如果 Task 被指派給那台裝置上的外部執行環境,工作會等待或失敗,直到裝置可用。Salix 不會自動把它挪到另一台電腦上。Task 應該把受阻的環境和恢復條件說清楚。

Task 狀態和 AI 代理的記憶是一回事嗎?

不是。Task 狀態描述的是一項責任:它的結果、進度、產出物、阻礙和下一步行動。個人記憶可以跨越多項責任,可能包括長期的偏好。一個長時間執行的 Task,應該在不把每個工作細節都變成永久記憶的前提下就能恢復。

AI 代理應該怎樣等待另一個人?

它應該記錄請求了什麼、向誰請求、什麼時候算回覆遲了,以及適用什麼後備方案。如果某個事件可以被監視,它就應該盯著那個事件,而不是反覆打擾使用者。一個沒有升級規則、無限期的等待,不是完整的計畫。

什麼應該放進待審核?

用於真正屬於使用者的決定或權限:有後果的取捨、含糊的意圖、不可逆的外部行動、敏感的承諾或新的授權。AI 代理應該附上它已完成的工作,並請求能解鎖進展的最小決定。

已完成意味著結果是正確的嗎?

已完成意味著 Task 達到了它宣告的完成條件。可信度仍然取決於它的來源、檢查和審核的品質。一份有用的完成說明,會把核實過的事實、假設和未解決的風險分開。

連續性就是產品

使用常駐個人 AI 代理最有力的理由,不是它能進行一場不間斷的推理馬拉松,而是它能帶著一項責任穿過真實工作中那些平常的中斷:休眠的電腦、遲到的回覆、按計畫到來的資料、變化的條件,以及必須由人來決定的時刻。

這種連續性建立在看得見的狀態之上。Task 知道自己欠著什麼,等待有理由,環境有名字,交接有邊界,完成帶著證據。當這些部分都能挺過空檔,你就可以離開工作而不是拋下它,回來時也不必從頭重建。

Try Comma, Now.

開始使用