arXiv:2608.26263v2 · 28 Aug 2026 · 16 pages

SKILL.state:把 Agent 从“聊天记录驱动”改造成“显式状态机驱动”

这份文档按论文 1–16 页逐页学习,再把公式、Runtime、Schema、复杂度、Benchmark、实验和生产化边界串成一套可实现的 Agent Runtime 心智模型。

Long-Horizon AgentExecution StateState Transition Context EngineeringO(T) TokensAgent Runtime
01

结论先行:这篇论文最值得学的不是“省 Token”,而是执行语义

一句话:SKILL.state 不再让模型每一步重新阅读“我过去做了什么”,而是只给它 程序规范 P + 当前状态 Σt + 最新观察 Ot;本轮推理只负责生成 状态补丁 ΔΣt + 下一动作 at,随后推理痕迹被丢弃。
O(1)
论文宣称的单步 Prompt footprint(在状态与观察规模有界的前提下)
O(T)
累计 Prompt token complexity
54.2%
InterCode CTF Pass@1,论文表 4 中最高

最重要的三层理解

  1. 不是 Memory 技巧:它不是把历史压缩得更聪明,而是改变“下一步决策依赖什么”的执行语义。
  2. 不是取消推理:单步内部仍允许复杂推理;只是推理不作为跨步持久记忆,持久化的是结构化状态。
  3. 真正难点从 Context 搬到 State:系统能力取决于 Schema 是否覆盖未来决策所需信息、Patch 是否正确、状态与真实环境是否一致。
02

论文真正解决什么:长程 Agent 的“执行状态重建税”

传统 Agent Runtime:Append-only Conversation
├─ Procedural Instructions
├─ Observation₁ / Reasoning₁ / Action₁
├─ Observation₂ / Reasoning₂ / Action₂
├─ ...
└─ Latest Observationₜ
→ 每一步都让 LLM 从文本历史重建“现在是什么状态”
SKILL.state:Explicit Mutable State
├─ Immutable Skill Specification P
├─ Current Execution State Σₜ
└─ Latest Observation Oₜ
→ 生成 ΔΣₜ + aₜ,应用 Patch 后丢弃本轮推理

“Context poisoning” 在这篇论文里的具体含义

问题不是只有上下文太长。更危险的是:旧事实、失败假设、已经失效的观察和过时推理长期驻留在 Prompt 中。模型必须在每一步区分“历史事实”和“当前事实”,因此执行正确性越来越依赖自然语言历史的再解释。

来源:论文第 1–3 页的 Introduction 与 SKILL.state 定义。

03

逐页精读:16 页每页应该学到什么

PAGE 01 · Abstract + Introduction

从“推理问题”切换到“系统执行问题”

本页内容提出核心问题:历史不断追加导致延迟、token 消耗和上下文污染;定义 Aₜ=(P,Σₜ,Oₜ)。要抓住作者把“长程 Agent”重新表述为 Runtime 架构问题,而不仅是更强模型或更长 Context Window。学习问题如果下一步真正需要的是“当前世界状态”,为什么要让模型重复读取完整轨迹?
PAGE 02 · Contributions + Related Work

SKILL.state 与 Memory / DST / Context Compression 的边界

本页内容列出三项贡献,并与 procedural skills、长期记忆、Dialogue State Tracking、long-context reasoning 区分。要抓住Memory 仍是“从历史文本恢复信息”;SKILL.state 试图把状态直接变成下一步计算的充分统计量。学习问题“有结构化 state”与“用 state 取代 conversation 作为推理底座”有什么差别?
PAGE 03 · Core Method + Algorithm 1

真正的算法核心:Reasoning → Projection → State Patch

本页内容定义输出 (Rₜ, ΔΣₜ, aₜ),通过带 null-delete 语义的字典 merge 得到 Σₜ₊₁;给出 Algorithm 1。要抓住Rₜ 是暂态计算,ΔΣₜ 才是跨步持久信息。特别重要InterCode CTF 的 100 个任务共享同一 5 字段 Schema:discovered_flags / tested_hypotheses / active_files / working_dir / cmd_summary。
PAGE 04 · Figure 1 + Benchmarks

把 Figure 1 看成“上下文数据流图”

