← Archive
lm-002059 · 2026-08

01_連線即封裝_從工作流到高階語言基元的總命題_v0.1

下載 MD 檔 ⬇

連線即封裝:從工作流到高階語言基元的總命題

Connection-as-Encapsulation: From Workflows to Higher-Order Language Primitives

系列名稱: 遞歸自適應積木組合語言(Recursive Adaptive Block Composition Language, RABCL)
系列編號: EML-RABCL-2026-01
作者: Neo.K(許筌崴)with Aletheia(GPT)
機構: EveMissLab/一言諾科技有限公司
版本: v0.1 基礎命題稿
日期: 2026 年 7 月 30 日
文件定位: 工作流遞歸封裝、格子組合語言、AI 函數化、CAIR 接合、MSSP × RDR 與 AEREC 前置理論


摘要

現有節點式工作流工具通常將節點與連線視為最終可保存對象。使用者把圖片生成、資料處理、模型呼叫、條件判斷、驗證與輸出節點連接起來後,系統最多將其保存為一份工作流模板、群組或可重用子流程。這種設計提高了視覺可讀性與流程重用能力,卻仍然把工作流留在「外部排列」層:節點是語言基元,工作流只是基元的組合結果。

本文提出不同的總命題:

當一組節點與連線形成具有相對完整功能的工作流時,系統可以先進入靜止狀態,再由 AI 與驗證器共同推斷其邊界、端口、契約、狀態、副作用、權限與來源,將整個工作流封裝為一個新的高階積木。

因此,工作流不是最終形式,而是新語言基元的展開態。其基本轉換為:

W=(V,E)EncapsulateBW.\mathcal W = (V,E) \xrightarrow{\mathsf{Encapsulate}} B_{\mathcal W}.

封裝後的大格子不只是畫布群組,也不是一張縮圖,而是一個具有穩定身分、外部介面、功能契約、權威表示、執行註冊、驗證證據、展開路徑與演化歷史的一級計算物件。它可以像原子節點一樣被再次拖入畫布、與其他積木組合,並在新的工作流形成後再次封裝。

本文將此性質稱為受約束的遞歸組合閉包。令合法積木集合為 B\mathfrak B ,若積木族 B1,,BnB_1,\ldots,B_n 在型別、效果、權限與契約約束下可合法組合,則:

B1,,BnBValidCompose(B1,,Bn)Pack(B1,,Bn)B.B_1,\ldots,B_n\in\mathfrak B \land \operatorname{ValidCompose}(B_1,\ldots,B_n) \Longrightarrow \operatorname{Pack}(B_1,\ldots,B_n)\in\mathfrak B.

這不是宣稱任意圖都天然構成合法函數,也不是宣稱視覺連線本身等同語義。本文主張的是:工作流連線可以成為封裝候選的觸發事件;經過靜止、分析、契約推斷、驗證與提交後,合法子圖可以被升格為新的可組合語言單元。

此架構與既有四個技術層形成分工:格子語言提供自由封裝與多承載面操作;CAIR 保存權威結構與可驗證差異;MSSP 描述積木在系統中的身分、層級與能力索引;RDR 將其註冊為可呼叫、可治理的執行單元;AEREC 則允許封裝後的積木在外部契約保持穩定時持續產生、驗證與選擇新的內部實現。

本文是 RABCL 系列第一篇,只建立「連線即封裝」的總命題、核心物件與理論邊界。封裝靜止屏障、端口與契約推斷、遞歸閉包語法、權威表示接合及多代演化,將由後續文件分別展開。

關鍵詞: 工作流、遞歸封裝、積木組合語言、格子語言、CAIR、MSSP、RDR、AEREC、AI 編譯、函數封裝


0. 系列定位

AEREC 已處理「一個應用在功能契約保持穩定時,如何持續生成、驗證與選擇新的實現」。格子語言已處理「任意局部結構如何被自由切出、命名、宣告接口、投影與操作」。CAIR 已提供權威中介表示、投影、提案隔離、驗證、版本與回滾。MSSP × RDR 則分別處理描述/認知平面與執行/運行平面。

然而,這些系統之間仍缺少一個明確的生成事件:

一個由人類或 AI 在畫布上完成的工作流,何時、如何以及憑什麼成為新的可組合積木?

RABCL 系列處理的正是這個接合層。

