Axioms DSL
AxiomsDoc = formal-system-definition: "集中管理所有公理声明------公理声明'什么是逻辑上必然的'"
AX-CORE AxiomHierarchyStructure:
LAYER_ORDER=L0,L0.5,L1,L2,L3
| invariants(L0):∀op∈MetaRound:op.target∉L0.elements
| invariants(L0):EssentiallyUndecidable(系统本质不可判定,证明责任外部化)
| invariants(L0.5):MetaEvolution_Rule逻辑骨架不变(自反修正可行)
| invariants(L1):修改需≥2验证者签名共识
| invariants(L2):可版本化,旧版存档
| invariants(L3):运行时可变(权限分级:config(部署注入)/admin(管理员))
| persistence(L0):contractRegistry哈希验证(外部持久化,非LLM上下文窗口记忆)
---meta
irr = "structural"
sem = "concept=hierarchy-layer, imp=layer-isolation-guarantees"
AX-CORE L0: BAX-IDI,BAX-TIME,BAX-C,BAX-D,SyncProtocolTriple
AX-META L0.5: MetaEvolution
---meta enf = "runtime_invariant: ¬∃op∈MetaRound, op.target∈{BAX-IDI,BAX-TIME,BAX-C,BAX-D,SyncProtocolTriple,MetaEvolution_Rule}" ---
AX-FRAME L1: BAX-X(Coupling-Sampling,Embedding,ObsCollapse),CountableOrderBridge
---meta enf = "codegen_constraint: 修改L1需≥2验证者签名共识" ---
AX L2: 领域公理(§一至八)
---meta enf = "codegen_constraint: 可版本化,旧版存档" ---
% L3: 配置参数(运行时可变)
AX-META MetaEvolution(InferenceRule):
废除MetaEvolution作为公理→推理规则
| // 触发条件从旧版 CM≥threshold 改为 Provable_{L2}("CF≥threshold"),切断元层对对象层CF裸数据的直接读取
| // CF≥threshold 为有界 Σ₁ 算术命题(CF∈ℕ通过计算确定),在PA中完全可判定(递归,非仅半可判定)
| // 因此 Provable_{L2}("CF≥threshold") 不会因"系统本质不可判定"而陷入无限等待:
| // 本质不可判定指系统中存在不可判定命题,而非所有算术命题皆不可判定
| // 自指约束:¬∃m∈Ops:m(MetaEvolution_Rule)≠MetaEvolution_Rule ∧ ¬∃m∈Ops:delete(MetaEvolution_Rule) ∧ ¬∃m∈Ops:replace(MetaEvolution_Rule),逻辑骨架保护(禁止修改/删除/替换λ-抽象)
| ! MetaEvolution_Rule = λthreshold:ℕ⁺.enters(MetaRound) ↔ Provable_{L2}("CF≥threshold")
| | MetaEvolution_Instance=MetaEvolution_Rule(META_THRESHOLD)
| | MetaRound∉AxiomHierarchyStructure.L0.elements∪{MetaEvolution_Rule}
| | δ(STANDARD,∃≥2v)=STANDARD | δ(STANDARD,¬∃≥2∧∃≥1)=DEGRADE_A
| | δ(DEGRADE_A,recover)=STANDARD | δ(DEGRADE_A,¬recover)=DEGRADE_B
| | enters(DEGRADE_A)↔¬∃≥2_v∧∃≥1_v | enters(DEGRADE_B)↔¬∃≥1_v∧∃rollback_contract
| | enters(DEGRADE_B):contract.hash∈L0.contractRegistry; enters(safe_halt)↔所有降级路径不可用
| | % META_THRESHOLD
---meta enf = "runtime_invariant: ∀MetaRound, MetaRound.logPersistence.verified=true" ---
AX-FRAME StratifiedReflectionSchema:
∀n∈0...\|LAYER_ORDER\|-2,Ln=LAYER_ORDERn,Lnext=LAYER_ORDERn+1:(⊢{Ln} φ)→Provable{Ln}(⌜φ⌝)在Lnext中为真
| AX ExternalTruthEquivalence:
| ∀n:Truth_{Lnext}(⌜φ⌝)↔Witnessed_{External}(⌜φ⌝, sig)
| //! 实现见 spec.md §2 ProofOracle
| AX ProvableDerivationOnly:
| ∀Ln∈LAYER_ORDER,∀φ:Provable_{Ln}(⌜φ⌝)↔⊢_{Ln} φ
| AX LogicalLayerSeparation: MetaLayer⊥ObjLayer | AX MetaReadConstraint: ∀r∈MetaLayer,∀v:r.reads(v)→v.type=ProvabilityToken
---meta irr = "logical" sem = "concept=stratified-reflection, imp=avoids-godel-incompleteness-by-layering" ---
AX-CORE EssentiallyUndecidable:
system≡essentially_undecidable(本质不可判定)
| //! 系统能力边界声明:PA+RCF+反射→绝对不可判定,写入L0硬核
---meta irr = "logical" sem = "concept=undecidability-boundary, imp=system-admits-no-complete-consistency-proof" ---
DR ExternalConsistencyWitness(设计理由,非公理):
外部签名见证属于元层级(MetaLayer),非系统内公式
| //! 签名验证是元级前提假设;可靠性由密码学保证
| //! 签名验证者数量承诺≥2(由元级运行时保证,非系统内公式可推导)
| //! 解除系统内部自指一致性断言,避免触发哥德尔第二不完备定理
| //! WitnessTerm为元级运行时绑定(见spec.md §2 ProofOracle),非逻辑公式→降级为设计理由
---meta irr = "logical" sem = "concept=external-consistency-witness, imp=meta-level-binding-not-axiom" ---
AX-CORE TruthValueDomainLogic:
TruthValueDomain={⊥,T,F}(Scott信息域)
| ¬⊥=⊥ | ¬T=F | ¬F=T
| ⊥∧T=⊥ | ⊥∧F=⊥ | T∧F=F | T∧T=T | F∧F=F | ⊥∨T=T | ⊥∨F=F | T∨F=T | T∨T=T | F∨F=F
| AX DecisionTrigger: ∀φ∈Judgment:decision(φ)↔φ∈{T,F}
| AX ExploratoryEntry: ∀φ∈Judgment:φ=⊥→enters(ExploratoryRound)∧log(meta,"⊥判定→探索性轮次")
| AX InformationMonotonicity: ∀s:¬∃τ₁→τ₂:val(s)@τ₁=F∧val(s)@τ₂=T
| AX ConcurrentComparisonUndefined: ∀s₁,s₂,∀τ₁∥τ₂:¬∃(val(s₁)@τ₁≺val(s₂)@τ₂)
---meta irr = "logical" sem = "concept=truth-value, framework=Scott-Domain-Logic, imp=monotonic-information-accumulation" ---
AX-CORE QuantificationConstraint:
∀φ∈Formulas:∀v∈FreeVars(φ):∃T∈PrimitiveTypes:type(v)=T
| priority(explicit>contextual>fallback_Entity); ¬∃φ:φ=∀x:Entity,y:Entity,... // 禁止未限定类型的裸量化
---meta irr = "logical" sem = "imp=prevents-Russell-paradox" ---
// === 类型基底 ===
Type Entity = 可指称实体 | OBSERVER = 观察者类型 | Event = InteractionEvent∪TransitionEvent
Type FieldValue = C域场变量(连续域可观测场值)
Type InteractionEvent = 交互事件(≥2实体) | TransitionEvent = 跃迁事件(单实体)
Type Round = 轮次 | State = 系统状态 | Counter = ℕ | CallKey = 调用键 | Quality = ℝ | Identifier = UID
Type L.I.State = 轮次迭代状态(L1循环中轮次R在进入时的状态快照)
Type Judgment = 判定命题 | domain:{T,F,⊥}
// === 定义(Def)与符号约定 ===
Def a@τ = ⟨a,τ⟩ | a∥b ↔ ¬(a→b)∧¬(b→a) | a→b = strict_partial_order
Def a≺b ↔ a→b (严格偏序比较) | a→b ↔ a→b的传递闭包(refl,trans)
Def a⊗b = if a→ b then b else if b→a then a else causal_fallback_heuristic(a,b) (因果合并算子,见CountableOrderBridge)
Def op.readsFrom(s)↔∃!r:(op,s)↦r(基于快照s,确定性结果) | callCount(k)∈ℕ | retry(k)=invoke(k)again
Def deterministic(op,s)↔(∃!r:(op,s)↦r) | consistent(m)↔m中各来源的同一状态变量值相同
Def SCOPES⊆ContextSpace
Def cone_forward(x)={y|x→y} | cone_backward(x)={y|y→x}
Def state₁ ↝ state₂ ↔ legal_transition(state₁,state₂)
Def op.needsSync(ctx)↔¬(op₁∥op₂)∧op₁.domain≠op₂.domain
Def causal_chain_depth® = |{r'|r'→ r}| (因果前驱链长度)
Def Intent → types
Def ⌜φ⌝{Ln}=Gödel_number(φ)in Ln | ⊢{L}φ↔φ在L中可推导
Def TryPhase=SyncTriple.phase1 | CommitPhase=phase2(atomic=clock_domain) | CompensatePhase=phase3(rollback)
Def ⊥=insufficient_evidence(Scott_bottom) | ⊑=information_partial_order
Def isFresh® ↔ R.preRound=null | decision®∈{TS,TO,TM,switch_strategy,continue}
Def completed® ↔ R.executed∧R.verified∧R.logged | enters® ↔ R.preconditions.valid∧R.config∈ConfigSpace(R.mode)
Type Signature = 外部签名(meta-level-binding)
Def sig:Signature = external_signature(meta-level-binding)
// === 〇、基底元公理 ===
BAX TriPerspectiveStructure:
∃IDI,C,D(三视角独立) | IDI⊥C⊥D(删除任一→其余失去意义) | ∀s:s≅IDI_s⊗C_s⊗D_s
---meta irr = "structural" ---
BAX IDI_Framework: IDI=observer-framework(logic-semantic-base)
---meta sem = "concept=IDI, role=observer-framework" ---
BAX-IDI IDI-Identity:
∀(x:Entity),(obs:OBSERVER):x≡_obsx
| ∀x,y,obs:(x≡_obsy)↔∀P∈Obs(obs)(P(x)↔P(y)); Obs(obs)由L0注入,非递归自省
| (x≡_obs₁y)∧(x≢_obs₂y)→ep_gap(obs₁,obs₂); Obs(obs)∌λP.P∈Obs(obs)
---meta irr = "logical" sem = "concept=identity,binding=observer,imp=epistemic_gap" ---
BAX-IDI IDI-Difference:
∀x,y,obs:Diff_obs(x,y)↔¬(x≡_obsy) | ∀S:|S|≥2→∃x,y∈S:Diff_obs(x,y)
---meta irr = "informational" sem = "concept=difference, imp=unit-of-info(1bit)" ---
BAX-IDI IDI-Interaction:
∀(x:Entity),(y:Entity):(x≢_obsy)→∃⟷(x,y) | ⟷(x,y)=可观测相互影响
---meta irr = "relational" sem = "concept=interaction, role=bridge-across-difference" ---
BAX-IDI IDI-HistoryEmergence:
∀x:x.history={⟨τ,y,e⟩|(x⟷y)@τ∧e∈{causal,concurrent}}
---meta irr = "temporal" sem = "concept=history, role=emergent-from-interaction-record" ---
AX-CORE SyncProtocolTriple:
Sync=Try→Commit|Compensate(三阶段)
| ! TryPhase: ◇_{≤Δt}Response | timeout→CompensatePhase
| ! CommitPhase: ○(AtomicLock) | ¬∃obs₁,obs₂:commit(obs₁,obs₂)∧obs₁=obs₂ | 逻辑时钟域原子,非物理原子
| commit(obs₁,obs₂): obs₁发出CommitRequest → obs₂收到后确认CommitAck → obs₁收到Ack后completed
| commit(obs₁,obs₂).completed↔obs₂.val|_obs₁=obs₁.request.val(二阶段承诺:obs₂确认收到obs₁请求值即为完成,非跨视角等价验证)
| ! CompensatePhase: Try超时→回滚+恢复(非原子)
| completed(sync)↔Commited(sync)∨Compensated(sync)
| 路径1:Try→Commit→Completed(Commited) | 路径2:Try→Timeout→Compensate→Completed(Compensated)
| //! 崩溃恢复协议(工程规范): 在 CommitPhase 或 CompensatePhase 中任意实体崩溃时:
| //! ① 崩溃实体重启后查询 L0.contractRegistry 中的最后已知状态
| //! ② 若 CommitAck 未确认: 回退至 TryPhase 重试(≤2次)
| //! ③ 若 CompensatePhase 中断: 恢复至最近的 committed 快照
| //! ④ 若 Obs₂ 在 CommitPhase 中崩溃且 Obs₁ 已收到 Ack: 视为 committed 完成
| //! 本协议是工程规范,降低活锁概率但不保证绝对无活锁(需元级外部监控触发 safe_halt)
---meta sem = "concept=sync-protocol-triple, try=non-atomic, commit=logical-clock-domain" ---
// 时间基底
BAX-TIME LogicalClock: ∀a,b:a→b(严格偏序) | a∥b(定义见Def a∥b) | ∀e∈TransitionEvent:IsFirstEvent(e)∨e.cause≠∅
| IsFirstEvent(StartEvent) | StartEvent.cause=∅ | init:Clock=(0,0)@StartEvent
| //! 工程规范:所有 a∥b 的偏序合并必须使用 Lamport时间戳 + 进程ID 构造全序
| //! total_order(a,b) = (clock_a < clock_b) ∨ (clock_a = clock_b ∧ pid_a < pid_b)
| //! 此全序写入本公理作为工程层面的"全局视点"(global_viewpoint),与纯逻辑"因果视点"(causal_viewpoint)分层:
| //! 因果视点(L0逻辑层): a∥b 无先后关系
| //! 全局视点(工程规范层): a∥b 通过 Lamport全序 确定确定性合并顺序
| //! 全局视点仅在 causal_fallback_heuristic 和 compose_causal 的工程实现中使用,不改变偏序逻辑语义
---meta sem = "concept=causality, role=partial-order, imp=removes-global-clock" ---
BAX-TIME CausalCone:
∀x:cone_forward(x)={y|x→y} | cone_backward(x)={y|y→x}
| ∀R,R':R.stateSpace∩R'.stateSpace=∅→cone_fwd®∩cone_bwd(R')=∅
---meta sem = "concept=causal-cone, imp=independent-decisions-no-consensus" ---
BAX-C Continuum-Metric: ∀s₁,s₂:∃d∈ℝ_{\ge0}:d(s₁,s₂)
---meta sem = "concept=distance, imp=DegradationContinuum" ---
BAX-C Continuum-Dynamics: ∀t₁,t₂,∀state:∂state/∂t=F(state,input)
---meta sem = "concept=gradual-change" ---
BAX-C Continuum-Superposition:
StateSpace=有界凸集:∀s₁,s₂,∀α,β∈0,1:α+β=1→αs₁+βs₂∈StateSpace | ‖s‖≤M
---meta sem = "concept=mixed-states, imp=noise-probability-source" ---
BAX-C Continuum-SamplingThreshold:
∀sensor:read()∈ℝ | ∃δ:|read(t₂)-read(t₁)|<δ→Unchanged
| δ(t+1)=δ(t)·α+osc_amp(t)·(1-α); osc_amp=max(|read(τ)-read(τ-1)|)最近窗口
| // Nyquist:sr≥2×max_freq; sr<2f_max→标记AliasingWarning(冻结δ)
---meta
cfg = "CONVERGE_ALPHA"
BAX-D Discrete-Enumeration: ∀cs:cs↔ℕ
---meta sem = "concept=enumerable" ---
BAX-D Discrete-AtomicStep: ∀t∈Computations:t是原子跃迁
---meta sem = "imp=RoundTransition+StateSnapshot的前提" ---
BAX-D Discrete-Countability:
∀k:callCount(k)∈ℕ | succ© = c+1 | 局部计数器仅在因果锥内单调递增
| ∀R,R':R∥R'→¬(R.cnt<R'.cnt)
---meta sem = "concept=local-monotonic-counting" ---
BAX-D Discrete-ExactEquality: ∀a,b:(a=b)↔True/False(精确无容差)
---meta sem = "imp=EvaluationOutcomeSet基底" ---
AX-FRAME CountableOrderBridge:
∀R,R':R.cf与R'.cf可比较性由因果偏序决定
| R→R':R'.cf=max(R'.local,R.cf) | R∥R':不可直接比较
| decision®仅考虑causal_chain®; effective_count®=⊗{R'.count|R'→R}(⊗定义见Def a⊗b)
| causal_weight®=causal_chain_depth® | same_chain®={R'|R→R'∨R'→ R}
---meta irr = "logical" sem = "concept=countable-order, role=bridge" ---
DR CausalFallbackHeuristic(设计理由,非公理):
causal_fallback_heuristic(a,b)=max(causal_chain_depth(a),causal_chain_depth(b))
| //! 工程启发式(非逻辑必然),仅用于并发轮次(a∥b)的工程合并
| causal_fallback_heuristic 的调用必须满足 a∥b,保证偏序优先
---meta irr = "engineering" sem = "concept=causal-fallback-heuristic, imp=engineering-merge-for-concurrent-rounds" ---
BAX-X Coupling-Embedding(TopologicalContinuityEmbedding):
embed:Discrete→Continuous | sample:Continuous→Discrete(拓扑连续嵌入,非逻辑函子)
| embed conservativity:∀φ∈Formulas_D:(⊢_D φ)→(⊢_C embed(φ))
| //! Galois Connection 在此语境下为统计目标(Statistical Objective),非严格数学等式:
| //! minimize E‖sample(embed(d)) - d‖ 及其上界 ε (由 Continuum-SamplingThreshold 的 δ(t) 确定)
| //! embed 将离散Token映射为高维浮点向量; sample 通过概率分布Argmax采样回离散Token
| //! Argmax 的信息丢失性使得 sample(embed(d))=d 在 LLM 系统中不是严格成立的数学等式
| //! embed conservativity 仍为规范约束: 至少保持源离散系统的逻辑结构
| embed conservativity(statistical):∀φ∈Formulas_D:Truth_D(φ)→ETruth_C(embed(φ))≥1-ε
// === 跨域耦合 ===
BAX-X Coupling-Sampling: ∀sig∈ℝ,∀do∈Sensors:do.value=f(sig)(采样函数)
---meta sem = "continuous→discrete" ---
BAX-X Coupling-ObservationCollapse:
∀(fv:FieldValue),∀(obs:OBSERVER):fv.continuousVariance≠0 | observed(fv,obs)→fv.continuousVariance|_obs=0
| obs₁≠obs₂→fv.val|_obs₁≠fv.val|_obs₂合法→sync后收敛
---meta sem = "concept=tri-domain-collapse-on-observation" ---
// === §一 状态与空值(领域公理,L2) ===
AX StateSnapshot: ∀op,s:op.readsFrom(s)→deterministic(op,s)
AX StateMerge: ∀m:m.conflictFree→consistent(m)
AX InitialStateNullity: ∀(x:L.I.State)→x.intent∈{NO_DATA,NO_RESPONSE} | NO_DATA=∅ | NO_RESPONSE=null
AX IntentClassification: ∀r:r.intent∈{NO_DATA,NO_RESPONSE,AMBIGUOUS}
| NO_DATA=∃q:q.executed∧q.result=∅ | NO_RESPONSE=¬response.received∧(timeout∨error) | AMBIGUOUS=¬intentDeterminable
| NO_DATA→¬retry® | NO_RESPONSE→retry®
// === §二 调用行为(领域公理,L2) ===
AX FirstCallTransient: ∀k:callCount(k)=0→result(k).mayBeTransient
AX RepeatedCallStable: ∀k:(callCount(k)≥1∧¬reconf_expired)→result(k).isStable
| reconf_expired↔(cur_time-last_confirmed)>RECONFIRMATION_WINDOW; reconf_expired→isStable降级为mayBeTransient
AX TransientRetryNoCost: ∀k:callCount=0∧result=∅→retry.errorCost=0
AX TransientResultReevaluation: ∀k:callCount=0∧result.mayBeTransient→¬result.confirmed
// === §三 注意力与作用域(领域公理,L2) ===
AX ScopeAnchor: ∀m∈LLM:m.attention⊆m.layerCoverage
AX FocusLayer: ∀r,∀f:r.layer∈LAYERS→r.active(f)iff f.level≥r.layer
AX ScopeGuard: ∀r,∀c:r.scope∈SCOPES→r.active©iff c∈r.scope
// === §四 执行状态(领域公理,L2) ===
AX ExecutionStateTaxonomy: ∀op∈Operation:op.status∈{success,failure}
AX FailureSubtyping: failure=exec_failure∪eval_failure∪parse_failure
| exec_failure:{compilation,runtime,timeout,dependency,environment}_error
| eval_failure:{partial_output,warning} | parse_failure:{parse_error}
AX ParseErrorStatus: ∀r∈CollectResult:extract®=∅→r.status=parse_error
// === §五 轮次(领域公理,L2) ===
AX RoundCompletion: ∀R:R.completed↔R.executed∧R.verified∧R.logged
AX RoundTransition: ∀Rk,Rk+1:enters(Rk+1)↔completed(Rk)∧reEvaluated(Rk)
AX RoundIndependence: ∀R,R':R.stateSpace∩R'.stateSpace=∅→R∥R'
AX InitialState: IC=0→R.start∈{IC=0∧CF=0∧CP=0∧QDC=0∧BR=null∧LR=null∧changeLog=\[\]∧history=\[\]}
AX EntryCondition: ∀R:R.enters↔R.preconditions.valid∧R.config∈ConfigSpace(R.mode)
AX SubRoundInitialState:
∀R∈Iteration:isFresh®→R.start.subRoundAttempts=0
| //! isFresh®↔R.preRound=null(全新轮次,Adjust 重入的轮次 R.preRound≠null)
| //! subRoundAttempts=0 仅在 R 为全新轮次时强制,重入轮次可继承前值
| //! 非 pass 终止(TM/TO/非耗尽路径)不重置 subRoundAttempts
| //! eng: engine.md §5.3 指定重置时机(仅pass/SubRoundExhaustion路径重置)
// === §六 评估与决策(领域公理,L2) ===
AX EvaluationOutcomeSet: ∀e:e.outcome∈{pass,partial,fail,parse_error}
AX DecisionOutputSet: ∀D:D.output∈{TS,TO,TM,switch_strategy,continue} | TerminalDecisions={TS,TO,TM}
// === §七 终止(领域公理,L2) ===
AX TerminationPriority:
∀D1,D2:priority(D1)>priority(D2)↔precedes(D1,D2)
| short_circuit:forceHalt→TM; forceHalt=false∧pass→TS; else→counter_chain
| priority_chain:CF≥MAX_FAIL > QDC≥QDT > CP≥MAX_PARTIAL > IC≥MAX_ITER > CF≥SWITCH_TH
| qdc_increment:仅当eval=partial∧quality<prev(因果有效):+1; TS时重置0
| commensurability:轮次R在其判定时刻的CF值与MAX_FAIL可比较iff∃R'∈causal_chain:R'→R,R'的CF值可归约至标量
| R.cf∈ℕ | R.cf=R.CF(consecutive_failures)@τ_decision | proj_cf®=if ∃R'∈causal_chain:R'→R then R'.cf@τ_{R'} else undefined
| judgement:proj_cf®≥MAX_FAIL@τ_decision→TM; undefined→跳过CF判定
| parameter_versioning:参数值绑定τ_decision;历史回放使用τ_decision活跃值
// === §八 结果组合(领域公理,L2) ===
AX ResultStructure: ∀R∈Iteration:R.result∈⟨status,terminal,quality,metadata,output⟩
AX ResultComposition: ∀R:R.result.status=compose_causal(R.history)
| // compose_causal:扫描causal_chain从新到旧;判定(最近TM→meltdown|TS→success|TO→overflow|链空→success)
---meta enf = "specification: compose_causal∈形式规范层;实现层编码为具体算法(DFS+时间戳)" ---
AX SingleRoundResult: ∀R∈Rounds:R.completed→compose_causal(R.history)=R.result
// === 推论 ===
// 逻辑推论(Theorems)的完整推导见 CR: theorems.md。
// === 配置参数 ===
// 仅L3运行时可变;熔断参数均为ℕ;META_THRESHOLD为ℕ⁺(≠0)(类型注解覆盖ℕ默认值)
% MAX_FAIL=int:3 | sem:最大CF触发TM | auth:config
% QUALITY_DECLINE_THRESHOLD=int:10 | QDC触发TO | auth:config,admin
% MAX_PARTIAL=int:5 | 最大连续部分成功 | auth:config,admin
% MAX_ITER=int:10 | 最大迭代次数 | auth:config,admin
% SWITCH_THRESHOLD=int:2 | 策略切换阈值(CF) | auth:config,admin
% META_THRESHOLD=int:3 | type:ℕ⁺ | 连续meltdown触发MetaRound | auth:config,admin
% RECONFIRMATION_WINDOW=int:10 | 再确认窗口(tick) | auth:config,admin
% CONVERGE_ALPHA=float:0.7 | type:ℝ(0,1) | 收敛因子α | auth:config,admin
Axiom DSL 语法规范
概述
本 DSL 是对 axioms.md 中公理书写语法的形式化提炼与规范定义。核心变革是引入 ---meta 三明治结构 作为可选语法(短公理仍可使用行内尾缀),消除 | 的语法歧义。
解析器需同时支持两种格式:三明治结构(用于多行公式体/复杂元数据)和行内尾缀(用于单行短公理)。
设计原则
- 分离关注点 :公式体(Formula_body)只含纯逻辑公式,元数据由独立
---meta块承载 - 消除歧义 :公式体内的
|只表示逻辑合取/析取/集合构造;---meta是唯一的元数据边界标记 - 编译友好 :解析器只需识别
---meta之前的 Formula_body(纯逻辑公式),元数据由独立解析器处理 - 双向追溯:元数据既可嵌入公理声明内(行内文档),也可在独立元数据仓储中维护
| 的语义优先级规则
FormulaBody = Formula { "|" Formula } 中的 | 具有语义歧义(可表示合取 ∧ 或析取 ∨)。解析器按以下优先级规则确定语义:
- 默认合取 :无额外修饰符时,
|默认解释为逻辑合取(∧) - 显式标记 :在子句前使用
∨前缀将该子句标记为析取分支。例如:P(x) | Q(x)→P(x) ∧ Q(x)(合取)P(x) | ∨ Q(x)→P(x) ∨ Q(x)(析取)
- 集合构造 :
|在集合构造{expr | condition}中保持其数学原语语义("使得") - 注释消歧 :对于二义性场景,推荐在
---meta的sem字段中标注logical_op="∧"或logical_op="∨"以消歧
此规则是工程约定,非逻辑必然。解析器实现应优先遵循显式标记。
1. 行类型前缀
| 前缀 | 含义 | 适用对象 |
|---|---|---|
## |
元文档声明 | 顶层文档描述 |
// |
注释 / 章节标题 | 自然语言段落、章节分组 |
| 无前缀 | 公理声明(单行公式) | 核心公理公式 |
! |
公理定义块(多行/代码块) | MetaEvolution、代码块公式 |
[AX] / [AX-CORE] 等 |
公理类别标记 | 公理声明行首 |
% |
配置参数 | 配置参数条目 |
# |
推论 TH | 推论声明 + 推导 |
@ |
缺陷记录 | 缺陷修复上下文 |
--- |
分隔线 | 节与节之间 |
[Type] |
类型声明 | 类型基底中的原始类型 |
$ |
符号约定 | 符号约定表条目 |
2. 行结构
2.1 公理声明(无前缀 / TAG 前缀)--- 三明治结构
[TAG] 公理名: 纯逻辑公式体(Formula_body)
---meta
key1 = "val1"
key2 = "val2, val3"
---
[TAG]:公理层级标记,可选。如[AX]、[AX-CORE]、[BAX]、[BAX-X]、[AX-FRAME]、[AX-META]公理名:公理标识符,如IDI-Identity、StateSnapshot纯逻辑公式体(Formula_body):用|分隔的多个逻辑子句(|在此只表示逻辑合取/析取/集合构造,无元数据语义)---meta:元数据块开始标记,独占一行key = "value":元数据条目,每行一个,键值对格式---:元数据块结束标记,独占一行
示例:
[AX] StateSnapshot: ∀op∈Ops,∀s∈Snap:op.readsFrom(s)→deterministic
---meta
view = "D"
src = "Discrete-AtomicStep"
---
公式体内的 | 用法
公式体内 | 仅用于:逻辑合取/析取子句分隔、集合构造、多条件枚举。
可省略的 ---meta 块
若某公理无需元数据,可完全省略 ---meta 块。解析器仍将其识别为合法公理声明,元数据视为空。
2.2 公理定义块(! 前缀)--- 三明治结构
用于多行公式、代码块内容、附加约束:
! 公理名:
子句1
| 子句2
---meta
key1 = "val1"
---
!后的第一行是子句集合,续行使用|前缀- 公式体结束后使用
---meta块;若无需元数据,可省略
2.3 配置参数(% 前缀)
% 参数名 = 类型:默认值 | sem:说明 | authority:{权限}
配置参数行较短,允许行内尾缀格式(配置参数无复杂公式体,不存在 | 歧义问题)。
示例 :% MAX_FAIL = int:3 | sem:最大CF,达到后触发TM | authority:config(部署注入),runtime(需admin验证)
2.4 推论(# 前缀)
# TH-编号: 结论公式 | src:{源公理列表} | pf:{推导步骤}
推论允许行内尾缀格式(推论体通常为单个结论公式,| 歧义不明显)。
2.5 缺陷记录(@ 前缀)
@ 缺陷ID: affected:{受影响公理} | symptom:{症状} | root:{根因} | fix:{修复方式}
2.6 类型声明([Type] 前缀)
[Type] 类型名 = 含义 | domain:{论域约束}
2.7 符号约定($ 前缀)
$ 符号 = 含义 | ref:{源公理}
符号约定也允许行内尾缀格式。
3. 元数据键(---meta 块内可用键)
3.1 标准键列表
| 键 | 含义 | 对应原标记 | 值格式 |
|---|---|---|---|
view |
三棱镜视角 | ^^PERSPECTIVE | "IDI,C,D" 等 |
src |
基底来源 | ^^SRC | "AxiomA, AxiomB" |
irr |
不可再抽象标注 | ^^IRR | "logical" / "informational" / "topological" / "relational" / "structural" |
sem |
语义结构化标签 | ^^SEM | "key=val, key=val, ..." |
enf |
强制执行机制 | ^^ENFORCE | "类型: 具体约束" |
cfg |
配置参数引用 | ^^CONFIG | "ParamName1, ParamName2" |
dr |
设计理由(一行) | ^^DR | 简短中文或英文 |
dep |
废弃声明 | ^^DEPRECATED | "replaced-by(新公理名)" |
authority |
参数修改权限 | 新增 | "config" / "admin" |
version |
参数版本化绑定 | 新增 | "@τ" |
3.2 sem 值的结构化格式
sem 使用逗号分隔的键值对,预定义子键:concept(核心概念)、binding(绑定对象)、imp(主要推论/蕴含)、role(在体系中的角色)、source(来源说明)、rationale(形式化理由)。
3.3 enf 值的格式
enf = "类型: 谓词"
类型为:
runtime_invariant:运行时不变式断言codegen_constraint:代码生成约束inference_rule:推理规则specification:形式规范声明
3.4 组合示例
[AX] SampleAxiom: ∀x:P(x)∧Q(x)
---meta
view = "IDI, D"
src = "IDI-Identity, Discrete-AtomicStep"
enf = "runtime_invariant: 每次决策后验证一致性"
sem = "concept=完成, role=状态转移条件"
---
4. 行内压缩规则
4.1 逻辑符号缩写
| 原扩展名 | DSL 缩写 | 说明 |
|---|---|---|
consecutive_failures |
CF |
仅在公理公式内部上下文明确时使用 |
consecutive_partials |
CP |
同上 |
quality_decline_count |
QDC |
同上 |
iteration_count |
IC |
同上 |
best_result |
BR |
同上 |
Obs_capabilities(obs) |
Obs(obs) |
观察者能力集 |
epistemic_gap |
ep_gap |
认知差距 |
terminate_success/meltdown/overflow |
TS/TM/TO |
终止决策类型 |
4.2 变量类型标注
推荐使用完整形式 ∀(x:Entity) 以避免歧义。
4.3 中文注释压行
代码块中的自然语言中文注释压缩为单行,使用 // 前缀。
5. 文法(EBNF 简化版)
Document = { Section | Comment | Separator }
Section = "##" MetaDoc | SectionBlock
SectionBlock = AxiomDef | MultiLineBlock | ConfigDef | TheoremDef | DefectRecord | TypeDecl | SymbolDef
AxiomDef = "[" Tag "]" Name ":" FormulaBody NL [ "---meta" NL { MetaLine } "---" ]
MultiLineBlock = "!" Name ":" Line { "|" Line } [ NL "---meta" NL { MetaLine } "---" ]
ConfigDef = "%" Name "=" Type ":" Value { "|" SuffixEntry }
TheoremDef = "#" Name ":" Formula "|" "src:" "{" NameList "}" [ "|" "pf:" Steps ]
DefectRecord = "@" DefectID ":" KeyValPairs
TypeDecl = "[Type]" Name "=" Description [ "|" "domain:" Constraint ]
SymbolDef = "$" Symbol "=" Meaning [ "|" "ref:" Source ]
FormulaBody = Formula { "|" Formula } (* | 仅表示逻辑合取/析取/集合构造 *)
Formula = LogicalExpression
MetaLine = Key "=" "\"" MetaValue "\""
MetaValue = TextContent (* 键值的自由文本内容 *)
SuffixEntry = Key ":" SuffixValue
SuffixValue = "{" NameList "}" | TagList | ConceptPairs | EnforceExpr | AuthorityExpr | VersionExpr
NameList = Name { "," Name }
TagList = Tag { "," Tag }
ConceptPairs = ConceptPair { "," ConceptPair }
ConceptPair = Key "=" Value
EnforceExpr = Type "(" Predicate ")"
AuthorityExpr = "config" | "admin" | "config" "," "admin"
VersionExpr = "@" LogicalClockRef
Domain = "IDI" | "C" | "D"
Level = "L0" | "L0.5" | "L1" | "L2" | "L3"
6. 编译策略引用
公理→代码编译映射:
[CR: spec.md §1]层级定义:
[CR: axioms.md:AxiomHierarchyStructure]
引擎状态机与注意力层级(Engine State Machine & Attention Focus)
层级 :L1-L2(引擎运行时视角) | 职责 :注意力控制 + 运行时状态机 + 迭代循环执行
引用源 :
[CR: axioms.md:AxiomHierarchyStructure [AX]]|ScopeAnchor [AX]|FocusLayer [AX]公理追溯 :
[CR: axioms.md §三-§八]
§一、层级定义与策略(Layer Taxonomy & Strategy)
1.1 层级关注点与焦点策略
| 层级 | 引擎关注点 | 默认焦点阶段 | 典型策略/规范 |
|---|---|---|---|
| L0 | 项目结构、模块边界、通信模式、路径规范 | P_plan, P_complete | PathStrategy, CommunicationMode |
| L1 | 控制流、迭代循环、错误熔断、状态恢复 | P_exec_verify | OnError(loop), CompactProcedure, StateRecovery |
| L2 | 实现细节、代码质量、设计模式、内聚性 | P_exec_prep, P_exec_core | CodeStandard, CohesionCheck |
| L3 | 工具调用、文件操作、语言特性、参数格式 | --- | ReadStrategy, ToolSelect |
当前焦点层级 ≥ 规则声明的层级时,规则激活。焦点可通过
@focus(LX)标注覆盖。
1.2 优先级与作用域
- 层级优先级 (同规则不同实现):
L0 > L0.5 > L1 > L2 > L3。与规则冲突解决层级的耦合裁决:[CR: rules.md §1.3] - 作用域类型 :
global(全局)|loop_body(循环体)|procedure(流程步骤)|single_call(单次调用)
1.3 层级反模式
| 反模式 | 严重 | 表现 → 正确做法 |
|---|---|---|
| 逻辑层渗漏 | 高 | L1 熔断规则应用到 L2/L3 → 标注 layer 按 FocusLayer 公理过滤 |
| 语法层越权 | 中 | 工具调用失败触发架构决策 → 逐层传递,每层只做本层决策 |
| 作用域逃逸 | 高 | loop_body 规则在单次调用激活 → 标注 scope 按 ScopeGuard 公理过滤 |
1.4 焦点决策
FocusDecision(phase, context) [CM]:
P_plan → L0 | P_exec_prep → L2 | P_exec_core → L2 | P_exec_verify → L1 | P_complete → L0
LayerOverride(context, explicitMark) [CD]:
explicitMark ≠ null → use_explicit · otherwise → use_default
§二、迭代循环配置参数
参数归属 :公理参数(
%声明)以 axioms.md 为准;引擎专用参数仅定义于 §2.1;策略/规范参数见[CR: rules.md §5-§6]。
2.1 引擎专用参数
| 参数 | 默认值 | 说明 | 引用 |
|---|---|---|---|
PARTIAL_THRESHOLD |
float:0.8 0,1 |
partial判定阈值 | EvaluationOutcomeSet |
EXEC_TIMEOUT |
int:60 (s) |
单次执行超时 | StateSnapshot |
SUBROUND_MAX_ATTEMPTS |
int:3 |
子任务最大修复尝试 | RoundCompletion |
SUCCESS_CRITERIA |
config:{execution=success} |
成功判定标准 | EvaluationOutcomeSet |
VERIFICATION_CRITERIA |
config:{compilation=success} |
验证标准 | RoundCompletion |
COLLECT_PATTERNS |
str_seq:[success,total,errorMessage] |
输出提取模式 | Coupling-ObservationCollapse |
ONERROR_RETRY_LIMIT |
int:3 |
重试熔断阈值 | FirstCallTransient |
ONERROR_EMPTY_T_LIMIT |
int:3 |
空结果(T)熔断阈值 | RepeatedCallStable |
ONERROR_EMPTY_PARAMS_LIMIT |
int:2 |
空结果(T,params)熔断阈值 | RepeatedCallStable |
ONERROR_SWITCH_LIMIT |
int:3 |
策略切换 forcehalt 降级阈值 | TerminationPriority |
SWITCH_DECAY_N |
int:8 |
switchCounter 衰减间隔轮数 | CountableOrderBridge |
FORCEHALT_NOTIFY_N |
int:5 |
forceHalt 无新错误通知轮数 | InformationMonotonicity |
RECENT_CHAIN_COUNT |
int:3 |
压缩后加载的推理链条数 | CompactProcedure |
EMERGENCY_DUMP_MAX_CHARS |
int:500 |
紧急转储最大字符数 | CompactProcedure |
RoundTransition 公理 :权威定义见
[CR: axioms.md:RoundTransition [AX]],engine.md 不重复声明。
2.2 配置预设(Profiles)
Delta 原则:预设仅声明与默认值不同的字段。
| 预设 | MODE | 核心差异 | 关键参数覆盖 |
|---|---|---|---|
| SAFE(简单重试) | SAFE | 纯参数调整,无策略切换 | MAX_ITER=5, SWITCH_THRESHOLD=INF, PARTIAL_THRESHOLD=1.0, SUBROUND_MAX_ATTEMPTS=2 |
| DEVELOP(迭代调试) | DEVELOP | 诊断级输出提取 + 代码修复 | MAX_ITER=10, MAX_FAIL=5, SWITCH_THRESHOLD=3, PARTIAL_THRESHOLD=0.8, SUBROUND_MAX_ATTEMPTS=3 |
| CAMPAIGN(多轮模式) | CAMPAIGN | 多轮次规划与全局累计失败 | ROUNDS=2, GLOBAL_MAX_FAIL=ROUNDS×3, SWITCH_THRESHOLD=2, PARTIAL_THRESHOLD=0.8 |
ModeEntryConstraint CS
∀R∈Iteration: MODE(R)∈{SAFE,DEVELOP,CAMPAIGN}→R.config∈ConfigSpace(MODE(R))
§三、状态变量管理(StateManager)
所有规则通过 StateManager 读写状态,不直接操作状态变量。派生路径见
[CR: axioms.md §一-§八]。
3.1 状态变量表
| 变量名 | 类型 | 初始值 | 说明 | 读写权限 | 层级 |
|---|---|---|---|---|---|
operationLog |
Map<OpID,Status> |
{} |
操作状态记录 | StateValidity/OnError → ErrorHandler/执行体 | L1 |
fileCache |
Map<Path,{timestamp,hash,lastModifiedTime}> |
{} |
已读文件缓存 | StateValidity/SyncGuard → ReadStrategy/SyncGuard | L2 |
externalConsistency |
bool |
true |
外部一致性标志 | StateValidity → SyncGuard | L2 |
last |
OpID |
null |
上次操作标识 | IdempotencyGuard → 执行体 | L2 |
lastFileHash |
Hash |
null |
上次文件内容哈希 | IdempotencyGuard → 执行体 | L2 |
retryCounter |
int |
0 |
连续重试计数 | OnError → OnError/执行体 | L1 |
switchCounter |
int |
0 |
连续策略切换计数 | OnError → OnError | L1 |
forceHalt |
bool |
false |
熔断标志 | OnError → OnError | L1 |
toolCallHistory |
Map<ToolCallKey,{count,lastResult}> |
{} |
工具调用历史 | OnError → 执行体 | L1 |
emptyCount |
Map<ToolKey,Map<ParamHash,int>> |
{} |
空结果计数:第一维按工具名,第二维按参数哈希 | OnError → OnError | L1 |
callCount |
Map<CallKey,int> |
{} |
调用次数(CallKey = (ToolName, ParamHash)元组) | FirstCallTransient → 执行体 | L1 |
类型定义 :
ToolKey = ToolName(仅工具名),CallKey = (ToolName, ParamHash)(工具名+参数哈希元组),ParamHash为参数字符串的哈希摘要
3.2 状态一致性
遵循 StateSnapshot、StateMerge 公理。
@parallel 状态合并规则:
∀op₁,op₂∈ParallelOps: op₁.stateSnapshot ∩ op₂.stateSnapshot = ∅
合并顺序:按工具链中声明顺序,非完成顺序。
若并行步骤修改同一状态变量 → 标记 parallel_write_conflict → 本轮 result=parse_error
operationLog 并行保护:
// operationLog 的 InternalConsistency 查询(读)与 OnError 写入(写)可能并发交叉:
// 1. 首次 StateValidity 评估发生在并行步骤执行前,此时冻结 operationLog 快照
// 2. 并行步骤执行期间的 operationLog 写入追加到暂存区,不修改快照
// 3. 所有并行步骤完成后,将暂存区按声明顺序合并到 operationLog
∀op∈ParallelOps: op.writeToOperationLog → op.operationLogStaging,非 operationLog 本身
完成顺序不早于声明顺序: mergeStaging(operationLogStaging₁, operationLogStaging₂) 按声明顺序
3.3 初始化钩子
skipExternalConsistency 和 skipHistoricalIntegrity 是 StateManager 维护的内部标志位,按以下伪码规则自动管理:
// 触发规则(在 StateManager 状态变更后立即执行)
on fileCache_update(newCache):
if newCache = ∅:
set skipExternalConsistency = true, skipHistoricalIntegrity = true
on forceHalt_set:
set skipExternalConsistency = true
// 清除规则(在 StateValidity 评估完成后执行)
on StateValidity_completed(evaluation):
if first_evaluation_after_boot:
clear skipExternalConsistency, clear skipHistoricalIntegrity
mark first_evaluation_after_boot = false
// 竞态保护:StateValidity 评估开始时冻结标志位快照,
// 评估过程中对标志位的变更延迟到评估完成后才生效
- 触发条件 :
fileCache = ∅(首次启动/全量重置)或forceHalt = true(熔断恢复) - 清除时机:首次 StateValidity 评估的 completed 回调中
- 设计理由:首次恢复时一致性信息不可得,跳过 ExternalConsistency 和 HistoricalIntegrity 校验,仅评估 InternalConsistency。
- 空状态处理 :
fileCache = ∅且InternalConsistency=true时,StateValidity 整体返回 valid(仅首次有效)
§四、五步模型与公理实例化链
决策输出集权威定义:
[CR: axioms.md:DecisionOutputSet [AX]]|[CR: axioms.md:TerminationPriority [AX]]
4.1 决策输出 → 动作映射
决策输出枚举 {TS,TO,TM,switch_strategy,continue} 的权威定义见:
[CR: axioms.md:DecisionOutputSet [AX]][CR: axioms.md:TerminationPriority [AX]]
动作映射摘要:
| 输出 | 动作 |
|---|---|
| TS | 正常完成(通过验证) |
| TO | halt(超限终止) |
| TM | forcehalt(熔断终止) |
| switch_strategy | 切换策略(计数器更新见 §五) |
| continue | 进入 Adjust |
retry 和 skip_remaining 属于 OnError 输出(§七),不在循环层级决策输出集中。
4.2 公理实例化链
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
MetaGate (cross-layer) ← MetaEvolution[AX-META] + StratifiedReflectionSchema[AX-FRAME]
// MetaGate: Decide 输出 TM 且 CF≥META_THRESHOLD → 通过 ProofOracle 验证 Provable_{L2}
// 验证通过: enters(MetaRound),暂停主循环,在独立元层执行 MetaAdjust
// 验证失败: 主循环继续进入 Adjust
// MetaRound 独立于主循环计数器(IC/CF 冻结),完成后恢复主循环或降级
// 实现见 spec.md §4 MetaGatekeeper
↓ MetaRound 完成或跳过
Adjust ← SyncProtocolTriple[AX]
↓ round completion
Next Round ← RoundCompletion[AX] + RoundTransition[AX]
4.3 循环通用模型
① Execute → [ExecutionFailureGate] → ② Collect [CM] → ③ Evaluate [QA] → ④ Decide [CD] → ⑤ Adjust [SM]
VERIFICATION_CRITERIA 验证发生在⑤ Adjust 完成之后、标记 logged 之前。
① Execute
Execute(opSeq) → output | timeout = EXEC_TIMEOUT
ExecutionFailureGate CD
{execution=failure ∧ error=compilation_error} → 进入 §七 OnError(计数器规则统一管理retryCounter递增)
{execution=failure ∧ error=environment} → 直接 Decide 输出 TM
{execution=success} → 进入 Collect
{execution=failure ∧ error∉{compilation_error, environment}} → 进入 §七 OnError
invariant: ExecutionFailureGate 不操作计数器,所有 retryCounter 递增统一在 OnError 决策树的计数器规则中管理(见 §七 计数器规则)。compilation_error 进入 OnError 分支后,计数器规则在 error∈{execution_failure,compilation_error} 时 +1。compilation_error 不再走"直接 Decide 输出 TM"路径。
② Collect CM
Collect(output) → metrics | metrics = extract(output, COLLECT_PATTERNS)
parse_failure:
parse_error→ 标记 parse_failed + 记录 lastResult.metadata.parseError: {rawOutput, pattern} + 传递给 Evaluate 和 Adjust_Parser
③ Evaluate QA
Evaluate(metrics) → {T, ⊥, F}
④ Decide CD
Decide(eval_result, state, config) → {TS, TO, TM, switch_strategy, continue}
裁决顺序见 §4.1 决策输出表
⑤ Adjust SM
| 类型 | 示例 |
|---|---|
| 参数调整 | 增等待时间、调超时值 |
| 配置修改 | 修正路径、换参数值 |
| 代码修复 | 修复 bug、调整逻辑 |
| 策略切换 | 换工具/方法/参数组合 |
| Adjust_Parser | 修复输出提取规则 |
Adjust(decision) → changeLog.append(adjustment)
commit_invariant: SyncProtocolTriple.CommitPhase L0 invariant: ¬∃obs:commit(obs,obs); 实现要求:任何 CommitPhase 调用前 assert(obs₁ ≠ obs₂); 违反后果:本轮 Adjust 标记为 failed,不进入 logged 阶段
§五、状态更新规范
遵循 InformationMonotonicity AX(因果偏序下信息只增不减)。
5.1 初始化
| 场景 | 规则 |
|---|---|
| IC=0(首次) | iterationCount=0, consecutiveFailures=0, consecutivePartials=0, qualityDeclineCount=0, bestResult=null, lastResult=null, changeLog=[], history=[], subRoundAttempts=0 |
| IC>0(Continuation) | 继承上一轮结束状态,保留 history 和 changeLog |
5.2 计数器维护
| 计数器 | 所属 | 递增时机 | 重置时机 |
|---|---|---|---|
| retryCounter | L1 共享 | §七 OnError | 不重置(CF 语义) |
| emptyCount | L1 共享 | §七 OnError | 非空结果时 Evaluate |
| switchCounter | L1 共享 | §5.3 Decide 驱动 → §5.3 衰减机制 | |
| callCount | L1 共享 | 执行体 | 不重置 |
| iterationCount | 循环专用 | §5.3 | 不重置 |
| consecutiveFailures | 循环专用 | §5.3 Evaluate | 衰减:Evaluate路径 max(0,CF-1);Decide路径 max(0,floor(CF/2)) |
| consecutivePartials | 循环专用 | §5.3 Evaluate | pass/fail/parse_error 置0 |
| qualityDeclineCount | 循环专用 | §5.3 Evaluate | bestResult 更新时置0 |
| subRoundAttempts | 循环专用 | Adjust | pass 时置0 |
时序说明 :OnError 决策树(§七)在 Execute → Collect 间执行。此时 switchCounter 是上轮 Decide 执行后的值:
- 如果上轮 Decide 输出
switch_strategy,则值已 +1- 如果上轮 Decide 输出其他决策,则值保持上轮轮前值(可能已衰减,衰减逻辑见 §5.3 switchCounter 联动)
因此 OnError 判断
switchCounter ≥ ONERROR_SWITCH_LIMIT降级时,引用的是上轮已衰减/递增后的计数器值。
5.3 更新规则
SubRoundExhaustion CD(Evaluate 之前执行)
subRoundAttempts ≥ SUBROUND_MAX_ATTEMPTS → evaluateResult = fail
| lastResult.metadata.subRoundExhausted = true
| evaluateResult.skippedFromSubRound = true
| subRoundAttempts = 0
subRoundAttempts < SUBROUND_MAX_ATTEMPTS → 继续正常 Evaluate
skippedFromSubRound 标记在 Evaluate 之前重置
EvaluateDrivenUpdate SM
iterationCount++
lastResult = currentResult
history.push({iteration, result, metrics, adjustments})
bestResult = (bestResult = null ∨ currentResult.quality > bestResult.quality)
→ currentResult, qualityDeclineCount=0
: currentResult.quality < bestResult.quality
→ bestResult不变, qualityDeclineCount++
preEvaluateCF = consecutiveFailures
(evaluateResult) → {
pass: consecutiveFailures = max(0, preEvaluateCF - 1); CP=0; subRoundAttempts=0
partial: consecutiveFailures不变; CP += subRoundExhausted ? 0 : 1
fail/parse_error: consecutiveFailures = preEvaluateCF + 1; CP=0
}
skippedFromSubRound=true 时跳过 switch 分支,直接传递到 Decide
DecideDrivenUpdate CD
decide(switch_strategy) → {
switchCounter += 1
consecutiveFailures = max(0, floor(preEvaluateCF / 2))
emptyCount(T, params) = 0
}
decide(continue | TM | TO | TS) → 不操作计数器
rationale: Decide 输出 switch_strategy 时,CF 应从 preEvaluateCF 计算衰减,消除 Evaluate 驱动的 CF 增减与 Decide 覆盖之间的顺序依赖
§六、循环模式(Loop Patterns)
6.1 模式定义
M = (Axioms: 公理集合, StrategyRules: 策略配置, Params: 参数特化)
6.2 模式速查表
| 模式 | 核心差异 | 配置预设 |
|---|---|---|
| 简单重试 (§6.3.1) | 纯参数调整,无策略切换 | SAFE |
| 迭代调试 (§6.3.2) | 诊断级输出提取 + 代码修复 | DEVELOP |
| 批量轮询 (§6.3.3) | 并行执行隔离状态 | 自定义 |
| 多层嵌套 (§6.3.4) | 独立状态快照嵌套循环 | 自定义 |
| 多轮完整迭代 (§6.3.5) | 多轮次规划与全局累计失败 | CAMPAIGN |
6.3 模式定义
6.3.1 简单重试
Axioms: TerminationPriority + ExecutionStateTaxonomy + InitialState + ResultStructureStrategyRules: OnError 输出空间{retry, continue, TS, TO};Adjust 固定为parameter_adjustParams: SAFE 预设
6.3.2 迭代调试
Axioms: EvaluationOutcomeSet + ExecutionStateTaxonomy + FailureSubtyping + InitialStateStrategyRules: Collect 诊断级提取;Adjust 含 code_fix/strategy_switch;OnError 开放全空间Params: DEVELOP 预设
6.3.3 批量轮询
Axioms: StateSnapshot + StateMerge + ExecutionStateTaxonomyStrategyRules: ToolStrategy 选择 batch_processing;@parallelfor each itemParams: TIMEOUT 按 item 计
6.3.4 多层嵌套
Axioms: StateSnapshot + RoundIndependence + InitialStateStrategyRules: 内层循环使用独立 StateManager 副本;终止后通过 StateMerge 写入外层Params: 内层使用独立阈值配置
6.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下激活(无论焦点层级)。非 loop_body 作用域使用[CR: rules.md §5.1 OnError]。层级 :L1 | 共享分支:
[CR: rules.md:OnError.shared-branch [CM]]差异:循环版增加熔断逻辑(retryCounter/emptyCount/switchCounter/forceHalt),compilation_error 处理见 §四 ExecutionFailureGate
OnError(error, stepIndex, toolchain) CD
Provides: 错误处理决策(retry/switch_strategy/halt/continue/skip_remaining/forcehalt)
决策树:
① forceHalt=true? → forcehalt | false → ①.5
①.5 result=∅ ∧ callCount(T, params)=0 → retry | 否则 → ①.6
①.6 result=parse_failure? → Adjust_Parser(修复提取规则)| 否则 → ②
② 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 ∈ {execution_failure, compilation_error}时retryCounter += 1(① false 之后、② 之前)forceHalt=true时跳过所有计数器递增compilation_error不再由 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)
§八、反模式
循环执行特有反模式。通用反模式:
[CR: rules.md §七]
| 反模式 | 严重 | 正确做法 |
|---|---|---|
| 无终止条件循环 | 高 | 始终设置 MAX_ITER 和 MAX_FAIL |
| 修复不记录 | 中 | 维护 changeLog |
| 不收集原始输出 | 中 | 同时保留原始输出和解析指标 |
| 过度策略切换 | 高 | 依赖 switchCounter 衰减和 ≥3→forcehalt 降级 |
| 嵌套状态污染 | 高 | 内层循环使用独立状态快照 |
| 忽略空结果合法 | 中 | 遵循 FirstCallTransient / RepeatedCallStable 公理 |
| 并行状态竞争 | 高 | 遵循 StateSnapshot + StateMerge |
| 恢复校验跳过 | 中 | 按 StateValidity 三定律校验后恢复 |
领域规则与策略(Domain Rules & Strategies)
层级 :L2-L3 | 职责 :领域公理实例化 + 策略/规范/流程/反模式
源公理 :
[CR: axioms.md §一-§八]
§一、公式类型体系
1.1 规则分类层级
| 类型 | 性质 | 可变性 |
|---|---|---|
| 领域公理 (L2) | 领域不变式 | 可版本化 |
| 策略 (L2-L3) | 操作决策 | 可变 |
| 规范 (L2) | 约束条件 | 可变 |
| 反模式 (L2-L3) | 负面模式 | 可变 |
| 流程 (L3) | 步骤序列 | 可变 |
层级结构权威定义:
[CR: axioms.md:AxiomHierarchyStructure [AX]]
1.2 公式类型定义
| 标识 | 名称 | 语义 | 输出类型 | 真值域约束公理 |
|---|---|---|---|---|
[AX] |
领域公理声明 | 声明工程领域内逻辑上必然的命题 | 逻辑命题 | LogicalLayerSeparation |
[TD] |
阈值决策 | 基于阈值比较输出决策 | 枚举值 | TerminationPriority |
[CM] |
分类映射 | 输入→类别的映射 | 类别标签 | TruthValueDomainLogic |
[CD] |
条件决策 | 基于条件分支输出决策 | 枚举值 | TruthValueDomainLogic |
[SM] |
序列映射 | 输入→有序步骤的映射 | 步骤列表 | Discrete-AtomicStep |
[QA] |
质量评估 | 基于标准输出质量等级 | pass/warn/fail | EvaluationOutcomeSet |
[CC] |
成本计算 | 基于参数输出量化成本 | 数值 | QuantificationConstraint |
[CS] |
约束声明 | 声明外部约束 / 不变式 | 约束命题 | QuantificationConstraint |
[SS] |
状态规范 | 定义状态空间的结构 / 类型签名 | 类型规范 | QuantificationConstraint |
[DR] |
设计理由 | 记录设计决策的原理依据 | 原理说明 | 无(元数据) |
[CR] |
交叉引用 | 结构化引用外部规则定义 | 引用映射 | 无(元数据,语法见 dsl.md) |
1.3 规则冲突解决(ConflictResolution)
同层规则冲突时按以下优先级裁决:
- 参数来源优先级(由 ConfigInjection §二 定义)
- 规则特异性(更具体的规则优先于通用规则)
- 时间顺序(后定义的规则覆盖先定义的规则)
跨层优先级:基底公理(L0) > 元推理规则(L0.5) > 社会共识(L1) > 领域公理(L2) > 规范(L2) > 策略(L2-L3) > 流程(L3) > 反模式(L2-L3)
派生路径:[CR: axioms.md §一-§八]
§二、配置注入(ConfigInjection)
2.1 参数来源优先级
运行时参数 > 项目配置(→ project.md) > 环境变量(→ env:VAR) > 默认值(→ default:val)
2.2 参数缺失处理
| 场景 | 处理 |
|---|---|
| 必需参数缺失 | 规则降级(跳过依赖该参数的决策分支,记入 operationLog) |
| 可选参数缺失或类型不匹配 | 使用默认值 |
2.3 L3 参数修改权限
遵循 AxiomHierarchyStructure L3 invariants(运行时可变,权限分级):
config:部署注入(配置文件/环境变量/ConfigMap),无需额外验证admin:运行时修改,需 Admin JWT + 熔断校验
§三、认知状态评估(StateValidity)
StateValidity(cognitiveState, worldState) QA
Provides: 状态有效性评估结果(valid/invalid/degraded)
公式:
InternalConsistency ∧ ExternalConsistency ∧ HistoricalIntegrity → valid
¬InternalConsistency → invalid
InternalConsistency ∧ (ExternalConsistency ⊕ HistoricalIntegrity) → degraded
otherwise → invalid
三定律的真值来源:
| 定律 | 公式 | 来源变量 |
|---|---|---|
| InternalConsistency | ¬∃partialOperation → true |
operationLog(因果锥内查询) |
| ExternalConsistency | ∀f∈fileCache: f.timestamp ≥ f.lastModifiedTime → true |
fileCache(SyncGuard.sync_check 物理校验) |
| HistoricalIntegrity | ∀phase∈completed: phase.reasoningLog ≠ ∅ → true |
reasoningLog(CompactProcedure.persist_reasoning 记录) |
详细派生路径:
[CR: axioms.md §一-§八]| 前置条件:调用前应先通过 SyncGuard.sync_check 刷新 fileCache(非空时);sync_check 不可用时标注 ExternalConsistency 可信度。
空状态处理 :首次启动/全量重置时 fileCache=∅,或 forceHalt=true(熔断恢复)时,跳过 ExternalConsistency 和 HistoricalIntegrity,仅评估 InternalConsistency。详细初始化钩子逻辑(skipExternalConsistency/skipHistoricalIntegrity 标志位自动管理)见 [CR: engine.md §3.3]。
引擎状态机与迭代循环 (五步模型与公理实例化链)属于引擎运行时视角,权威定义见
[CR: engine.md §四],不在本规则文件范围内。
§五、策略(Strategies)
策略只做决策判断,不含步骤序列。所有策略输出服从 TruthValueDomainLogic AX 三值语义。
5.1 工具策略
OnError.shared-branch CM Provides: 通用错误分类
error∈{partial_output, warning} → continue
error∈{irrecoverable} → halt
error∈{resource_exhausted} → report + halt
被 OnError(通用版)和 engine.md §七 OnError(循环版)共同引用。
OnError(error) CD
Provides: 通用错误处理决策(continue/report/halt)
---meta
layer = "L2-L3" | scope = "single_call, global" | ref = "rules.md:OnError.shared-branch"
通用错误分类策略,仅做分类,不含循环计数器或熔断逻辑。与循环版差异:
| 差异分支 | 本策略(通用版) | engine.md §七(循环版) |
|---|---|---|
compilation_error |
continue(进入 OnError 重试链,至 ONERROR_RETRY_LIMIT 后 TM) | 进入 ExecutionFailureGate → OnError(compilation_error),由计数器规则统一管理 retryCounter,至 ONERROR_RETRY_LIMIT 后 TM |
execution_failure, timeout |
report + retry_optional | halt+persist(stepIndex<len(toolchain)时) |
| 计数器/熔断 | 不维护 | 维护 retryCounter/emptyCount/switchCounter/forceHalt |
决策策略组(统一表格)
| 策略 | 公式 |
|---|---|
| DeprecateStrategy(D, hasReference) CD | D ∧ hasReference → cannot_delete · D ∧ ¬hasReference → can_delete · ¬D → no_action |
| AmbiguityStrategy(semantics, phase) CD | `semantics.same(sem₀) ↔ |
//! same判定:语义距离由语义向量(embedding)差分度量;ε_sem默认0.15(可配置) |
|
//! transition触发:语义距离≥ε_sem且phase∈{P_exec_prep,P_exec_core} |
|
//! migration_done触发:语义距离≥ε_sem且phase=P_exec_verify∧对应模块已验证 |
|
| ReferenceStrategy(depA→B, depB→A) CD | depA→B ∧ depB→A → true · otherwise → false |
| RefactorStrategy(error) CD | error ∈ RefactorScope → refactor_first · otherwise → normal_priority(RefactorScope={模块迁移,接口变更,架构级改动}) |
| ConflictStrategy(hasReference, isFirstTime, deprecationConfig) CD | ¬hasReference → delete · hasReference ∧ isFirstTime → config.firstTimeAction · hasReference ∧ ¬isFirstTime → config.retryAction |
ToolStrategy CM Provides: 工具选择决策
ToolPriority(toolType):available(external) → external·¬available(external) ∧ available(builtin) → builtin·otherwise → cliToolSelect(taskType):∈{file_io} → direct_file_ops·∈{analysis,processing} → sandbox_processing·∈{reasoning,decomposition} → structured_reasoning·∈{batch,multi_query} → batch_processing·otherwise → builtinToolchain(scene):scene → ToolchainMap[scene],@parallel标注可并发。未定义时回退到 ToolSelect。
KnowledgeDedup(entity, kb) CD
hash(entity.name + entity.content) ∈ kb.hashes → skip · otherwise → record + kb.hashes.add(hash)
---meta
dr = "kb.hashes 未初始化时先查询,存在则追加,不存在则记录"
PathStrategy(execEnv, projectConfig) CM
execEnv → projectConfig.path.format[execEnv] · execEnv∈{direct_api, cli, sandbox}
通用路径原则 :① 绝对路径 ② 禁止 cd ③ 兜底:解析失败时尝试 projectConfig.path.root ④ 沙箱转义:\\ 或 /
---meta
scope = "global"
Background(taskType) CM
taskType∈{dev_server,watcher,daemon}→true · otherwise→false
MergeServerRequest(hasServer, hasRequest) CD
hasServer∧hasRequest→merge_in_one_call · otherwise→separate
CohesionLowStrategy(methods, context) CD
methods > GOD_CLASS_THRESHOLD(40) → suggest_refactor + request_confirmation
methods ≤ GOD_CLASS_THRESHOLD(40) → record_as_intent + keep_structure
---meta
dr = "隐式聚合:context 显示功能分散但无统一入口时,即使未超阈值也输出 suggest_convergence;无法区分时默认按聚合类处理"
5.2 上下文策略
CB(actionType) CM
file_read→partial_read · code_execution→summary_only · batch_operation→batch_with_queries · doc_web→index_no_content
BudgetAlloc(phase) CC
P_plan→较多预算用于信息收集 · P_exec_prep→中等预算用于结构分析 · P_exec_core→最大预算用于编码实现 · P_exec_verify→少量预算用于验证 · P_complete→不分配
PD(phase) CM
P_plan→(规划,{需求分析,方案设计,信息收集}) · P_exec_prep→(执行-准备,{文件读取,代码理解,结构分析}) · P_exec_core→(执行-核心,{编码,修改,重构,配置变更}) · P_exec_verify→(执行-验证,{构建,测试,审查,验证}) · P_complete→(完成,{attempt_completion})
StateRecovery(stateValidity) SM
invalid → full_reset · degraded → targeted_recovery · valid → no_action
- full_reset:① 清空 operationLog、fileCache → ② 清空推理链持久化文件并写入
# FULL_RESET at {timestamp}→ ③ 重建 fileCache → ④ 向用户报告请求确认 → ⑤ 确认后继续 - 恢复后首次 StateValidity 自动跳过 ExternalConsistency 和 HistoricalIntegrity
- targeted_recovery:识别 degraded 维度 → 仅恢复对应维度 → 报告
- 任何压缩前必须先执行 StateValidity,invalid 不压缩先恢复
CompactDecision(phaseChanged, moduleDone, ctx_critical, stateValidity) CD
ctx_critical → emergency_dump · phaseChanged → phase_compact · moduleDone ∧ ¬phaseChanged → module_compact · otherwise → no_action
---meta
priority = "ctx_critical > phaseChanged" | invariant = "ctx_critical 由系统信号触发(上下文水位 >85%、文件重读需求、输出截断检测),不依赖 AI 内省"
5.3 读取策略
ReadStrategy(S, filePath, projectConfig) CD
S < SMALL → direct · SMALL ≤ S ≤ LARGE → process · S > LARGE → process_segmented
阈值:[CR: project.md §1.1]
- 读取完成后更新 fileCache
- degraded(InternalConsistency=true ∧ ExternalConsistency=false)时优先 direct/process 模式并强制重读;invalid 时先执行 StateRecovery
IdempotencyCheck(current, last, currentFileHash, lastFileHash) QA
current = null → null_input · current ≠ null ∧ last = null → proceed · current ≠ null ∧ last ≠ null ∧ current = last ∧ currentFileHash = lastFileHash → skip · otherwise → proceed
- 两维检查:操作标识 + 文件哈希都相同才 Skip
- 执行后通过 StateManager 更新
last = current和lastFileHash = currentFileHash
InfoDomain(task, readStrategy, projectConfig) CM
single_file → (scope=single, type=code, complexity=readStrategy档位) · single_module → (scope=module, type=mixed, complexity=moderate) · cross_module → (scope=multiple, type=mixed, complexity=complex) · full_project → (scope=all, type=mixed, complexity=complex)
档位映射:direct→simple, process→moderate, process_segmented→complex
CalculateCost(N, T_i, R_perOp, R_batch) CC
Cost_sequential(N)=ΣT_i + N×R_perOp · Cost_batch(N)≈max(T_1,...,T_N)+R_batch · 推论:N>1∧T_i分布均匀→Cost_batch<Cost_sequential
§六、规范(Standards)
规范定义约束条件,可引用领域公理、策略。
6.1 错误处理规范
| 规范 | 公式 |
|---|---|
| FailMode(errorType) CM | unrecoverable,precondition_violation→FailFast · user_input,optional_feature→FailSafe · non_core,third_party_timeout→FailGraceful |
| ThrowRule(violationType, language, projectConfig) CM | violationType → projectConfig.exceptions[violationType] |
| FixPriority(errorType, projectConfig) CM | errorType → projectConfig.fixPriority[errorType] |
CodeStandard(code) QA
¬emptyCatch ∧ ¬consoleLog ∧ ¬magicNumber ∧ ¬unusedImport ∧ ¬hardcodedPath ∧ ¬todoFIXME → pass · otherwise → block
---meta
dr = "project.md 可用 AllowedCodeViolations 覆盖" | warn = "预留抽象、注释替代命名、冗余注释/配置"
6.2 架构规范
| 规范 | 公式 |
|---|---|
| SCA(condition) CD | condition∈{external_dependency,dataflow_boundary,capability_exit,change_hotspot}→true · otherwise→false |
| VB(boundary) CD | single_responsibility∧complete_coverage→valid · ¬single_responsibility→invalid:multiple_responsibilities · single_responsibility∧¬complete_coverage→invalid:incomplete_coverage |
| CommunicationMode(syncMode, processBoundary, crossSystem) CM | sync∧same_process∧¬crossSystem→method_call · sync∧¬same_process∧¬crossSystem→remote_call · async∧same_process∧¬crossSystem→event_delegate · async∧¬same_process∧¬crossSystem→message_queue · crossSystem→data_object |
| CohesionCheck(scope) CM | methods≤30 ∧ lines≤1000 → {rating:"High", method_count:methods, lines} · methods>30 ∨ lines>1000 → {rating:"Low", method_count:methods, lines}。Low 时由 CohesionLowStrategy 评估 |
6.3 输出规范
| 规范 | 公式 |
|---|---|
| ShouldWrite(isRedundant, simpler, costExceedsValue) CD | isRedundant→false · simpler_exists→false · costExceedsValue→false · otherwise→true |
| OA(state, scope, recoverable) CD | modify∧local→replace · modify∧global→rewrite · deprecate∧recoverable→deprecate · deprecate∧¬recoverable→delete |
§七、反模式索引
| 反模式 | 对应规则 | 严重 | 自动修复 |
|---|---|---|---|
| 编译错误遗留 | FixPriority | 高 | 否 |
| 代码质量违规 | CodeStandard | 中 | 部分 |
| 异常处理不当 | FailMode + ThrowRule | 中 | 否 |
| 内聚性违规 | CohesionCheck | 低 | 否 |
| 循环聚合 | ReferenceStrategy | 高 | 否 |
| 过度设计 | CohesionCheck | 低 | 否 |
| 盲目读取 | InfoDomain | 中 | 否 |
| 逐点读取 | CalculateCost | 低 | 否 |
| 过度读取 | ReadStrategy | 中 | 否 |
| 深度不匹配 | ReadStrategy | 中 | 否 |
| 认知分裂 | InternalConsistency | 高 | 是(StateRecovery) |
| 缓存幻觉 | ExternalConsistency | 高 | 是(SyncGuard) |
| 推理失忆 | HistoricalIntegrity | 高 | 是(CompactProcedure) |
| 阶段粘连 | PD | 低 | 否 |
| 模块膨胀 | CohesionCheck | 低 | 否 |
| 压缩决策不当 | CompactDecision | 高 | 否 |
| 空结果死循环 | engine.md §七 OnError | 高 | 是(OnError 熔断) |
| 空结果钻牛角尖 | engine.md §七 OnError | 中 | 是(OnError 熔断) |
| 反复修改 | IdempotencyCheck | 中 | 是(IdempotencyGuard) |
循环执行特有反模式:
[CR: engine.md §八]
§八、操作流程(Procedures)
所有流程服从 Discrete-AtomicStep AX 的原子跃迁约束。
SyncGuard SM
- TOOL: sync_check(paths) :对 fileCache 所有条目执行物理校验
---meta
step1 = "{status: synced} → step2; {status: stale, stalePaths} → 刷新时间戳和哈希,设置 externalConsistency=false → step2; {status: error, message} → ErrorHandler"
step2 = "stale → externalConsistency=false,触发 StateValidity 重评估"
default = "默认工具链执行前触发,@skip_sync_guard 跳过"
IdempotencyGuard SM
- IdempotencyCheck :调用 IdempotencyCheck 检查
---meta
step1 = "skip → 跳过执行; proceed → 执行体; null_input → 跳过(调用方决定是否初始化)"
step2 = "执行体完成后更新 last 和 lastFileHash"
skip = "@skip_idempotency_guard 跳过,与 SyncGuard 独立"
ErrorHandler SM
根据 OnError 输出决策执行对应动作:
forcehalt → 停止工具链 → forceHalt=true → 报告用户 → 强制挂起
halt → 停止工具链
halt+persist → 停止工具链 → persist_reasoning(error_summary)
continue → 记录错误摘要到 operationLog → 继续
skip_remaining → 跳过剩余步骤 → persist_reasoning(error_summary)
retry → 验证参数和系统状态是否已变化 → 重试当前步骤
switch_strategy → [回滚脏代码 → 换参/换工具/报告用户]
ReasoningPersistence SM
persist_reasoning 三种调用场景:
| 调用方 | 触发条件 | 写入内容 |
|---|---|---|
| CompactProcedure | 阶段/模块边界 | 当前阶段完整推理链 |
| ErrorHandler | 异常终止 | 错误摘要 |
| PostProcess | 工具链执行完毕 | 不调用(仅记录事实到知识图谱) |
PostProcess SM
- 推理 (
reasoning):分析执行结果 - 记录知识 (
record_knowledge):持久化关键发现(执行前引用 KnowledgeDedup 去重)
FileDeprecationFlow SM
参数 :deprecatedDir(默认 _deprecated/)、excludeMethod(compile_exclude/runtime_ignore/module_exclude)、excludeConfig、cleanTrigger
步骤 :check_references → move_to_deprecated → apply_exclusion → verify_isolation → register_cleanup
CompactProcedure(compactType) SM
阶段动作映射:
| 阶段变更 | 动作 |
|---|---|
P_plan→P_exec_prep |
record_plan_to_graph |
P_exec_prep→P_exec_core |
index_structure_to_kb |
P_exec_core→P_exec_verify |
note_changes + persist_reasoning |
P_exec_verify→P_complete |
update_progress |
phase_compact → [执行阶段动作 → mark_phase_done → clear_context → 新会话从进度标记恢复,加载推理链末 RECENT_CHAIN_COUNT(3) 条]
module_compact → [record_module_summary + persist_reasoning → record_notes → update_progress_marker → clear_context]
emergency_dump → [输出纯文本状态摘要(≤EMERGENCY_DUMP_MAX_CHARS(500)字符)→ clear_context → 强制 Halt,等待用户输入]
---meta
emergency_dump_skip = "跳过阶段动作和 persist_reasoning" | trigger = "ctx_critical 信号应在当前步骤执行前检测,检测到后立即触发"
派生推论(Derived Theorems)
层级 :跨层 | 职责:从 axioms.md 公理派生的逻辑推论集合
每条推论包含完整逻辑公式、源公理引用链(src)、以及证明概要(pf)。
权威公理源均位于
[CR: axioms.md]。
TH-1: 轮次进入条件
∀R∈Iteration: R.enters↔preconditions.valid∧config∈ConfigSpace∧start∈StartSpace∧(isFresh(R)→subRoundAttempts=0)
| 字段 | 引用 |
|---|---|
| 公式 | R.enters↔preconditions.valid∧config∈ConfigSpace(R.mode)∧start∈StartSpace∧(isFresh(R)→subRoundAttempts=0) |
| src | {EntryCondition [AX], InitialState [AX], SubRoundInitialState [AX]} |
| pf | EntryCondition 给出前两项(preconditions.valid ∧ config∈ConfigSpace),InitialState 限定 start∈StartSpace,SubRoundInitialState 附加 isFresh(R)→subRoundAttempts=0(全新轮次强制零,重入轮次可继承前值);合取即为轮次完整进入条件 |
TH-2: 跨域同步必要性
∀op₁,op₂:op₁.domain≠op₂.domain→needsSync(op₁,op₂)↔¬(op₁∥op₂)
| 字段 | 引用 |
|---|---|
| 公式 | op.crosses(domain) ↔ op.domain ≠ current_domain;needsSync(op₁,op₂) ↔ ¬(op₁∥op₂) ∧ op₁.domain≠op₂.domain |
| src | {IDI-Interaction [AX], Coupling-ObservationCollapse [AX], SyncProtocolTriple.CommitPhase [AX]} |
| pf | IDI-Interaction 保证交互跨实体必然产生可观测影响 → 不同域的观察者间操作若非并发则需同步;Coupling-ObservationCollapse 提供观测锁定后的值冻结;SyncProtocolTriple.CommitPhase 提供逻辑原子性保证 |
TH-3: 决策目标派生
∀R∈Rounds:R.decision∈LoopDecisions→∃g∈R.goals:g→R.decision
| 字段 | 引用 |
|---|---|
| 公式 | ∀R∈Rounds:R.decision∈LoopDecisions→∃g∈R.goals:g→R.decision |
| src | {IDI-Interaction [AX], IDI-Difference [AX], Discrete-Countability [AX]} |
| pf | IDI-Interaction 保证交互产生历史 → 历史累积目标集合;IDI-Difference 提供区分触发 → 偏差驱动决策;Discrete-Countability 提供计数基础 → 每个决策可追溯至至少一个目标 |
TH-4: 工具调用确定性
∀T,params,state,τ₁,τ₂:T(params,state)@τ₁=T(params,state)@τ₂
| 字段 | 引用 |
|---|---|
| 公式 | T(params,state)@τ₁ = T(params,state)@τ₂(相同快照 + 相同参数 ⇒ 相同结果) |
| src | {Coupling-ObservationCollapse [AX], Discrete-AtomicStep [AX], SyncProtocolTriple.CommitPhase [AX]} |
| pf | 观测锁定(Coupling-ObservationCollapse)→ 自由可变性冻结 → 确定性;原子跃迁(Discrete-AtomicStep)确保无中间态干扰;CommitPhase 阻断回归(SyncProtocolTriple)确保相同快照 + 相同参数 ⇒ 相同结果 |
TH-5: 采样-嵌入统计保底
∀c∈ContinuousState,∀d∈DiscreteState:
E[‖sample(embed(d)) - d‖] ≤ ε
dist(c, embed(d)) < δ_c → P[embed(sample(c)) = embed(d)] ≥ 1 - γ
//! dist: Continuous×Continuous→ℝ(Continuum-Metric 距离函数)
//! embed: DiscreteState→Continuous<T>(拓扑连续嵌入,非逻辑函子)
//! ε:由 Continuum-SamplingThreshold 的动态阈值 δ(t) 确定
//! δ_c:连续域收敛窗口 | γ:采样误差概率
| 字段 | 引用 |
|---|---|
| 公式 | E[‖sample(embed(d)) - d‖] ≤ ε(统计保底:期望误差有界);dist(c, embed(d)) < δ_c → P[embed(sample(c)) = embed(d)] ≥ 1 - γ --- 连续域距离充分接近离散嵌入点时,高概率保持嵌入一致性 |
| src | {Coupling-Embedding(TopologicalContinuityEmbedding) [BAX-X], Continuum-SamplingThreshold [BAX-C]} |
| pf | 原始 Galois Connection 严格等式 sample(embed(d))=d 在 LLM 系统中不成立(Argmax 信息丢失)。本公理将其降级为统计目标(参见 BAX-X 注释):embed 将离散 Token 映射为高维浮点向量,sample 通过概率分布 Argmax 采样回离散 Token;E[‖sample(embed(d))-d‖] ≤ ε 保证期望误差有界,dist(c, embed(d)) < δ_c → P[embed(sample(c))=embed(d)] ≥ 1-γ 为连续域接近时的统计一致性约束。实际代码生成应使用统计断言而非数学等式 |
TH-6: 决策度量
μ(s,goal) = ‖s - goal‖ / M
μ < ε → DiscreteGoal.pass
| 字段 | 引用 |
|---|---|
| 公式 | μ(s,goal) = ‖s - goal‖ / M;μ < ε → DiscreteGoal.pass |
| src | {Continuum-Superposition [AX], Continuum-SamplingThreshold [AX]} |
| pf | Continuum-Superposition 保证状态空间为有界凸集(‖s‖ ≤ M),距离度量 ‖s - goal‖ 有定义;ConvergeUpdate 提供自适应 ε = δ(t)/2;连续域距离映射到离散域目标判定------当 μ < ε 时离散域目标通过 |