图的左侧传统 Runtime 把历史、旧观察、旧推理持续塞入模型,Prompt 随 T 增长。图的右侧SKILL.state 只保留 P、Σ 和最新 O;推理经过 state projection 后丢弃,JSON Patch 回写状态。BenchmarkWarehouse 测独立槽位状态;Software Repository 测依赖图;InterCode CTF 测开放式工具搜索;τ-Bench 测企业事务工作流。
PAGE 05 · Metrics + Experimental Setup

实验的自变量不是“模型”,而是 Context Management Paradigm

指标任务正确率 / 成功率、平均 Prompt Token、累计 Token。主要基线ReAct history、Memory summary、Stateful (LangGraph-style) state + history。预算对齐Sliding Window、Summary-capped、ReAct + LLMLingua。控制变量温度 0、top-p 1;合成实验 5 个 seed;T≥50 的差异报告 p<0.01。
PAGE 06 · Tables 1–3

最有说服力的一页:规模、噪声、恢复同时测

规模Warehouse T=100:SKILL.state 0.94 accuracy / 65,408 tokens;Stateful 0.91 / 1,062,387 tokens。噪声T=50、50 个 distractor/turn 时,Prompt 0.53,SKILL.state 0.98。恢复外部环境漂移后,history-based baseline 需要 5–8 步恢复;SKILL.state 报告为 0 步。
PAGE 07 · Public Benchmarks + Budget Matching + Error Taxonomy

证明“短 Prompt”不是充分条件

InterCode CTF54.2% Pass@1,387k tokens;ReAct 43.2%,977k。τ-BenchRetail 58.3%;Airline 32.4%,同时降低累计 token。关键控制实验同为约 1,800 tokens:Sliding Window 0.18、LLMLingua 0.22、Summary-capped 0.52,而 SKILL.state 0.94。小模型错误68% 为提前覆盖/删除状态,20% 类型/Schema,12% JSON 语法。
PAGE 08 · Limitations

整篇论文最值得反复读的一页:充分统计量假设

失效场景 1事先不知道固定 Schema,需要执行中动态发现状态结构。失效场景 2早期观察当时看似不重要,因此没有写入 state,后来才发现它关键。失效场景 3任务本身需要历史轨迹:审计、provenance、解释过去行为。多 Agent共享 state 会引入 concurrent writes,需要确定性冲突解决。
PAGE 09 · References

把论文放回研究谱系:ReAct → Memory → Long Context → Explicit State

本页主要是参考文献。学习时不要逐篇阅读,而要按四条线索建立关联:Agent loop / Tool use、Long-term memory、Long-context degradation、Context compression。SKILL.state 的位置是:不继续优化“怎么保存历史”,而是质疑“执行是否必须依赖历史”。

PAGE 10 · Appendix A Runtime Prompts

最适合直接复现的一页:四种 Runtime Prompt 的最小差异

ReActInstructions + 全历史 + latest observation。MemoryInstructions + summary + 最近 3 turns + latest observation。StatefulCurrent State + 全历史 + latest observation。SKILL.stateInstructions + compact JSON state + latest observation;输出严格包含 state_patch 与 action。
PAGE 11 · SkillExecBench Environment Design

Benchmark 的关键不是“难”,而是可控地暴露状态错误

Warehouse500 个固定 shelf,每个为 item 或 null;Store / Ship / Move / Wait。Repositorybranch、file、PR、CI 状态;Commit / CreatePR / Merge / FixCI / Wait。公平性同一 seed 生成同一事件序列,使不同 Runtime 看到相同世界变化。
PAGE 12 · Task Generator + Example Trajectory

把 state patch 当成“事务增量”理解

Warehouse 例子中,观察到客户订购 item_12,模型从 state 找到 shelf_42,输出 Patch 将该位置置空,同时生成 Ship item_12 shelf_42。这个例子清晰展示“观察 → 查状态 → 决策 → patch + action”的闭环。

工程上要继续追问:论文算法先应用 Patch 再执行 Action;若 Action 最终失败,state 与 environment 如何保持原子一致?论文没有完整展开这个事务问题。
PAGE 13 · Noise Construction

Noise 实验测的是 Attention Drag,不是恶意 Prompt Injection

噪声被严格限定为随机、与任务无关、不会改变 ground-truth state 的背景 telemetry,例如机器人电量、温湿度、Camera OCR、远端服务器 CPU/RAM。作者明确说这部分专注 Condition 1:Irrelevant Context。

因此不能把表 2 / 表 9 的结果外推成“对 prompt injection、恶意 rule override 或可信输入冲突也同样鲁棒”。