它不取代 AEREC、格子語言、CAIR 或 MSSP × RDR,而是定義:

Workflow FormationBlock BirthRecursive Composition.\text{Workflow Formation} \rightarrow \text{Block Birth} \rightarrow \text{Recursive Composition}.

1. 現有工作流模型的結構限制

1.1 節點是基元,工作流不是基元

一般節點工具可抽象為:

W=(V,E),\mathcal W=(V,E),

其中 VV 是節點集合, EE 是連線集合。

系統通常允許:

  • 新增節點;
  • 刪除節點;
  • 建立連線;
  • 執行工作流;
  • 儲存模板;
  • 複製子圖;
  • 將節點放入群組。

但其語言層通常保持不變:

Primitive Sett+1=Primitive Sett.\text{Primitive Set}_{t+1} = \text{Primitive Set}_t.

即使使用者已經建出一個完整的圖片生成代理、資料清理管線或研究流程,該工作流仍只是舊節點的排列。它不會自動成為語言中的新動詞、新函數或新積木。

1.2 群組不等於封裝

畫布群組通常只保存:

  • 顯示邊界;
  • 節點座標;
  • 折疊狀態;
  • 標題;
  • 顏色或分類。

但真正的封裝至少需要:

  • 穩定身分;
  • 外部輸入與輸出;
  • 狀態與生命週期;
  • 副作用與權限;
  • 功能契約;
  • 失敗語義;
  • 版本與來源;
  • 執行註冊;
  • 驗證與回滾。

因此:

Visual GroupSemantic Capsule\boxed{ \text{Visual Group} \neq \text{Semantic Capsule} }

1.3 模板不等於新語言基元

工作流模板改善重用,但模板通常仍要求:

  1. 載入整張子圖;
  2. 顯示所有內部節點;
  3. 由外部工具理解內部結構;
  4. 在每次使用時重新管理內部依賴。

新語言基元則應能在不展開內部細節時被安全使用:

