《HY-Ego 认知架构白皮书》(续)
4. 世界树(World Tree)------全局世界骨架
世界树是 HY-Ego 认知架构的全局事实骨架 ,负责对整个"世界"进行结构化建模、组织和维护。它与因果树并行独立运行,二者通过快照机制实现松耦合,从而保证了事实层与因果层的职责清晰分离,避免了传统认知架构中"事实与因果混杂"导致的不可解释性问题。
世界树的核心设计理念是:所有可感知、可比较、可复用的基础信息必须以树形结构长期稳定存在 ,并支持实时动态更新 、安全度监控 和自我定位 。它不是一个静态的知识库,而是一个活的、具身的全局环境,为自我线程、任务筹办、学习写回提供统一的"世界视图"。
4.1 世界树定义与拓扑结构
世界树采用多根分域树形拓扑 ,以"世界根"作为唯一顶级节点,向下生长出六大世界域 和概念域根。
-
世界根 (World Root):
所有信息的绝对起点,代表"整个可被认知的世界"。它仅持有指向六大世界域根节点的弱引用,不存储任何具体事实。
-
六大世界域 (Six Major World Domains):
每个域都有独立的域根节点 ,负责该域内所有场景、存在、特征的组织。域的划分遵循现实性 vs 抽象性 、当前性 vs 历史性的原则,确保不同类型的信息不会相互污染:
世界域 中文名称 核心职责 典型节点示例 访问优先级 Reality 现实域 真实世界感知输入(相机、传感器等) 当前物理场景、物体位置 最高 Text 文本域 语言/文档/指令输入 用户指令、知识文档 高 Imagination 想象域 规划中的未来场景、虚拟模拟 任务筹办时的"如果...则..."场景 中 Memory 记忆域 历史事实与长期存储 已完成任务的场景快照 中 Reasoning 推理域 临时推理中间结果 反事实推演、中间假设 低(易清理) Virtual 虚拟域 模拟环境、测试沙箱 Headless 模式下的虚拟世界 低 每个域根节点下进一步生长场景树 → 存在树 → 特征树,形成严格的层级关系。
-
概念域根 (Concept Domain Root):
独立于六大世界域之外的抽象概念层 ,以"特征类型"作为最上层根节点,向下生长状态概念树(见 4.3)。概念域根不持有具体实例,仅存储可复用的"模板",供六大世界域中的存在节点"命中"匹配。
拓扑特性:
- 所有节点均为强类型 (场景类、存在类、特征类等),支持双向链表模板高效遍历。
- 节点间仅使用弱引用(std::weak_ptr),防止循环引用导致的内存泄漏。
- 运行时动态列表 优先写入主信息存储(主信息定义模块.ixx),临时节点在任务结束时自动清理。
4.2 世界树与因果树的关系
世界树与因果树完全分离、并行运行,这是 HY-Ego 区别于其他认知架构的核心设计之一:
- 世界树 :只负责"是什么"(事实、状态、特征值)。
- 因果树 (由
因果信息类.ixx独立管理):只负责"为什么"(条件 + 动作 = 结果)。 - 交互协议 :
- 世界树只读因果树的实例快照(用于生成二次特征)。
- 因果树只写世界树的主信息存储(动作结果必须立即落入场景节点)。
- 二者不相互持有强引用 ,仅通过
场景类::GetMainInfoSnapshot()和因果信息类::AddInstanceCausal()进行松耦合通信。
- 职责分离的好处:即使因果归纳失败,世界树的事实层依然保持一致性;即使世界树节点被清理,因果链仍可独立追溯历史。
4.3 关键对象模型
世界树的核心对象模型采用四级抽象,全部定义在以下模块中:
场景类.ixx:世界树的最小可独立操作单元,代表"某一时刻的局部世界视图"。包含主信息存储、子场景列表、安全度值。存在类.ixx:场景内的具体"物体/实体/主体"。每个存在节点持有指向特征树的引用。特征类.ixx:单一特征的抽象描述(特征类型 + 特征值)。状态类.ixx:特征值的具体实例,支持区间比较(正/负/零区间)。
自我在世界树中的语义路径(固定,不可改写):
世界根
└─ 现实域根
└─ 自我初始场景(Self Initial Scene)
└─ 自我存在节点(Self Entity)
此路径在初始化时由 世界树类.ixx::RegisterSelf() 一次性建立,自我线程通过此路径实时读取/更新自身特征值。
状态概念树(概念域根下的核心结构):
- 根节点:特征类型(Feature Type)
- 中间节点:特征区间(Positive / Negative / Zero)
- 叶节点:具体特征值实例
- 匹配规则:任何存在节点上的特征值必须"命中"概念树上的某一节点,从而实现抽象-具体分离。
4.4 场景安全度机制与自我特征值实时维护
-
场景安全度 (Scene Safety Score):
每个场景节点维护一个 0--100 的浮点安全度值 (
场景类::m_safetyScore)。-
安全度 == 0 为生死边界(根约束 0500,不可被任何学习改写)。
-
自我线程每周期(心跳)调用
场景类::UpdateSafety()进行回归计算,公式如下(伪代码):\\text{safetyScore}*{t} = \\text{safetyScore}* {t-1} \\times (1 - \\alpha) + \\sum (\\text{风险因子}_i \\times w_i)
其中 (\alpha) 为衰减系数,风险因子来自当前动态列表。
-
-
自我特征值实时维护 :
自我类.ixx持有指向"自我存在节点"的弱引用,每 50ms 通过世界树类::GetSelfFeatureSnapshot()同步最新特征值(位置、健康、服务值、安全值等)。任何特征值变化立即触发二次特征生成,进而可能产生需求或本能动作。
4.5 模块实现详解
-
世界树类.ixx:世界树总入口,提供CreateDomainRoot()、RegisterScene()、GetSelfPath()等接口。 -
世界树环境类.ixx:负责世界树的初始化、持久化(内存镜像)和清理策略。 -
场景类.ixx、存在类.ixx、特征类.ixx、状态类.ixx:核心数据结构,全部使用 C++20 模块接口。 -
关键函数示例(伪代码):
cpp// 世界树类.ixx void WorldTree::UpdateDynamicToMainInfo(const Dynamic& dyn) { auto scene = GetCurrentScene(); scene->WriteMainInfo(dyn.ToMainInfo()); // 优先落主信息存储 if (scene->GetSafetyScore() < 10.0f) { SelfThread::TriggerRiskRegression(); } }
本章小结:世界树作为 HY-Ego 的"世界骨架",提供了稳定、可追溯、具身的事实层基础。它与因果树的分离、场景安全度机制、自我语义路径共同构成了后续任务筹办、学习写回、动作执行的可靠环境。