PAGE 14 · Software Repository Scaling

关系图状态比独立槽位更难,但趋势仍成立

T=100:Prompt 0.53 / 1.8485M tokens;Memory 0.57 / 2.7527M;Stateful 0.63 / 2.308M;SKILL.state 0.78 / 90.2k。说明当状态存在 PR、branch、CI 的结构依赖时,显式 state 仍明显减少 token,并保持更高分数。

PAGE 15 · Gemma / Qwen Scaling

结构化状态把新瓶颈暴露为“结构化输出遵循”

Gemma-4-31B 与 Qwen-3-8B 在长 horizon 下整体分数下降,但 SKILL.state 的 Prompt 仍约 2.1k。Gemma T=100 时 SKILL.state 与 Stateful 都是 0.42,但 token 约为 65k vs 558k;Qwen T=100 为 0.34 vs 0.31,token 约 66.9k vs 569k。

PAGE 16 · Noise / Recovery / Extended Budget Matching

三个结尾证据:高噪声、外部漂移、固定预算

Software Repository 在 50 noise events 下:Prompt 0.11,SKILL.state 0.80;Force Push / Flaky CI 的恢复步数分别对 baseline 为 8–14 步,对 SKILL.state 报告为 0;固定约 1,800 tokens 时,T=100 的 SKILL.state 0.94,而 Summary-capped 0.52、Window 0.18、LLMLingua 0.22。

04

核心形式化:把 Agent Loop 改写成显式状态转移

1. 每一步模型只看三个输入

Aₜ = (P, Σₜ, Oₜ)

P   = immutable procedural specification
Σₜ  = structured execution state at step t
Oₜ  = latest environment observation

最关键的是“没有 C₁…Cₜ 的完整 conversation”。以前的 actions、observations、reasoning 不直接进入下一轮。

2. 模型输出三类东西,但只有一类跨步持久化

(Rₜ, ΔΣₜ, aₜ)

Rₜ   = within-step reasoning       → ephemeral
ΔΣₜ  = structured state patch      → persistent after validation
aₜ   = action                      → sent to environment

3. 状态更新

Σₜ₊₁ = Σₜ ⊕ ΔΣₜ

⊕ = dictionary merge
null = deletion semantics

学习视角:可以把它理解成“把本轮推理压缩为一个具有业务语义、可验证、可覆盖的状态增量”,而不是把自然语言推理摘要当作事实。

工程解释:这相当于主动把一个依赖长历史的过程“Markov 化”:只要 Σₜ 真的是未来决策的充分统计量,过去轨迹就不必重新作为模型输入。这个“充分统计量”正是论文最大的假设,也是最大的边界。
05

Runtime 架构:LLM 只是 State Transition Proposal Engine

SKILL.state Runtime
├─ Skill Spec P(不可变)
├─ State Store Σ(可变、结构化)
├─ Observation Adapter
├─ LLM
│ └─ 生成:Reasoning + State Patch + Action
├─ Deterministic Patch Validator
├─ Merge Operator ⊕
└─ Action Executor
└─ 下一轮只重新注入最新 Σ + O

模型负责

  • 理解最新 observation
  • 从 state 读取当前事实
  • 推导下一动作
  • 提出 state patch

Runtime 负责

  • Schema ownership
  • Patch 语法与类型校验
  • 合并与删除语义
  • 拒绝 malformed patch
  • 持久化 canonical state
架构思想:把“状态正确性”的一部分从概率模型中抽出来,交给确定性 Runtime。LLM 提案,Runtime 决定哪些提案可以写入持久状态。
06

Execution State 怎么设计:Schema 是系统的真正 API

论文给出的 CTF 5 字段 Schema

{
  "discovered_flags": [],
  "tested_hypotheses": [],
  "active_files": [],
  "working_dir": "...",
  "cmd_summary": "..."
}

这五个字段不是“记住所有发生过的事”,而是保存未来搜索仍然有用的信息:发现了什么、哪些假设已失败、哪些文件活跃、当前目录、命令摘要。

设计 State Schema 的四条规则

  1. Future-use only:字段存在的理由必须是“未来某一步会用它做决策”。
  2. Canonical:同一事实尽量只有一个权威位置,避免多个字段表达冲突事实。
  3. Patchable:状态应能局部更新,而不是每轮要求模型重写整份对象。
  4. Validatable:类型、枚举、ID、引用关系最好能被程序校验。
