Skip to content

背景與問題定義

论文版本948a07b (main)

《A Programming Paradigm for Spatiotemporal Composability》由 Yifan Shi、Wei Zhang(北京大學)與 Tianyi Cui(DeepSeek-AI,即 Koishi 框架作者 Shigma)合著,是一篇程式語言理論與執行時系統論文,而非模型訓練或模型能力論文。

Agent = Model + Harness

【論文原文結論 §1.2.2】論文把 Agent Runtime 作為 motivating example 之一:現代 AI agent 依賴 runtime agent harnesses,這些系統組合工具套件、執行環境、權限沙箱、會談狀態、上下文記憶、子 agent 工作流程與 UI;「未來的 harness 可能生成並部署對自己元件的修改,同時持續服務請求」。

這一定義與 DeepSeek 官方對 Harness 的描述完全吻合:Agent = Model + Harness。Model 負責推理與決策;Harness 透過插件提供 Tools / Skills / Sessions / Sandboxes / Storage / Loops / Sub-agent scheduling / UI。DeepSeek Harness 把所有這些能力域都做成 Cordis 插件。

為什麼長期運行、可自我修改的 Agent 需要動態載入、卸載與替換元件?因為自演化 Agent 的核心特徵是「在運行中修改自己」——升級某個工具、替換某個 Skill、調整某個子 Agent 的環境。如果每次修改都要重啟整個 session,會丟失上下文與中間狀態;如果不重啟,舊元件的副作用(開啟的連線、註冊的回呼、持有的狀態)就成了懸空的垃圾,污染後續運行。傳統機制沒有給出「如何乾淨地換掉一個正在被使用的元件」的答案。

傳統插件系統、DI 與 HMR 為什麼不夠

論文 §1.2.1 以 VSCode 為典型例子:

  • Temporal limitation:VSCode 的 extension host 不提供執行時卸載單個擴充程式碼的機制,停用或卸載一個擴充需要重啟整個 host。前 100 名擴充中 87 個含可執行程式碼,都需要重啟。deactivate 鉤子只在行程關閉時作為優雅退出回呼使用,且把 effect disposal 與 effect creation(在 activate 中)分離,違反 locality of concern。
  • Spatial limitationextensionDependencies 幾乎無人使用(前 100 名中只有 7 個宣告),擴充之間沒有結構性契約,getExtension(...).exports 回傳值是 any 型別。

【基於原文的推論】傳統 DI(如 Spring、Angular)只在初始化時注入依賴,執行時 provider 被替換或移除時既有 dependent 既不會被停用也不會被重新初始化;React 的 useEffect 把 effect 與 cleanup 配對,但 hook 不能在條件/迴圈/巢狀函式裡呼叫,effect body 不接受 async 函式或迭代器,無法組合出複合 inverse;HMR(webpack、Vite)透過 import.meta.hot 把狀態向前遷移,依賴開發者手寫遷移函式;事務記憶體(STM)與 RAII 把 reversal 限定在固定靜態作用域內;OSGi Declarative Services 反應服務可用性,但 deactivation 回呼是手寫且同步的。

【論文原文結論 §1.2.3】作業系統在行程粒度提供 temporal composability,容器編排器在服務粒度提供 spatial composability,但這是粗粒度替代物:每次重啟丟棄所有行程本地狀態(快取、連線、部分計算),重建需要數秒到數分鐘;容器級編排無法表達共享位址空間的元件間依賴。論文要的是與元件本身同粒度的組合抽象。

兩個正交維度

【論文原文結論 §1.1】論文識別動態組合的兩個正交維度:

  • Temporal composability(時間維度):元件被移除時,它對共享環境所做的修改必須被完全且安全地撤銷。這要求追蹤元件執行過的每一次資源分配、事件註冊與狀態變更,並保證其有序回收。
  • Spatial composability(空間維度):元件必須能結構化、可驗證地宣告、發現並解析彼此之間的依賴。這要求管理依賴拓撲並在依賴變化時協調元件生命週期。

【論文原文結論 §2.3】Effect 描述「計算如何修改環境」,Coeffect 描述「計算如何依賴環境」——兩者方向互補,不要混淆。在靜態設定下,temporal 歸約為詞彙作用域(RAII、bracket pattern),spatial 歸約為模組匯入解析;在動態設定下,兩者都顯著更難。

論文的解法:把經典 effect/coeffect 從編譯期靜態分析提升為執行時機制——Revertible Effects(每個上下文變換攜帶一個 inverse,執行時追蹤)解決 temporal;Reactive Coeffects(元件宣告 coeffect 規格,上下文變化時按規格通知)解決 spatial。兩者統一在單一 context 型別中,構成 component 概念,給出動態組合演算並證明元理論性質。

核心概念對應表

概念含義出處
Revertible Effect每個上下文變換攜帶一個 inverse,執行時追蹤§3.1, Def 8
Reactive Coeffect元件宣告 coeffect 規格,上下文變化時按規格通知§3.2.2, Def 26
Unified Context Γ∞遞迴攜帶(狀態、累加器、coeffect 表)的單一 context 型別§3.3.1, Def 32
Component ℭΓ三元組(依賴規格 d、提供 p、見證 effect 函式 e)§4.1, Def 43
Fiber元件一次實例化,攜帶生命週期狀態§4.1, Def 44
Committed View ω當前已提交的依賴解析(fiber 名稱對應)§4.1, Def 44
Target View期望 fiber 應處於的依賴解析狀態§4.2, Def 46
Isolation Realm同一 key 在不同 context 解析為不同實例§3.2.3, Def 28
Interception不替換依賴,只修改其使用方式§3.2.3, Def 30

後續章節按這條主線展開:Effects 講 temporal 怎麼撤銷,Coeffects 講 spatial 怎麼回應,生命週期 講兩者如何在元件實例上協同,定理 講這套機制保證了什麼,DeepSeek Harness 講它如何落到一個真實 Agent Runtime 上,局限 講它沒保證什麼。

非官方社群學習站,解讀 cordiverse/paper 論文,關聯 DeepSeek Harness 架構。論文作者 Yifan Shi、Wei Zhang(北大)與 Tianyi Cui(DeepSeek-AI)。 · 隱私政策 · 服務條款 · 關於