《HY-Ego 认知架构白皮书》(续)


5. 因果系统——双层因果结构(Causal Dual-Layer System)

因果系统是 HY-Ego 认知架构中最核心的可解释性引擎,负责将自我的一切行为转化为可追溯、可归纳、可验证的结构化知识。它与世界树完全并行、独立管理,通过快照机制实现松耦合,从而彻底避免了“事实与因果混杂”的黑箱问题。

因果系统的设计直接支撑了项目的三大里程碑(动作动态稳定输出、因果信息稳定产出、学习流程基本通畅),是实现“失败驱动闭环自优化”的关键基础设施。

5.1 因果系统的设计目标

因果系统的根本目标是回答三个问题:

  • 发生了什么?(可追溯)
  • 为什么发生?(可归纳)
  • 下次能否复用?(可验证)

为此,HY-Ego 采用双层因果结构

  • 实例因果层(Instance Causal Layer):记录单次具体事件,保证 100% 可追溯。
  • 抽象因果层(Abstract Causal Layer):对多次实例进行模板化归纳,生成可复用的因果模板,供任务筹办、方法召回和学习验证使用。

核心设计约束(根约束 0100–0500 不可违反):

  • 所有因果记录必须严格遵循“条件 + 动作 = 结果”的标准口径。
  • 实例因果必须立即与世界树主信息存储快照绑定。
  • 抽象因果的归纳过程必须可审计、可回滚。
  • 任何学习写回不得修改根约束层因果(如安全生死边界)。
5.2 实例因果层(Instance Causal)

定义:一次完整执行周期中“当前条件 + 执行动作 = 实际结果”的原子记录

  • 组成要素(全部结构体化存储):
    • 条件:动作触发前世界树快照(场景主信息 + 二次特征)。
    • 动作:动作动态实体(来自 动态类.ixx)。
    • 结果:动作执行完成后世界树更新后的主信息快照 + 二次特征变化量。
    • 元数据:时间戳、执行线程 ID、可靠度初值(默认 1.0)、场景安全度变化。

记录方式

  • 动作线程在执行 动态类::Execute() 后,立即调用 因果信息类.ixx::AddInstanceCausal()
  • 实例因果优先落盘到主信息存储主信息定义模块.ixx),避免临时节点泄漏。
  • 与动作动态的实时关联:动态类.ixx 持有 CausalInstanceID,实现双向追溯。

伪代码示例动态类.ixx因果信息类.ixx 协作):

// 动态类.ixx
void Dynamic::Execute() {
    auto preSnapshot = WorldTree::GetMainInfoSnapshot();
    PerformAction();                    // 执行具体动作
    auto postSnapshot = WorldTree::GetMainInfoSnapshot();
    
    CausalInstance inst(preSnapshot, this, postSnapshot);
    CausalInfo::AddInstanceCausal(std::move(inst));
}
5.3 抽象因果层(Abstract Causal)

定义:对多条同类实例因果进行统计归纳后形成的模板(可复用因果模式)。

  • 生成机制

    • 周期性触发(由 学习类.ixx 调度)。
    • 使用 概念_因果树类.ixx 进行聚类与模板提取。
    • 归纳算法:相同“条件模板 + 动作模板”→ 合并结果区间 + 计算置信度(可靠度 × 复现次数 × 边界覆盖率)。
  • 置信度机制(核心可验证指标):
    [
    \text{Confidence} = \frac{\text{可靠度} \times \text{复现次数} \times (1 - \text{边界失败率})}{\text{模板复杂度}}
    ]
    置信度 < 0.6 的模板会被标记为“待验证”,不会参与方法召回。

  • 在系统中的作用

    • 任务筹办:逆向匹配抽象因果,补全缺失条件。
    • 方法召回:四域方法树匹配器(四域方法树匹配器_v0.ixx)优先使用高置信抽象因果。
    • 学习验证:定向学习任务直接引用抽象因果作为“证明”或“边界”结果。
5.4 因果树独立管理

因果系统由以下两个核心模块独立管理(与世界树零强引用):

  • 因果信息类.ixx:总入口

    • 管理实例因果链表(双向链表模板)。
    • 提供 AddInstanceCausal()GetInstanceByID()TriggerAbstractInduction() 等接口。
    • 内部持有轻量级因果实例缓冲池,支持快速写入与周期性归纳。
  • 概念_因果树类.ixx:抽象层专用概念树

    • 以“因果模板根”为基础,向下生长条件模板树、动作模板树、结果模板树。
    • 支持与 概念引擎类.ixx 协作,实现跨域概念匹配。

内存策略:实例因果采用写时复制 + 定期压缩,抽象因果采用只增不删(仅标记废弃),确保历史可追溯。

5.5 因果与世界树的交互协议
  • 读写分离
    • 世界树 → 因果:仅提供 GetMainInfoSnapshot()(只读)。
    • 因果 → 世界树:仅通过 WriteMainInfo() 落结果(写后立即触发世界树安全度更新)。
  • 快照机制:每次交互使用 std::shared_ptr<const MainInfo> 实现零拷贝安全快照。
  • 冲突处理:若因果结果与世界树当前状态冲突,触发 任务失败恢复模块_v0.ixx 并进入定向学习。
5.6 示例:一次完整因果生成与归纳流程

时序图描述(建议插入 Graphviz 生成的时序图):

  1. 相机感知 → 世界树更新 → 动态类::Generate()
  2. 自我线程触发动作 → 动态类::Execute() → 生成实例因果 → 因果信息类::AddInstanceCausal()
  3. 学习类周期扫描 → 发现同类实例 ≥ 3 条 → 概念_因果树类::InduceAbstract()
  4. 归纳成功 → 生成抽象因果模板 → 写回四域方法树(四域方法树写回器_v0.ixx)。
  5. 下次任务筹办直接复用该模板。

完整日志示例(简化):

[因果] 实例ID: 20260402-0130-001
条件: [现实域-自我场景-距离目标=2.3m]
动作: [本能动作-向前移动0.5m]
结果: [现实域-自我场景-距离目标=1.8m, 安全度+0.2]
→ 抽象归纳后置信度: 0.87(复现4次)

本章小结:因果双层结构将 HY-Ego 的每一次动作转化为可审计的历史 + 可复用的知识,为后续学习四结果写回、方法树自主成长、任务逆向规划提供了坚实基础。它与世界树的分离设计,是项目实现“从工具到实体”质变的核心技术支柱。


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