重要区分:固定 Schema ≠ 固定状态大小。即使只有 5 个字段,若 tested_hypotheses 无限增长,Prompt 仍可能随 T 增长。论文的 O(1) 结论需要进一步假设字段内容规模也被任务域或运行时策略有界化。
07

为什么从 O(T²) 变成 O(T):逐步算清楚

Conversation Runtime

|Cₜ| = O(t)

Σₜ₌₁ᵀ |Cₜ|
= 1 + 2 + ... + T
= O(T²)

第 t 步包含前面近似 t 步历史,累计输入量是三角形增长。

SKILL.state

|Pₜ| = O(|P| + |Σ| + |O|)

若 |P|, |Σ|, |O| 有界:
Σₜ₌₁ᵀ |Pₜ| = O(T)

单步 Prompt 不随“已经执行了多少步”增长。

必须补上的复杂度条件

论文把 |Σ| 和 |O| 视为与 t 无关,因此得到“strictly bounded O(1) prompt footprint”。对固定 500 shelves 的 Warehouse,这个假设很自然;但对开放式文件系统、网页探索、代码搜索、长期任务,如果 state 中集合/日志/摘要持续扩大,就不能只因为 Schema 字段数固定而自动得到 O(1)。

生产策略:对每个字段设计 cardinality bound、TTL、top-K、聚合器或 domain-specific compaction;否则只是把“conversation growth”换成“state growth”。

08

Benchmark 怎么设计:把“状态管理能力”从通用智能里拆出来

环境核心状态结构主要动作测什么
Warehouse500 个独立 shelf → item/nullStore / Ship / Move / Wait长程独立槽位记忆与精确更新
Software RepositoryBranch / Commit / PR / CI 关系图Commit / CreatePR / Merge / FixCI / Wait结构依赖与连锁状态变化
InterCode CTF假设、文件、目录、flag、命令进度Linux bash开放式搜索 + 工具使用 + 避免重复失败路径
Sierra τ-Bench客户意图 + SQLite 业务状态 + Policy查询与事务 API真实业务工作流、最终数据库状态正确性

实验设计最漂亮的地方

作者不仅比较“完整历史 vs state”,还把 Sliding Window、硬上限 Summary、LLMLingua 压缩到与 SKILL.state 近似相同 token budget。这样可以回答一个关键反事实:性能提升到底来自“Prompt 变短”,还是来自“保留了正确的结构化语义”?

09

实验结果怎么读:四组数字建立完整证据链

场景对比SKILL.state关键信号
Warehouse T=100Stateful: 0.91 / 1,062,387 tokens0.94 / 65,408约 16.24× 更少累计 token
Warehouse T=200Memory: 0.84 / 6,175,5090.94 / 122,384约 50.46× 更少累计 token
InterCode CTF最佳 baseline pass@1 46.4%54.2%+7.8 个百分点;vs ReAct token -60.4%
τ-Bench RetailStateful 51.7% / 3.92M58.3% / 3.47M成功率 +6.6pt
τ-Bench AirlineStateful 28.1% / 5.28M32.4% / 2.88M+4.3pt,token 约 -45.5%
19.04×
Warehouse T=100:ReAct total tokens / SKILL.state
50.46×
Warehouse T=200:Memory / SKILL.state
2.92×
CTF:Stateful token / SKILL.state

倍数由论文表中 token 数直接计算,用于帮助理解规模差异。

10

为什么“压缩历史”不等于“维护状态”

Warehouse T=100 / ~1,800 tokensScore为什么会丢信息
Truncated Sliding Window0.18早期但仍有效的库存位置被窗口淘汰
ReAct + LLMLingua0.22统计上“低价值”的 slot identifier 可能在业务上是关键主键
Summary-capped0.52自然语言 summary 很难无损保存大量精确关系
SKILL.state0.94显式保存当前关系状态,不按文本显著性淘汰
核心规律:压缩器优化的是“哪些 token 看起来值得保留”;状态机优化的是“未来动作需要哪些事实”。两者的目标函数不同。
11

噪声与状态恢复:为什么旧历史会产生“惯性”

Noise Robustness

Warehouse T=50、50 distractors/turn:Prompt 从低噪声 0.68 降到高噪声 0.53;SKILL.state 仍为 0.98。Software Repository 在 50 noise events 下:Prompt 0.11,SKILL.state 0.80。

