主动节点与关闭节点逻辑详解 | AI生成和翻译

Home 2026.05

这是完整的图解:

ACTIVE与DROP的工作原理

两个关键枚举类型(models.py:12-54

class NodeStatus(str, Enum):
    ACTIVE = "ACTIVE"           # 存活的,可继续扩展
    PRUNED_BY_RULE = "PRUNED_BY_RULE"  # 因硬性物理规则被剔除
    PRUNED_BY_SLM = "PRUNED_BY_SLM"   # 因软评分被剔除(预留)

class NodeResultState(str, Enum):
    PASS = "PASS"    # 本轮存活
    DROP = "DROP"    # 死亡 —— 不再扩展

仅当同时满足以下两个条件时节点才会被标记为DROP

self.node.status = NodeStatus.PRUNED_BY_RULE
self.node.result_state = NodeResultState.DROP
self.node.fsm_state = FSMState.FINALIZED   # 不再进行状态转移

DROP的触发时机

1. 在calculate阶段builder.py:295-310)—— skills.py中的tot_hard_rule_check返回physical_violations

if not hard_rule_result["passed"]:
    if physical_violations:
         status = PRUNED_BY_RULE, result_state = DROP

2. 在evaluate阶段builder.py:396-416)—— 评估结果本身包含hard_rule_violations

if breakdown.hard_rule_violations:
     status = PRUNED_BY_RULE, result_state = DROP

不会导致DROP的情况


一句话总结: 只有硬性物理规则违规(由skills.py检测)才会将节点转为DROP状态。软评分仅影响扩展优先级,节点仍保持ACTIVE状态。


Back Donate