引擎状态机与注意力层级(Engine State Machine & Attention Focus)
层级 :L1-L2(引擎运行时视角) | 职责 :注意力控制 + 运行时状态机 + 迭代循环执行
源公理 :axioms.md §三-§八 | 派生追溯 :derivation.md §二、§六
视角说明 :本文件的 L0-L3 使用引擎运行时视角 (架构层/逻辑层/代码层/语法层),与 rules.md 的公式类型视角、spec.md 的代码生成视角不同。见 axioms.md
AxiomHierarchyStructure共同约束源。
§一、抽象层级定义(Layer Taxonomy)
当前焦点层级 ≥ 规则声明的层级时,规则激活。
| 层级 | 名称 | 关注点 | 典型策略/规范 |
|---|---|---|---|
| L0-ENG | 架构层 | 项目结构、模块边界、通信模式、路径规范 | PathStrategy, CommunicationMode |
| L1-ENG | 逻辑层 | 控制流、迭代循环、错误熔断、状态恢复 | OnError(loop), CompactProcedure, StateRecovery |
| L2-ENG | 代码层 | 实现细节、代码质量、设计模式、内聚性 | CodeStandard, CohesionCheck |
| L3-ENG | 语法层 | 工具调用、文件操作、语言特性、参数格式 | ReadStrategy, ToolSelect |
1.1 层级优先级
同一条规则在不同层级有不同实现时:L0-ENG > L1-ENG > L2-ENG > L3-ENG。与规则冲突解决层级的耦合裁决见 rules.md §1.3。
1.2 上下文类型(Scope Taxonomy)
| 上下文 | 说明 | 示例 |
|---|---|---|
global |
全局生效 | 通用工具策略、路径规范 |
loop_body |
仅在循环体内部生效 | 本文件 §十 OnError、计数器规则 |
procedure |
仅在特定流程步骤内生效 | CompactProcedure.emergency_dump |
single_call |
仅在单次工具调用场景生效 | 通用错误分类 |
1.3 层级反模式
| 反模式 | 严重 | 表现 | 正确做法 |
|---|---|---|---|
| 逻辑层渗漏 | 高 | L1 熔断规则应用到 L2/L3 普通操作 | 标注规则 layer,按 FocusLayer 公理过滤 |
| 语法层越权 | 中 | 工具调用失败直接触发架构层决策 | 逐层传递,每层只做本层决策 |
| 作用域逃逸 | 高 | loop_body 规则在单次调用中激活 | 标注 scope,按 ScopeGuard 公理过滤 |
§二、层级策略
FocusDecision(phase, context) CM Provides: 当前焦点层级(L0/L1/L2/L3)
phase ∈ {P_plan} → L0
phase ∈ {P_exec_prep} → L2(文件读取、代码理解)
phase ∈ {P_exec_core} → L2(编码实现)
phase ∈ {P_exec_verify} → L1(验证循环、迭代调试)
phase ∈ {P_complete} → L0(完成、总结)
可通过 @focus(LX) 标注覆盖默认值。
公理支撑:ScopeAnchor AX + FocusLayer AX
LayerOverride(context, explicitMark) CD Provides: 层级覆盖决策
explicitMark ≠ null → use_explicit · otherwise → use_default
§三、迭代循环配置参数
通用参数权威默认值见 axioms.md §配置参数 (MAX_FAIL, QUALITY_DECLINE_THRESHOLD, MAX_PARTIAL, MAX_ITER, SWITCH_THRESHOLD, META_THRESHOLD, CONVERGE_ALPHA, RECONFIRMATION_WINDOW)。
本表仅列 引擎专用参数(axioms.md 中不存在或在引擎上下文中需要特化的参数)。
3.1 引擎专用参数
| 参数 | 默认值 | 说明 | 引用的公理 |
|---|---|---|---|
PARTIAL_THRESHOLD |
0.8 |
partial 判定阈值 | EvaluationOutcomeSet AX |
EXEC_TIMEOUT |
60 |
单次执行超时(秒) | StateSnapshot AX |
SUBROUND_MAX_ATTEMPTS |
3 |
子任务最大修复尝试次数 | RoundCompletion AX |
SUCCESS_CRITERIA |
{execution=success} |
成功判定标准 | EvaluationOutcomeSet AX |
VERIFICATION_CRITERIA |
{compilation=success} |
验证标准 | RoundCompletion AX |
COLLECT_PATTERNS |
[success,total,errorMessage] |
输出提取模式 | Coupling-ObservationCollapse |
ONERROR_RETRY_LIMIT |
3 |
重试熔断阈值 | FirstCallTransient AX |
ONERROR_EMPTY_T_LIMIT |
3 |
空结果(T)熔断阈值 | RepeatedCallStable AX |
ONERROR_EMPTY_PARAMS_LIMIT |
2 |
空结果(T,params)熔断阈值 | RepeatedCallStable AX |
ONERROR_SWITCH_LIMIT |
3 |
策略切换 forcehalt 降级阈值 | TerminationPriority AX |
SWITCH_DECAY_N |
8 |
switchCounter 衰减间隔轮数 | CountableOrderBridge |
FORCEHALT_NOTIFY_N |
5 |
forceHalt 无新错误通知轮数 | InformationMonotonicity |
RECENT_CHAIN_COUNT |
3 |
压缩后加载的推理链条数 | CompactProcedure |
EMERGENCY_DUMP_MAX_CHARS |
500 |
紧急转储最大字符数 | CompactProcedure |
3.2 配置预设(Profiles)
预设值覆盖全局默认值。通用参数(MAX_FAIL 等)默认值见 axioms.md。
Delta 原则:预设仅声明与默认值不同的字段,未声明字段回退至 axioms.md(通用参数)或 §3.1(引擎专用参数)默认值。
SAFE 预设(简单重试)--- Delta
MODE = SAFE | MAX_ITER = 5 | SWITCH_THRESHOLD = INF
PARTIAL_THRESHOLD = 1.0 | SUBROUND_MAX_ATTEMPTS = 2
Adjust = [parameter_adjust] | COLLECT_PATTERNS = [success, total, errorMessage]
DEVELOP 预设(迭代调试)--- Delta
MODE = DEVELOP | MAX_ITER = 10 | MAX_FAIL = 5 | SWITCH_THRESHOLD = 3
PARTIAL_THRESHOLD = 0.8 | SUBROUND_MAX_ATTEMPTS = 3
Adjust = [parameter_adjust, code_fix, config_modify, strategy_switch]
COLLECT_PATTERNS = [success, total, errorMessage, [ERROR], [WARN], [DIAG]]
CAMPAIGN 预设(多轮模式)--- Delta
MODE = CAMPAIGN | ROUNDS = 2 | GLOBAL_MAX_FAIL = ROUNDS × 3
SWITCH_THRESHOLD = 2 | PARTIAL_THRESHOLD = 0.8 | SUBROUND_MAX_ATTEMPTS = 3
COLLECT_PATTERNS = [success, total, errorMessage, [ERROR], [WARN], [DIAG]]
ModeEntryConstraint CS
∀R∈Iteration: MODE(R)∈{SAFE,DEVELOP,CAMPAIGN}→R.config∈ConfigSpace(MODE(R))
§四、状态变量管理(StateManager)
所有规则通过 StateManager 读写状态,不直接操作状态变量。
每个状态变量的类型、初始值、更新规则由 axioms.md 公理约束。
详细派生路径见 derivation.md §二。
4.1 状态变量表
| 变量名 | 类型 | 初始值 | 说明 | 读权限 | 写权限 | 所属层级 | 派生公理 |
|---|---|---|---|---|---|---|---|
operationLog |
Map<OpID,Status> |
{} |
操作状态记录 | StateValidity、OnError | ErrorHandler、执行体 | L1 | IDI-Interaction + IDI-HistoryEmergence |
fileCache |
Map<Path,{timestamp,hash}> |
{} |
已读文件缓存 | StateValidity、SyncGuard | ReadStrategy、SyncGuard | L2 | StateSnapshot + RepeatedCallStable |
externalConsistency |
bool |
true |
外部一致性标志 | StateValidity | SyncGuard | L2 | IDI-Difference |
last |
OpID |
null |
上次操作标识 | IdempotencyGuard | 执行体 | L2 | Discrete-Countability |
lastFileHash |
Hash |
null |
上次文件内容哈希 | IdempotencyGuard | 执行体 | L2 | Discrete-ExactEquality |
retryCounter |
int |
0 |
连续重试计数 | OnError | OnError、执行体 | L1 | Discrete-Countability |
switchCounter |
int |
0 |
连续策略切换计数 | OnError | OnError | L1 | TerminationPriority |
forceHalt |
bool |
false |
熔断标志 | OnError | OnError | L1 | TerminationPriority |
toolCallHistory |
Map<ToolCallKey,{count,lastResult}> |
{} |
工具调用历史 | OnError | 执行体 | L1 | IDI-HistoryEmergence |
emptyCount |
Map<ToolKey,int> |
{} |
空结果计数 | OnError | OnError | L1 | FirstCallTransient |
callCount |
Map<CallKey,int> |
{} |
调用次数 | FirstCallTransient | 执行体 | L1 | Discrete-Countability |
4.2 状态一致性
遵循 StateSnapshot、StateMerge 公理。
@parallel 状态合并规则:
∀op₁,op₂∈ParallelOps: op₁.stateSnapshot ∩ op₂.stateSnapshot = ∅ (快照隔离)
合并顺序:按工具链中声明顺序,非完成顺序。
若并行步骤修改同一状态变量→标记 parallel_write_conflict →本轮 result=parse_error
@parallel 场景下并行步骤使用独立快照,执行完成后按工具链顺序合并。
4.3 初始化钩子
skipExternalConsistency 和 skipHistoricalIntegrity 由 StateManager 初始化钩子自动管理:
- 触发 :
fileCache = ∅或forceHalt = true时系统底层自动置位 - 清除:首次 StateValidity 评估完成后系统底层自动清除
§五、循环公理实例化
| 公理(axioms.md) | 实例化含义 | 使用位置 |
|---|---|---|
| RoundCompletion AX | R.completed↔R.executed∧R.verified∧R.logged |
§六 终止条件 |
| RoundTransition AX | enters(Rk+1)↔completed(Rk)∧reEvaluated(Rk) |
轮次间转移 |
| RoundIndependence AX | R.stateSpace∩R'.stateSpace=∅→R∥R' |
并行轮次隔离 |
| InitialState AX | 初始状态约束 | §七 初始化 |
| EntryCondition AX | R.enters↔preconditions.valid∧config∈ConfigSpace |
模式入口 |
| EvaluationOutcomeSet AX | e∈{pass,partial,fail,parse_error} |
§六 Evaluate |
| DecisionOutputSet AX | D∈{TS,TO,TM,switch_strategy,continue} |
§六 Decide |
| TerminationPriority AX | 决策优先级链 | §六 Decide + §八 终止 |
| ResultComposition AX | compose_causal(R.history) |
结果组合 |
决策输出 → 动作映射
决策输出集权威定义于 axioms.md
[AX] DecisionOutputSet和[AX] TerminationPriority。本表仅映射决策输出到工程动作。
| 决策输出 | 动作 | 触发条件 |
|---|---|---|
| terminate_success (TS) | 正常完成 | 通过验证 |
| terminate_overflow (TO) | halt | 超限终止 |
| terminate_meltdown ™ | forcehalt | 熔断终止 |
| switch_strategy | 切换策略 | 计数器更新见 §七 |
| continue | 继续循环 | 进入 Adjust |
§六、五步模型(公理实例化链)
五步模型是 RoundCompletion AX 的工程实例化。每一步的转移合法性由 CausalCone AX 偏序保证。
公理实例化链:
Execute ← StateSnapshot[AX] + Discrete-AtomicStep[AX]
↓ happens-before
Collect ← Coupling-ObservationCollapse[AX]
↓ truth evaluation
Evaluate ← TruthValueDomainLogic[AX] + EvaluationOutcomeSet[AX]
↓ decision derivation
Decide ← DecisionOutputSet[AX] + TerminationPriority[AX]
↓ causal transition
Adjust ← SyncProtocolTriple[AX]
↓ round completion
Next Round ← RoundCompletion[AX] + RoundTransition[AX]
循环通用模型
① Execute → [ExecutionFailureGate] → ② Collect [CM] → ③ Evaluate [QA] → ④ Decide [CD] → ⑤ Adjust [SM]
VERIFICATION_CRITERIA 验证发生在⑤ Adjust 完成之后、标记 logged 之前。
① Execute
执行操作序列。公理约束:StateSnapshot AX + Discrete-AtomicStep AX。参数:execution_timeout = EXEC_TIMEOUT(§三)。
ExecutionFailureGate CD
{execution=failure ∧ error=compilation_error ∧ retryCounter<ONERROR_RETRY_LIMIT} → 进入 Collect
{execution=failure ∧ error=compilation_error ∧ retryCounter≥ONERROR_RETRY_LIMIT} → 直接进入 Decide 输出 TM
{execution=failure ∧ error=environment} → 直接进入 Decide 输出 TM
{execution=success} → 进入 Collect
{execution=failure ∧ error∉{compilation_error, environment}} → 进入 §十 OnError
compilation_error 的 retryCounter 递增在执行体返回后、ExecutionFailureGate 之前完成。
② Collect CM
执行输出 → 指标集。提取规则预定义(正则/结构化解析器),提取失败标记 parse_failed。
parse_error 时:① 标记 parse_failed ② 记录 lastResult.metadata.parseError: {rawOutput, pattern} ③ 传递给 Evaluate 和 Adjust_Parser。
公理约束:Coupling-ObservationCollapse AX
③ Evaluate QA
指标集 → 评估结果。公理约束:TruthValueDomainLogic AX(三值评估:pass=T, partial=⊥, fail=F)
④ Decide CD
{evaluate_result, state, config} → 决策输出。裁决顺序:
short_circuit(forceHalt=true→TM; forceHalt=false∧pass→TS; else→counter_chain)
priority_chain(CF≥MAX_FAIL > QDC≥QDT > CP≥MAX_PARTIAL > IC≥MAX_ITER > CF≥SWITCH_TH)
公理约束:TerminationPriority AX + CountableOrderBridge AX
⚠ 工程简化说明 :本裁决顺序是 axioms.md
TerminationPriority [AX]的工程实现子集。公理定义的完整约束(commensurability_rule、projection、parameter_versioning)在本实现中做了以下简化:
⑤ Adjust SM
| 类型 | 示例 |
|---|---|
| 参数调整 | 增等待时间、调超时值 |
| 配置修改 | 修正路径、换参数值 |
| 代码修复 | 修复 bug、调整逻辑 |
| 策略切换 | 换工具/方法/参数组合 |
| Adjust_Parser | 修复输出提取规则 |
Adjust 完成后追加 changeLog。公理约束:SyncProtocolTriple AX
L0 不变量断言------原子性不自反:
! SyncProtocolTriple.CommitPhase L0 invariant: ¬∃obs:commit(obs,obs)
! 实现要求:任何 CommitPhase 调用前 assert(obs₁ ≠ obs₂)
! 违反后果:本轮 Adjust 标记为 failed,不进入 logged 阶段
§七、状态更新规范
遵循 InformationMonotonicity AX(因果偏序下信息只增不减)。
7.1 初始化
IC=0(首次启动):
iterationCount=0 consecutiveFailures=0 consecutivePartials=0
qualityDeclineCount=0 bestResult=null lastResult=null
changeLog=[] history=[] subRoundAttempts=0
IC>0(Continuation):继承上一轮结束状态,保留 history 和 changeLog。
7.2 计数器维护职责
| 计数器 | 所属 | 递增 | 重置 |
|---|---|---|---|
| retryCounter | L1 共享 | §十 OnError | 不重置(CF 语义) |
| emptyCount | L1 共享 | §十 OnError | 非空结果时 Evaluate |
| switchCounter | L1 共享 | §7.3 Decide 驱动 | §7.3 衰减机制 |
| callCount | L1 共享 | 执行体 | 不重置 |
| iterationCount | 循环专用 | §7.3 | 不重置 |
| consecutiveFailures | 循环专用 | §7.3 Evaluate | 衰减(两种规则: Evaluate路径 max(0,CF-1); Decide路径 max(0,floor(CF/2))) |
| consecutivePartials | 循环专用 | §7.3 Evaluate | pass/fail/parse_error 置0 |
| qualityDeclineCount | 循环专用 | §7.3 Evaluate | bestResult 更新时置0 |
| subRoundAttempts | 循环专用 | Adjust | pass 时置0 |
7.3 更新规则
时序说明 :OnError 决策树(§十)在 Execute→Collect 间执行,此时 switchCounter 是上一轮 Decide 更新后的值。Decide 驱动的更新(本节约§7.3)在 OnError 之后执行。因此 OnError 判断 switchCounter ≥ ONERROR_SWITCH_LIMIT 降级时,引用的是上一轮已衰减/递增后的计数器值。
子任务修复检查(Evaluate 之前):
if (subRoundAttempts >= SUBROUND_MAX_ATTEMPTS) {
evaluateResult = fail; // 子任务耗尽→fail(非partial)
lastResult.metadata.subRoundExhausted = true;
evaluateResult.skippedFromSubRound = true; // 标记以禁止后续 Evaluate 复写
subRoundAttempts = 0;
}
Evaluate 驱动的更新:
iterationCount++
lastResult = currentResult
history.push({iteration, result, metrics, adjustments})
if (bestResult = null || currentResult.quality > bestResult.quality) {
bestResult = currentResult
qualityDeclineCount = 0
} else if (currentResult.quality < bestResult.quality) {
qualityDeclineCount++
}
switch (evaluateResult) {
pass: consecutiveFailures = max(0, CF-1); CP=0; subRoundAttempts=0
partial: CF不变; CP += subRoundExhausted ? 0 : 1
fail/parse_error: CF++; CP=0
}
// ! 子任务耗尽标记的 evaluateResult(fail)不由 Evaluate 逻辑复写
// ! 当 evaluateResult.skippedFromSubRound=true 时,跳过 switch 分支,直接传递到 Decide
Decide 驱动的更新:
// ! 重要:Evaluate 驱动和 Decide 驱动的 CF 衰减互斥。
// ! 当 Decide 输出 switch_strategy 时,Evaluate 驱动已执行的 CF 衰减被 Decide 驱动覆盖。
// ! 规则:decide_meta.mutuallyExclusiveWith(evaluate_meta) = true
decide(switch_strategy) → {
switchCounter += 1
consecutiveFailures = max(0, floor(CF/2)) // 覆盖 Evaluate 驱动已执行的 CF 衰减
emptyCount(T, params) = 0
evaluateResult.skippedFromSubRound = false // 清除子任务耗尽标记
}
decide(continue | TM | TO | TS) → 不操作计数器
// 非 switch_strategy 时,Evaluate 驱动的 CF 衰减保持生效
§八、终止(Termination)
TerminationPriority AX 严格定义于 axioms.md §七。本文件仅提供工程实现引用。
终止优先级链定义参见 axioms.md
[AX] TerminationPriority。engine.md 不做重复定义。
终止决策含义
| 决策 | 条件 | 含义 |
|---|---|---|
| TS (terminate_success) | 通过验证 | 正常终止 |
| TO (terminate_overflow) | 超限 | 资源耗尽 |
| TM (terminate_meltdown) | 熔断 | 系统错误,强制挂起 |
| switch_strategy | 策略切换 | 切换工具/方法/参数组合,重置相关计数器 |
| continue | 继续循环 | 进入 Adjust,执行下一轮迭代 |
参数版本化
参数值绑定到判定时刻 τ_decision。历史回放使用 τ_decision 活跃值。
§九、循环模式(Loop Patterns)
9.1 模式定义公式
M = (Axioms: 公理集合, StrategyRules: 策略配置, Params: 参数特化)
9.2 模式速查表
| 模式 | 核心差异 | 配置预设 |
|---|---|---|
| 简单重试 (§9.3.1) | 纯参数调整,无策略切换 | SAFE |
| 迭代调试 (§9.3.2) | 诊断级输出提取 + 代码修复 | DEVELOP |
| 批量轮询 (§9.3.3) | 并行执行隔离状态 | 自定义 |
| 多层嵌套 (§9.3.4) | 独立状态快照嵌套循环 | 自定义 |
| 多轮完整迭代 (§9.3.5) | 多轮次规划与全局累计失败 | CAMPAIGN |
9.3 各模式详细定义
9.3.1 简单重试
Axioms: TerminationPriority + ExecutionStateTaxonomy + InitialState + ResultStructureStrategyRules: OnError 输出空间{retry, continue, TS, TO};Adjust 固定为parameter_adjustParams: SAFE 预设
9.3.2 迭代调试
Axioms: EvaluationOutcomeSet + ExecutionStateTaxonomy + FailureSubtyping + InitialStateStrategyRules: Collect 扩展为诊断级提取;Adjust 含 code_fix/strategy_switch;OnError 开放全空间Params: DEVELOP 预设
9.3.3 批量轮询
Axioms: StateSnapshot + StateMerge + ExecutionStateTaxonomyStrategyRules: ToolStrategy 选择 batch_processing;@parallelfor each itemParams: TIMEOUT 按 item 计
9.3.4 多层嵌套
Axioms: StateSnapshot + RoundIndependence + InitialStateStrategyRules: 内层循环使用独立 StateManager 副本;内层终止后通过 StateMerge 写入外层Params: 内层使用独立阈值配置
9.3.5 多轮完整迭代(MultiRoundStrategy)SM
Axioms: RoundIndependence + RoundTransition + TerminationPriority + ResultCompositionStrategyRules:[① 重新评估 → ② 识别问题 → ③ 制定计划 → ④ 执行+验证+记录] × ROUNDSParams: CAMPAIGN 预设
ReEvaluationEntry SM :∀Rk∈Rounds(k≥2): Rk.workItems∈reEvaluated(Rk-1.artifacts)
轮次间状态传递:
| 传递项 | 说明 |
|---|---|
| 工作产物 | 上一轮修改后的完整产物 |
| 变更历史 | changeLog\[\] 追加到全局历史 |
| 遗留问题 | 上一轮未处理的问题 |
| 轮内计数器 | 不跨轮传递 |
| 全局累计失败 | globalCumulativeFailures 每轮后累加 |
§十、OnError 策略(循环版本)
作用域 :
scope: loop_body下激活(无论焦点层级)。⚠ 修复说明:旧版写为"L1 焦点层级且 scope: loop_body",导致 L2 焦点层级下的循环体无熔断保护。
现已修正为仅按 scope 激活------只要在循环体内,就使用本循环版 OnError(含熔断逻辑)。
非 loop_body 作用域(single_call/global)下使用 rules.md §5 OnError(通用版)。
OnError(error, stepIndex, toolchain) CD layer: L1, scope: loop_body
Provides: 错误处理决策(retry/switch_strategy/halt/continue/skip_remaining/forcehalt)
决策树:
① forceHalt=true? → true: forcehalt | false: 进入①.5
①.5 瞬态重试?
├─ result=∅ ∧ callCount(T, params)=0 → retry
└─ 否则 → 进入②
② 重试/空结果熔断?
├─ retryCounter ≥ ONERROR_RETRY_LIMIT ∨ emptyCount(T) ≥ ONERROR_EMPTY_T_LIMIT → forcehalt
├─ emptyCount(T, params) ≥ ONERROR_EMPTY_PARAMS_LIMIT → switch_strategy
├─ result=∅ ∧ callCount(T, params)≥1 → switch_strategy
└─ 均不满足 → 进入③
③ 错误分类处理:
├─ error∈{timeout, execution_failure} ∧ stepIndex<len(toolchain) → halt+persist
├─ error∈{partial_output, warning} → continue
├─ error∈{resource_exhausted} → skip_remaining
└─ error∈{irrecoverable} → halt
计数器规则:
error ∈ {execution_failure}时retryCounter += 1(① false 之后、② 之前)- forceHalt=true 时跳过所有计数器递增
- compilation_error 的 retryCounter 递增见 ExecutionFailureGate
forceHalt 通知机制 :连续 N 轮无新错误触发后报告熔断状态并请求确认清除(N=FORCEHALT_NOTIFY_N)。
switchCounter 联动:
switchCounter ≥ ONERROR_SWITCH_LIMIT时 switch_strategy 降级为 forcehalt- 阶段变更时 switchCounter 减半
- 连续 N 轮无 switch_strategy 触发时减 1(
N=SWITCH_DECAY_N,不低于 0)
§十一、反模式
循环执行特有反模式。通用反模式见 rules.md §7。
| 反模式 | 严重 | 正确做法 |
|---|---|---|
| 无终止条件循环 | 高 | 始终设置 MAX_ITER 和 MAX_FAIL |
| 修复不记录 | 中 | 维护 changeLog |
| 不收集原始输出 | 中 | 同时保留原始输出和解析指标 |
| 过度策略切换 | 高 | 依赖 switchCounter 衰减和 ≥3→forcehalt 降级 |
| 嵌套状态污染 | 高 | 内层循环使用独立状态快照 |
| 忽略空结果合法 | 中 | 遵循 FirstCallTransient / RepeatedCallStable 公理 |
| 并行状态竞争 | 高 | 遵循 StateSnapshot + StateMerge |
| 恢复校验跳过 | 中 | 按 StateValidity 三定律校验后恢复 |