
引擎状态机与注意力层级Engine State Machine Attention Focus层级L1-L2引擎运行时视角 |职责注意力控制 运行时状态机 迭代循环执行源公理axioms.md §三-§八 |派生追溯derivation.md §二、§六视角说明本文件的 L0-L3 使用引擎运行时视角架构层/逻辑层/代码层/语法层与 rules.md 的公式类型视角、spec.md 的代码生成视角不同。见 axioms.mdAxiomHierarchyStructure共同约束源。§一、抽象层级定义Layer Taxonomy当前焦点层级 ≥ 规则声明的层级时规则激活。层级名称关注点典型策略/规范L0-ENG架构层项目结构、模块边界、通信模式、路径规范PathStrategy, CommunicationModeL1-ENG逻辑层控制流、迭代循环、错误熔断、状态恢复OnError(loop), CompactProcedure, StateRecoveryL2-ENG代码层实现细节、代码质量、设计模式、内聚性CodeStandard, CohesionCheckL3-ENG语法层工具调用、文件操作、语言特性、参数格式ReadStrategy, ToolSelect1.1 层级优先级同一条规则在不同层级有不同实现时L0-ENG L1-ENG L2-ENG L3-ENG。与规则冲突解决层级的耦合裁决见 rules.md §1.3。1.2 上下文类型Scope Taxonomy上下文说明示例global全局生效通用工具策略、路径规范loop_body仅在循环体内部生效本文件 §十 OnError、计数器规则procedure仅在特定流程步骤内生效CompactProcedure.emergency_dumpsingle_call仅在单次工具调用场景生效通用错误分类1.3 层级反模式反模式严重表现正确做法逻辑层渗漏高L1 熔断规则应用到 L2/L3 普通操作标注规则 layer按 FocusLayer 公理过滤语法层越权中工具调用失败直接触发架构层决策逐层传递每层只做本层决策作用域逃逸高loop_body 规则在单次调用中激活标注 scope按 ScopeGuard 公理过滤§二、层级策略FocusDecision(phase, context) [CM] Provides: 当前焦点层级L0/L1/L2/L3phase ∈ {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_THRESHOLD0.8partial 判定阈值EvaluationOutcomeSet [AX]EXEC_TIMEOUT60单次执行超时(秒)StateSnapshot [AX]SUBROUND_MAX_ATTEMPTS3子任务最大修复尝试次数RoundCompletion [AX]SUCCESS_CRITERIA{executionsuccess}成功判定标准EvaluationOutcomeSet [AX]VERIFICATION_CRITERIA{compilationsuccess}验证标准RoundCompletion [AX]COLLECT_PATTERNS[success,total,errorMessage]输出提取模式Coupling-ObservationCollapseONERROR_RETRY_LIMIT3重试熔断阈值FirstCallTransient [AX]ONERROR_EMPTY_T_LIMIT3空结果(T)熔断阈值RepeatedCallStable [AX]ONERROR_EMPTY_PARAMS_LIMIT2空结果(T,params)熔断阈值RepeatedCallStable [AX]ONERROR_SWITCH_LIMIT3策略切换 forcehalt 降级阈值TerminationPriority [AX]SWITCH_DECAY_N8switchCounter 衰减间隔轮数CountableOrderBridgeFORCEHALT_NOTIFY_N5forceHalt 无新错误通知轮数InformationMonotonicityRECENT_CHAIN_COUNT3压缩后加载的推理链条数CompactProcedureEMERGENCY_DUMP_MAX_CHARS500紧急转储最大字符数CompactProcedure3.2 配置预设Profiles预设值覆盖全局默认值。通用参数MAX_FAIL 等默认值见 axioms.md。Delta 原则预设仅声明与默认值不同的字段未声明字段回退至 axioms.md通用参数或 §3.1引擎专用参数默认值。SAFE 预设简单重试— DeltaMODE SAFE | MAX_ITER 5 | SWITCH_THRESHOLD INF PARTIAL_THRESHOLD 1.0 | SUBROUND_MAX_ATTEMPTS 2 Adjust [parameter_adjust] | COLLECT_PATTERNS [success, total, errorMessage]DEVELOP 预设迭代调试— DeltaMODE 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 预设多轮模式— DeltaMODE 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 状态变量表变量名类型初始值说明读权限写权限所属层级派生公理operationLogMapOpID,Status{}操作状态记录StateValidity、OnErrorErrorHandler、执行体L1IDI-Interaction IDI-HistoryEmergencefileCacheMapPath,{timestamp,hash}{}已读文件缓存StateValidity、SyncGuardReadStrategy、SyncGuardL2StateSnapshot RepeatedCallStableexternalConsistencybooltrue外部一致性标志StateValiditySyncGuardL2IDI-DifferencelastOpIDnull上次操作标识IdempotencyGuard执行体L2Discrete-CountabilitylastFileHashHashnull上次文件内容哈希IdempotencyGuard执行体L2Discrete-ExactEqualityretryCounterint0连续重试计数OnErrorOnError、执行体L1Discrete-CountabilityswitchCounterint0连续策略切换计数OnErrorOnErrorL1TerminationPriorityforceHaltboolfalse熔断标志OnErrorOnErrorL1TerminationPrioritytoolCallHistoryMapToolCallKey,{count,lastResult}{}工具调用历史OnError执行体L1IDI-HistoryEmergenceemptyCountMapToolKey,int{}空结果计数OnErrorOnErrorL1FirstCallTransientcallCountMapCallKey,int{}调用次数FirstCallTransient执行体L1Discrete-Countability4.2 状态一致性遵循 StateSnapshot、StateMerge 公理。parallel状态合并规则∀op₁,op₂∈ParallelOps: op₁.stateSnapshot ∩ op₂.stateSnapshot ∅ (快照隔离) 合并顺序按工具链中声明顺序非完成顺序。 若并行步骤修改同一状态变量→标记 parallel_write_conflict →本轮 resultparse_errorparallel场景下并行步骤使用独立快照执行完成后按工具链顺序合并。4.3 初始化钩子skipExternalConsistency和skipHistoricalIntegrity由 StateManager 初始化钩子自动管理触发fileCache ∅或forceHalt true时系统底层自动置位清除首次 StateValidity 评估完成后系统底层自动清除§五、循环公理实例化公理axioms.md实例化含义使用位置RoundCompletion [AX]R.completed↔R.executed∧R.verified∧R.logged§六 终止条件RoundTransition [AX]enters(Rk1)↔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}§六 EvaluateDecisionOutputSet [AX]D∈{TS,TO,TM,switch_strategy,continue}§六 DecideTerminationPriority [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]{executionfailure ∧ errorcompilation_error ∧ retryCounterONERROR_RETRY_LIMIT} → 进入 Collect {executionfailure ∧ errorcompilation_error ∧ retryCounter≥ONERROR_RETRY_LIMIT} → 直接进入 Decide 输出 TM {executionfailure ∧ errorenvironment} → 直接进入 Decide 输出 TM {executionsuccess} → 进入 Collect {executionfailure ∧ error∉{compilation_error, environment}} → 进入 §十 OnErrorcompilation_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]三值评估passT, partial⊥, failF④ Decide [CD]{evaluate_result, state, config} → 决策输出。裁决顺序short_circuit(forceHalttrue→TM; forceHaltfalse∧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.mdTerminationPriority [AX]的工程实现子集。公理定义的完整约束commensurability_rule、projection、parameter_versioning在本实现中做了以下简化CF 比较假设 R.CF 已由 CountableOrderBridge 因果加权 Join 归约为可比较标量projection(proj_cf(R))逻辑由 engine.md §七 的因果加权 Join 隐式处理parameter_versioning的 τ_decision 绑定见 engine.md §八 参数版本化当 CF 不可归约时proj_cf 为 undefined决策跳过 CF 判定等同于链上无此条件⑤ 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 初始化IC0首次启动iterationCount0 consecutiveFailures0 consecutivePartials0 qualityDeclineCount0 bestResultnull lastResultnull changeLog[] history[] subRoundAttempts0IC0Continuation继承上一轮结束状态保留 history 和 changeLog。7.2 计数器维护职责计数器所属递增重置retryCounterL1 共享§十 OnError不重置CF 语义emptyCountL1 共享§十 OnError非空结果时 EvaluateswitchCounterL1 共享§7.3 Decide 驱动§7.3 衰减机制callCountL1 共享执行体不重置iterationCount循环专用§7.3不重置consecutiveFailures循环专用§7.3 Evaluate衰减(两种规则: Evaluate路径 max(0,CF-1); Decide路径 max(0,floor(CF/2)))consecutivePartials循环专用§7.3 Evaluatepass/fail/parse_error 置0qualityDeclineCount循环专用§7.3 EvaluatebestResult 更新时置0subRoundAttempts循环专用Adjustpass 时置07.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); CP0; subRoundAttempts0 partial: CF不变; CP subRoundExhausted ? 0 : 1 fail/parse_error: CF; CP0 } // ! 子任务耗尽标记的 evaluateResultfail不由 Evaluate 逻辑复写 // ! 当 evaluateResult.skippedFromSubRoundtrue 时跳过 switch 分支直接传递到 DecideDecide 驱动的更新// ! 重要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 衰减保持生效§八、终止TerminationTerminationPriority [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 Patterns9.1 模式定义公式M (Axioms: 公理集合, StrategyRules: 策略配置, Params: 参数特化)9.2 模式速查表模式核心差异配置预设简单重试(§9.3.1)纯参数调整无策略切换SAFE迭代调试(§9.3.2)诊断级输出提取 代码修复DEVELOP批量轮询(§9.3.3)并行执行隔离状态自定义多层嵌套(§9.3.4)独立状态快照嵌套循环自定义多轮完整迭代(§9.3.5)多轮次规划与全局累计失败CAMPAIGN9.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_switchOnError 开放全空间Params: DEVELOP 预设9.3.3 批量轮询Axioms: StateSnapshot StateMerge ExecutionStateTaxonomyStrategyRules: ToolStrategy 选择 batch_processingparallelfor 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决策树① forceHalttrue? → 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} ∧ stepIndexlen(toolchain) → haltpersist ├─ error∈{partial_output, warning} → continue ├─ error∈{resource_exhausted} → skip_remaining └─ error∈{irrecoverable} → halt计数器规则error ∈ {execution_failure}时retryCounter 1① false 之后、② 之前forceHalttrue 时跳过所有计数器递增compilation_error 的 retryCounter 递增见 ExecutionFailureGateforceHalt 通知机制连续 N 轮无新错误触发后报告熔断状态并请求确认清除NFORCEHALT_NOTIFY_N。switchCounter 联动switchCounter ≥ ONERROR_SWITCH_LIMIT时 switch_strategy 降级为 forcehalt阶段变更时 switchCounter 减半连续 N 轮无 switch_strategy 触发时减 1NSWITCH_DECAY_N不低于 0§十一、反模式循环执行特有反模式。通用反模式见 rules.md §7。反模式严重正确做法无终止条件循环高始终设置 MAX_ITER 和 MAX_FAIL修复不记录中维护 changeLog不收集原始输出中同时保留原始输出和解析指标过度策略切换高依赖 switchCounter 衰减和 ≥3→forcehalt 降级嵌套状态污染高内层循环使用独立状态快照忽略空结果合法中遵循 FirstCallTransient / RepeatedCallStable 公理并行状态竞争高遵循 StateSnapshot StateMerge恢复校验跳过中按 StateValidity 三定律校验后恢复