B(x;θ,s)(y,s,ε).B(x;\theta,s) \rightarrow (y,s',\varepsilon).

其中:

  • xx :外部輸入;
  • θ\theta :可配置參數;
  • ss :持續狀態;
  • yy :外部輸出;
  • ss' :更新後狀態;
  • ε\varepsilon :可觀測效果與證據。

2. 連線即封裝的核心命題

2.1 連線不是立即封裝,而是封裝候選事件

「連線即封裝」不應被誤解為:使用者每拉一條線,系統就立刻折疊畫布。

較精確的形式為:

ConnectEncapsulationCandidate.\mathsf{Connect} \rightarrow \mathsf{EncapsulationCandidate}.

當工作流滿足某種相對完整性條件時,連線事件使系統識別出一個可能的封裝區域。

相對完整性可以來自:

  • 使用者框選並要求封裝;
  • AI 判斷子圖已形成可命名功能;
  • 子圖具有有限外部邊界;
  • 輸入與輸出可被推斷;
  • 內部依賴已閉合;
  • 執行已通過一次或多次驗證;
  • 工作流被多次重用;
  • 某個任務階段正式完成。

因此,封裝既可以是顯式操作,也可以是 AI 建議,但不能在未經檢查時直接成為權威狀態。

2.2 工作流升格

令候選子圖為:

Wc=(Vc,Ec).\mathcal W_c = (V_c,E_c).

封裝程序為:

Pack:Wc×A×QBc,\mathsf{Pack}: \mathcal W_c \times \mathcal A \times \mathcal Q \rightarrow B_c,

其中:

  • A\mathcal A :分析結果;
  • Q\mathcal Q :驗證與治理條件;
  • BcB_c :提交後的新積木。

積木 BcB_c 至少表示為:

Bc=(Ic,c,Cc,Pc,Sc,Fc,Zc,Hc,Rc).B_c = ( I_c, \partial_c, C_c, P_c^\ast, S_c, F_c, Z_c, H_c, R_c ).

其中:

  • IcI_c :穩定身分;
  • c\partial_c :外部邊界與端口;
  • CcC_c :功能與效果契約;
  • PcP_c^\ast :權威結構;
  • ScS_c :持續狀態;
  • FcF_c :內部子圖與依賴;
  • ZcZ_c :驗證證據與證書;
  • HcH_c :來源、版本與操作歷史;
  • RcR_c :展開、恢復與回滾資料。

2.3 工作流是展開態,積木是封裝態

同一計算對象可以有兩種主要操作狀態:

Expand(Bc)=Wc,\operatorname{Expand}(B_c) = \mathcal W_c,

以及:

Collapse(Wc)=Bc.\operatorname{Collapse}(\mathcal W_c) = B_c.

因此:

Expanded WorkflowEncapsulated Block\boxed{ \text{Expanded Workflow} \rightleftarrows \text{Encapsulated Block} }

兩者不是兩份互不相干的檔案,而應是同一權威結構的不同投影或操作層級。


3. 新積木的誕生條件

一個工作流不應只因為「看起來連好了」就成為合法積木。最低成立條件可表示為:

Birth(Bc)=TcBcCcVcGc.\operatorname{Birth}(B_c) = T_c \land B_c^{\partial} \land C_c \land V_c \land G_c.

其中:

  • TcT_c :結構與型別可接受;
  • BcB_c^{\partial} :外部邊界可定義;
  • CcC_c :存在最低功能契約;
  • VcV_c :通過最低驗證;
  • GcG_c :符合治理與權限要求。

3.1 結構可接受

至少需要確認:

  • 不存在缺失節點;
  • 連線類型可辨識;
  • 必要依賴存在;
  • 循環若存在,具有明確語義;
  • 無法解析的部分被標示,而不是被偷偷忽略。

3.2 邊界可定義

對子圖 VcV_c ,外部輸入邊為:

Ic={(u,v)EuVc,vVc}.I_c = \left\{ (u,v)\in E \mid u\notin V_c, v\in V_c \right\}.

外部輸出邊為:

Oc={(u,v)EuVc,vVc}.O_c = \left\{ (u,v)\in E \mid u\in V_c, v\notin V_c \right\}.

但真正邊界還包括:

c=IcOcScextXcPc,\partial_c = I_c \cup O_c \cup S_c^{\mathrm{ext}} \cup X_c \cup P_c,

其中:

  • ScextS_c^{\mathrm{ext}} :外部可見或持續狀態;
  • XcX_c :檔案、網路、資料庫、模型與 UI 等副作用;
  • PcP_c :權限、資源與機密引用。

3.3 契約可表達

最低契約為:

Cc=(I,O,Pre,Post,E,F,Q),C_c = ( \mathcal I, \mathcal O, \mathcal P_{\mathrm{re}}, \mathcal P_{\mathrm{ost}}, \mathcal E, \mathcal F, \mathcal Q ),

分別表示:

  • 輸入;
  • 輸出;
  • 前置條件;
  • 後置條件;
  • 效果;
  • 失敗語義;
  • 品質與資源條件。

3.4 驗證可執行

最低驗證不必等同完整形式證明,但至少應包含:

  • Schema 與型別驗證;
  • 一次可重播執行;
  • 已知輸入輸出測試;
  • 副作用清單;
  • 失敗可觀測性;
  • 展開與回復能力。

4. 受約束的遞歸組合閉包

4.1 相對閉包而非無條件閉包

若任意積木都能任意組合,系統將快速產生型別衝突、權限洩漏、循環副作用與不可回滾狀態。

因此 RABCL 的閉包不是:

B1,B2B,B1B2B.\forall B_1,B_2\in\mathfrak B, \quad B_1\circ B_2\in\mathfrak B.

而是:

B1,,BnB,\forall B_1,\ldots,B_n\in\mathfrak B,

若:

TypeCompatibleEffectCompatiblePermissionCompatibleContractSatisfiableGovernanceAllowed,\operatorname{TypeCompatible} \land \operatorname{EffectCompatible} \land \operatorname{PermissionCompatible} \land \operatorname{ContractSatisfiable} \land \operatorname{GovernanceAllowed},

則:

Pack(B1,,Bn)B.\operatorname{Pack} ( B_1,\ldots,B_n ) \in\mathfrak B.

這稱為:

受約束的遞歸組合閉包。

4.2 語言基元會成長

傳統語言的基元集合通常由語言設計者或套件作者擴充。RABCL 則允許一個經過驗證的工作流在局部環境中成為新基元:

Pt+1=Pt{Bc}.\mathcal P_{t+1} = \mathcal P_t \cup \{B_c\}.

其中 Pt\mathcal P_t 是時間 tt 的可用積木集合。

因此,使用者與 AI 不只是使用語言,也在持續形成新的局部語言。

但這個局部語言必須具有:

  • 命名空間;
  • 版本;
  • 相容性;
  • 權限;
  • 來源;
  • 淘汰與回滾規則。

4.3 高階積木

BcB_c 內部包含其他積木:

Bc=Pack(B1,,Bn),B_c = \operatorname{Pack} ( B_1,\ldots,B_n ),

BcB_c 又與其他積木組成:

Bd=Pack(Bc,Bn+1,,Bm),B_d = \operatorname{Pack} ( B_c,B_{n+1},\ldots,B_m ),

則形成多層封裝:

BdBc{B1,,Bn}.B_d \supset B_c \supset \{B_1,\ldots,B_n\}.

這種層級可以持續增加,但 Runtime 不應每次都展開全部深度。積木的價值正在於:只有在除錯、修改、驗證或重新演化時才按需展開。


5. 五種容易混淆的對象

5.1 視覺群組

只管理顯示與選取,不具有完整語義封裝。

5.2 工作流模板

保存一組可重建節點,但不一定具有穩定契約與執行身分。

5.3 子流程

具有輸入輸出,可被其他流程呼叫,但可能缺乏權威表示、證書與多代歷史。

5.4 封裝積木

具有身分、邊界、契約、權威表示、驗證與展開路徑。

5.5 演化積木

在封裝積木基礎上,另外具有:

  • 實現版本族;
  • 適用環境;
  • benchmark;
  • 證書鏈;
  • 負知識;
  • 回滾拓撲;
  • 演化停止條件。

因此:

Visual GroupWorkflow TemplateCallable SubflowEncapsulated BlockEvolutionary Block\text{Visual Group} \subsetneq \text{Workflow Template} \subsetneq \text{Callable Subflow} \subsetneq \text{Encapsulated Block} \subsetneq \text{Evolutionary Block}

這是一種功能包含關係,不表示所有產品都必須按照同一資料結構實現。


6. 與既有體系的分工

6.1 格子語言:提供自由封裝與操作表面

格子語言定義:

  • 什麼可以被切出;
  • 如何命名;
  • 如何宣告端口與偶合;
  • 如何折疊、展開與投影;
  • 如何被人類與 Agent 定址。

因此:

Grid Language=Packaging and Operational Surface.\text{Grid Language} = \text{Packaging and Operational Surface}.

6.2 CAIR:保存權威結構

CAIR 保存:

  • 節點;
  • 邊;
  • 端口;
  • 區域;
  • 型別;
  • 效果;
  • 約束;
  • 來源;
  • 提案;
  • 驗證;
  • 版本與回滾。

因此:

Canvas ProjectionP.\text{Canvas Projection} \neq P^\ast.

畫布只是投影, PP^\ast 才是權威結構。

6.3 MSSP:描述積木是什麼

MSSP 負責:

  • 系統身分;
  • 母集與子集位置;
  • 核心能力與可替換能力;
  • 能力索引;
  • 治理分層;
  • 人類與 AI 的可理解入口。

6.4 RDR:讓積木真正可呼叫

RDR 負責:

  • 註冊;
  • 解析;
  • 權限閘門;
  • 依賴載入;
  • 圖排程;
  • Runtime 選擇;
  • 執行;
  • Trace 與審計。

封裝完成後:

BcRegisterCallable(Bc).B_c \xrightarrow{\operatorname{Register}} \operatorname{Callable}(B_c).

6.5 AEREC:使內部實現持續演化

AEREC 允許:

Fc(0)Fc(1)Fc(n),F_c^{(0)} \rightarrow F_c^{(1)} \rightarrow \cdots \rightarrow F_c^{(n)},

同時要求:

Fc(n+1)CcFc(n)F_c^{(n+1)} \equiv_{C_c} F_c^{(n)}

或在契約變更時明確進入新的語義版本,而不是把契約漂移偽裝成最佳化。


7. 連線、封裝與執行的基本狀態機

本文先提出最小生命週期:

EDITING
   │
   │ connection / selection / AI suggestion
   ▼
CANDIDATE
   │
   │ freeze mutable boundary
   ▼
QUIESCENT
   │
   │ infer boundary, ports, state, effects, contract
   ▼
ANALYZED
   │
   │ validate and review
   ▼
VALIDATED
   │
   │ atomic authority commit
   ▼
ENCAPSULATED
   │
   │ register in MSSP / RDR
   ▼
READY

若失敗:

ANALYZED
   ├── invalid ──► EDITING
   ├── ambiguous ─► NEEDS_REVIEW
   └── unsafe ───► REJECTED

若需要修改:

READY
   ── expand ──► EDITING_COPY/CANDIDATE_BRANCH

正式權威積木不應被畫布上的臨時拖動直接覆寫。


8. 主要命題

命題一:工作流非終局命題

工作流可以是高階積木形成前的展開態,而不必是最終保存形式。

命題二:連線候選命題

連線可以觸發封裝候選識別,但不能在未驗證時自動提交權威封裝。

命題三:群組非封裝命題

視覺群組不等同具有身分、接口、契約、權威表示與回滾能力的語義封裝。

命題四:雙態同一命題

展開工作流與封裝積木可以是同一權威對象的兩種操作投影。

命題五:受約束閉包命題

合法積木在型別、效果、權限、契約與治理條件成立時,可組合為同類高階積木。

命題六:局部語言成長命題

經驗證的工作流可以增加局部可用語言基元,但必須納入命名、版本、來源與相容性治理。

命題七:封裝後演化命題

積木的外部契約可以保持穩定,而內部實現透過 AEREC 形成多代變體與選擇。

命題八:可停止命題

若封裝無法安全推斷、驗證成本過高或沒有實際重用價值,系統必須允許不封裝。


9. 理論與工程邊界

本文不主張:

  • 任意節點連線都能形成純函數;
  • AI 可以可靠推斷所有隱藏副作用;
  • 所有工作流都適合折疊;
  • 視覺畫布應取代文字程式碼;
  • 遞歸封裝等同無限計算;
  • 積木組合可以繞過停機問題或 P/NP;
  • 封裝後的效能必然提升;
  • AI 可以同時生成、驗證、批准與部署;
  • 第一版 MVP 應支援大型正式服務。

本文只主張:

一個具有限定邊界的工作流,可以在受約束、可驗證與可回滾的條件下,被升格為新的可組合計算單元。\boxed{ \text{一個具有限定邊界的工作流,可以在受約束、可驗證與可回滾的條件下,被升格為新的可組合計算單元。} }

10. 後續文件接口

本篇留下五個待展開問題。

第一,工作流連線後為何必須先不動?靜止屏障如何避免競態、半提交與邊界漂移?

第二,AI 如何推斷輸入、輸出、狀態、副作用、權限與失敗語義?哪些部分必須人工確認?

第三,積木如何具有文字語法、畫布語法、無介面語法,以及折疊與展開規則?

第四,格子語言、CAIR、MSSP 與 RDR 的資料結構如何互相映射,而不形成四份漂移真相?

第五,封裝後的積木如何接入 AEREC,在保持外部契約時持續演化,並於沒有淨收益時停止?

這些問題將分別由系列第二至第六篇處理,第七篇再完成總體統合。


結論

節點式工作流的下一個自然階段,不只是增加更多模型節點、更多連線類型或更漂亮的無限畫布,而是讓系統能夠理解:

一組已經形成穩定功能的節點與連線,本身可以成為新的節點。

這使語言基元不再完全由平台預先決定,而可以由人類與 AI 在實際工作中逐步形成。其基本循環為:

連接靜止分析封裝驗證註冊再次組合\boxed{ \text{連接} \rightarrow \text{靜止} \rightarrow \text{分析} \rightarrow \text{封裝} \rightarrow \text{驗證} \rightarrow \text{註冊} \rightarrow \text{再次組合} }

更完整地說:

WorkflowBlockPrimitiveHigher-Order WorkflowHigher-Order Block\boxed{ \text{Workflow} \rightarrow \text{Block} \rightarrow \text{Primitive} \rightarrow \text{Higher-Order Workflow} \rightarrow \text{Higher-Order Block} }

這就是遞歸自適應積木組合語言的起點。

它不是「把工作流縮成一個方塊」而已,而是把已形成的計算結構提升為可命名、可呼叫、可驗證、可展開、可回滾、可再次組合並可持續演化的新語言單元。