State Recovery

环境被外部 actor 静默修改时,历史基线仍反复看到旧事实,因此需要多个 turn 才“相信”新观察;论文报告 SKILL.state 在测试场景中 0 recovery steps。

不要过度外推

Appendix C 明确把噪声限定为 strictly irrelevant + non-state-altering。这证明了对 Attention Drag 的鲁棒性,但没有直接证明对恶意 prompt injection、伪造状态事件、多个可信源冲突、部分可观测世界等问题同样有效。

12

小模型失败模式:从“推理能力瓶颈”转向“状态协议瓶颈”

错误类型占比本质对应工程手段
Premature overwrite / deletion68%Patch 语义理解错误,误删已有 keyJSON Patch/RFC-like op、字段级 reducer、禁止全量重写
Schema / type coercion20%list/dict/nested type 不一致JSON Schema、typed SDK、自动 repair
JSON syntax / formatting12%结构化输出格式错误grammar-constrained decoding / native structured output
论文的判断:这些失败更多来自 structured output adherence,而不是单纯 reasoning capacity;因此未来方向是 constrained decoding。
13

关键边界与风险:真正生产化前必须补的四个问题

1. “State 是充分统计量”不是自动成立

如果某条早期观察当时没被识别为重要事实,就不会进入 Σ;历史一旦丢弃,未来无法回看。这是论文自己明确列出的限制。

2. 固定 Schema 不保证 O(1)

Schema 字段固定,但字段值仍可能无限增长。对开放式 Agent 必须额外设计 state budget。

3. Patch 与 Action 的原子性

Algorithm 1 的顺序是 Validate Patch → Apply Σₜ₊₁ → Execute aₜ。如果动作执行失败,论文没有给出完整的 commit/rollback 事务协议。生产实现应避免“状态声称已发生,但外部世界没发生”。

4. Stateful (LangGraph-style) 是一种基线配置,不等于整个框架能力边界

论文中的 Stateful baseline 是“结构化 state + 完整 rolling transcript”。因此它证明的是这种配置相对 SKILL.state 的差异;不能直接理解成所有 LangGraph 应用都必须保留完整 conversation。

更稳妥的结论:论文强有力地证明了“canonical structured state 可以成为 long-horizon execution 的主要上下文载体”;它没有证明“历史日志应该从系统中消失”。历史仍可留在审计层,只是不必每一步喂给 LLM。
14

生产化架构推导:State / Memory / Event Log 三层分离

本节为基于论文原理的工程推导,不是论文原文实现。

Production Agent Runtime
├─ Control Plane:Execution State Σ(喂给 LLM)
│ ├─ 小、结构化、强 Schema、当前事实
│ └─ 版本号 / optimistic lock / invariants
├─ Memory Plane:可检索知识(按需取回)
│ └─ 非当前控制状态,但未来可能相关的文档/经验
└─ Audit Plane:Append-only Event Log(默认不喂 LLM)
├─ observation / proposed patch / action / result
└─ debug / replay / provenance / compliance

为什么三层都要保留

  • State 解决“下一步要知道现在是什么”。
  • Memory 解决“有些信息当前不在 state,但可能被未来查询重新激活”。
  • Event Log 解决“人类需要知道到底发生过什么”,同时避免把审计历史当作每步推理上下文。

建议把论文的单阶段写状态改成事务式提交

observe Oₜ
   ↓
LLM proposes {patch, action}
   ↓
validate schema + invariants
   ↓
execute action against environment
   ↓
if success:
    commit/reconcile patch → Σₜ₊₁
else:
    keep/rollback Σₜ and write failure observation
   ↓
append immutable event log

对“动作本身会改变世界”的系统,这种顺序更容易维护 state/world consistency。若需要 optimistic update,也应保存版本和 rollback 信息。

15

最小实现蓝图:200 行以内就能验证核心思想

以下是工程化伪代码,用于复现论文思想;不是论文代码。

State Schema

State = {
  "goal": str,
  "facts": dict,
  "tested_hypotheses": list[str],
  "active_resources": list[str],
  "progress": dict,
  "done": bool
}

LLM Structured Output Contract

{
  "state_patch": {
    "facts": {"key": "new_value"},
    "tested_hypotheses": ["..."],
    "done": false
  },
  "action": {
    "tool": "...",
    "args": {...}
  }
}

