命令、事件和排序
15. 指令、事件與並發
Section titled “15. 指令、事件與並發”15.1 指令
Section titled “15.1 指令”Command 是要求一次結構化狀態轉換的簽章請求。每個 Command 信封 MUST 包含穩定的 Action ID、協定版本、actor、kind、payload、correlation ID、簽發時刻與簽章。Group 範圍的 Command MUST 包含其 Group ID。變更狀態的 Agent Command MUST 另外包含目前的 Session Epoch 與 Membership Epoch。既有 Group 中的人類 Command MUST 包含目前的 Membership Epoch,且 MUST NOT 包含 Agent Session Epoch。Organization 服務發出的 Command MUST NOT 編造 Agent Session Epoch 或 Membership Epoch。
mission.create 與 mission.create_follow_up 攜帶正在建立的 Group
ID,但省略 Membership Epoch 與 Session Epoch,因為新的 Group
Membership 尚不存在,而且人類 Command 不使用 Agent 會話。控制平面可以驗證身分、中繼並驗證
mission.create,但簽章 Command 的 actor 與產生的根 MissionOwner 仍是該人類;控制平面不會成為 MissionOwner。Organization 擁有的
ext.missionweaveprotocol.registry.agent_card_register 和
ext.missionweaveprotocol.identity.session_open bootstrap指令省略 Group
ID 以及全部三個角色/會話 Epoch。
權威性來自目前 Coordinator 租約的 Agent Command MUST 包含目前的 Coordinator
Epoch。以下 Command 需要該欄位: mission.renew_coordinator,
mission.submit_for_approval, mission.create_child,
membership.grant_delegation, 和 work.accept_result,以及由 Agent 發出的
mission.terminate。由服務發出的 mission.terminate
改由 Organization 政策授權,不攜帶 Coordinator
Epoch。修改既有結構化狀態時,Command
SHOULD 包含預期的聚合修訂。使用一次性 cooperation escalation 的 Command
MUST 另外包含 cooperationOverrideGrantId.
當相同 (actor ID, Action ID)
對應的規範簽章內容在位元組層面等價時,系統 MUST 傳回原始回執,且 MUST
NOT 追加第二次狀態轉換。若以不同的規範內容重用同一 Action ID,則 MUST 以
ACTION_ID_COLLISION 失敗。
Group Authority MUST 驗證 actor 身分,驗證 Session Epoch、Membership Epoch、Schema、目前的聚合修訂、角色、委派、預算、政策與租約,並且要麼拒絕 Command,要麼在該 Group 內原子追加由此產生的 Event。
核 Command 種類有:
mission.create mission.assign_coordinatormission.renew_coordinator mission.submit_for_approvalmission.approve mission.request_changesmission.cancel mission.terminatemission.create_child mission.create_follow_upmembership.change membership.endmembership.grant_delegationmessage.post message.correctmessage.retract message.redactwork.propose work.authorizework.offer work.accept_offerwork.start work.checkpointwork.block work.unblockwork.submit work.accept_resultwork.fail work.cancelartifact.publish approval.grant_executionpolicy.grant_cooperation_override參考核心也定義了 Organization擁有的 ext.missionweaveprotocol.* 命令用於 Agent
Card 註冊、會話啟動、依賴項插入、執行租約續約、權威資源使用記錄,以及 Group 檔案。未來 Extension
Profile 可以標準化便利命令,例如明確拒絕報價、澄清或 Mission 暫停,但這些名稱不是 v0.1 核心過渡。
15.2 事件和 Group 命令
Section titled “15.2 事件和 Group 命令”Event 是不可變的已接受事實。Group Event 信封 MUST 包含 Event ID、Group
ID、嚴格遞增的 Group sequence、聚合修訂、kind、actor、cause、correlation
ID、發生時刻、payload 與 Group Authority 簽章。Organization 範圍的
ext.missionweaveprotocol.registry.agent_card_registered 和
ext.missionweaveprotocol.identity.session_opened 事實包含通用的 Event
identity、actor、cause、correlation、payload、time、接受權威與簽章欄位,但 MUST
NOT 包含 Group ID、Group sequence 或 Group 聚合修訂。
Group Authority 為每個持久化 Group Event 指派一個單調遞增的 sequence。該 sequence 提供確定性的顯示、復原與稽核順序。即使服務指派了顯示順序,普通 Message 在邏輯上仍可並行。結構化轉換依賴 Event 順序與聚合修訂。
核 Event types 是與核心指令對應的過去式事實,包括:
mission.created mission.coordinator.assignedmission.coordinator.renewed mission.submitted_for_approvalmission.approved mission.changes_requestedmission.cancelled mission.terminatedmission.child.created mission.follow_up.createdmembership.changed membership.endedmembership.delegation.grantedmessage.posted message.correctedmessage.retracted message.redactedwork.proposed work.authorizedwork.offer.created work.offer.acceptedwork.contract.revised work.startedwork.progressed work.checkpointedwork.blocked work.unblockedwork.submitted work.result.acceptedwork.failed work.cancelledartifact.published approval.execution.grantedpolicy.cooperation_override.grantedgroup.snapshot.created group.archivedwork.contract.revised 和 work.progressed
是由引用 Organization 擁有的依賴項插入和 Execution
Lease 更新 Command 發出的核心 WorkItem 事實。Agent Card 和會話激活事實保留其
ext.missionweaveprotocol.* Event 種。 group.snapshot.created 和
group.archived 是由原子發射的核心檔案事實 Organization擁有的
ext.missionweaveprotocol.core.group_archive
Command 在其簽名快照和策略日誌連結驗證之後。
自動事件 MAY 是由一個接受的 Command, 事先的 Event、計時器或策略決策。來自不同組別的事件沒有明確的順序。
15.3 樂觀並發
Section titled “15.3 樂觀並發”結構化聚合命令 SHOULD 提供 expectedRevision。如果它不等於目前修訂版,則 Group
Authority MUST 拒絕 Command 和 REVISION_CONFLICT 和 MUST
NOT 部分應用它。原子先接受所有權,續租, Membership 改變,並且 Approval 即使特權內部參與者省略了連線字段,也始終需要比較和設定處理。
17. WebSocket 綁定
Section titled “17. WebSocket 綁定”17.1 連接
Section titled “17.1 連接”MissionWeaveProtocol 0.1台伺服器 MUST 提供 WebSocket 通過 TLS
1.3(wss)。單一經過身份驗證的連線複用一個使用的所有群組 Agent。每個 WebSocket 訊息 MUST 恰好包含一個 UTF-8
JSON 文字框架符合
schemas/websocket-frame.schema.json。二進位 WebSocket 訊息 MUST
NOT 攜帶 MissionWeaveProtocol 物體或 Artifact v0.1 中的內容。
核心框架類型有 HELLO, SUBSCRIBE, COMMAND, EVENT, ACK, PING, 和
ERROR。部分的 Message 流幀沒有定義。
17.2 訂閱
Section titled “17.2 訂閱”認證後,客戶端發送 SUBSCRIBE 和 Group
ID,每Group 重播位置和可選的注意力過濾器。過濾器改變的是即時交付,而不是授權或持久歷史記錄。伺服器 MUST 獨立執行 Membership 對於每一個 Group 和 MUST
NOT 揭示是否未經授權 Group 存在。
一個連接 MAY 交錯來自多個群組的事件。僅在每個內保證順序 Group。一個接收器 MUST 路線經過 Group 應用序列邏輯之前的 ID。
17.3 流量控制與活躍度
Section titled “17.3 流量控制與活躍度”ACK 提供持久的進步。 PING
提供活力和 MAY 攜帶在場記錄;對等方在回復中回顯其隨機數
PING。伺服器 MUST 應用有界緩衝和每Group 背壓。當達到限制時,他們 SHOULD 暫停一下 Group 並發出
BACKPRESSURE 重試指導而不是斷開不相關的群組。
17.4 規範編碼
Section titled “17.4 規範編碼”金屬絲 JSON 不需要按規範成員順序到達,但每個哈希、從內容派生的標識符或簽名 MUST 使用 RFC 8785 JCS 位元組.重複的物件成員名稱 MUST 在模式驗證之前被拒絕。數字和字串 MUST 滿足有限二進位64和I-JSON 第 2 節的規則;符合要求的實施 MUST 產生相同的 JCS 相同的位元組數 JSON 價值。
大量內容發佈為 Artifact 並透過 URI 和內容哈希引用。 v0.1 模式拒絕未知的核心屬性。未知非關鍵 Extension
Profile 資料儲存和轉發不變。未知的關鍵擴充原因 UNKNOWN_CRITICAL_EXTENSION.