Runtime Loop

state = initial_state()
observation = env.reset()

while not state["done"]:
    prompt = build_prompt(skill_spec, state, observation)
    proposal = llm.generate_structured(prompt)

    validate_patch(proposal.state_patch)
    validate_action(proposal.action)
    validate_invariants(state, proposal.state_patch)

    result = env.execute(proposal.action)

    if result.success:
        state = merge(state, proposal.state_patch)
    observation = normalize(result)

    event_log.append({
        "state_version": version(state),
        "action": proposal.action,
        "result": result
    })

必须加的 6 个 Runtime Guard

  1. JSON Schema / grammar constrained output
  2. 字段级 patch allowlist
  3. 状态 invariant 校验
  4. state version / optimistic concurrency
  5. action idempotency key
  6. event-sourced audit log + replay
16

学习与复现实验:从理解论文到能自己实现

PHASE 1 · 1–2 小时

复述核心模型

不看论文,能解释 P / Σ / O / R / ΔΣ / a 的职责,以及为什么 reasoning ephemeral、state persistent。

PHASE 2 · 半天

实现 Warehouse Mini

100 个 shelf,随机生成 Receive / Order / Move;做 ReAct history 与 state-only 两个 Runtime,对比 10/25/50/100 steps 的 token。

PHASE 3 · 半天

加入 Noise + External Drift

每轮注入 20 条无关 telemetry;随机让外部 actor 移动物品。记录错误率与 recovery steps。

PHASE 4 · 1 天

加入 Budget-matched baselines

实现 sliding window、summary capped,与 state-only 对齐 token budget,验证“短上下文 ≠ 正确状态”。

PHASE 5 · 1 天

做 Production Hardening

添加 JSON Schema、事务提交、event log、state version、错误重试,再做故障注入。

推荐你在复现时额外测两个论文没完全覆盖的问题

  • State growth:让 tested_hypotheses 每步增长,测 O(1) 何时失效。
  • Action failure:让 10% 工具调用返回失败,验证“先 patch 后 action”是否造成 state/world divergence。
17

掌握度自测:能回答这些问题才算真正理解

  1. SKILL.state 与“对 conversation 做 summary”最根本的语义差别是什么?
  2. 为什么 Rₜ 可以丢弃,而 ΔΣₜ 必须保留?什么情况下这个假设失败?
  3. 固定 5-field Schema 为什么不自动等于 O(1) Prompt?
  4. 为什么 Sliding Window 与 LLMLingua 在相同 token budget 下仍大幅掉分?
  5. 论文的 State Recovery 0 steps 依赖了哪些实验条件?
  6. 如果最新 observation 本身错误,canonical state 会发生什么?如何加 provenance/confidence?
  7. 为什么 production 系统仍应该保存 append-only event log,但不必把它喂给模型?
  8. 多 Agent 共享 Σ 时,⊕ 需要解决哪些并发语义?
  9. Action 执行失败时,怎样保证 state 与 world 原子一致?
  10. 什么类型的任务本质上不适合彻底抛弃历史轨迹?
最终判断标准:如果你能把一个已有的 ReAct Agent 拆成“不可变 Skill Spec + 有界 Execution State + 最新 Observation + deterministic validator + action executor + 独立 event log”,并能解释每个字段为什么存在,你已经掌握这篇论文最可迁移的工程价值。
18

来源与边界说明

论文

本文逐页分析基于用户提供的 2608.26263v2.pdf(16 页),正文数字、公式、Benchmark、Prompt 模板与限制均按该版本整理。

内容边界

论文直接支持:SKILL.state 的输入/输出形式化、Algorithm 1、Schema 设计示例、复杂度主张、SkillExecBench、InterCode CTF、τ-Bench、各表实验数字、错误分类、Limitations 与 Appendix prompts。

本文工程推导:Markov 化解释、固定 Schema 不等于固定 state size 的复杂度条件、Patch/Action 原子性分析、State/Memory/Event Log 三层架构、事务式 commit、state version / idempotency / invariants 等生产化建议。这些是基于论文机制的系统工程延伸,不是作者在论文中完整给出的实现。

页面格式严格遵循《html_UI 设计规范.md》:240px 固定侧边栏、900px 内容区、白底 / 米白背景、蓝紫单一强调色、Card / Callout / Chip / Hierarchy / Timeline / 对比表格 / IntersectionObserver。

← 返回内容索引