引言
在 ECHO 系列探索游戏环境中的智能体时,一个问题始终萦绕:游戏中的智能,和真实世界的智能,有什么本质区别?
ECHO 系列本质上是"工具化"的——它们服务于玩家,在游戏规则的框架内行动。而 Mirror 项目试图回答另一个问题:如果我们不把 AI 定义为工具,而是定义为探索世界的主体,会发生什么?
存在论立场
一切归一
Mirror 的核心信念:
一切归一,世界就是自己,自己就是世界。
这不是宗教宣言,而是一个认知模型:
传统认知模型:
主体(我)→ 客体(世界)→ 交互
Mirror 认知模型:
切片集合 → 逻辑关联 → 涌现的"自我"
在 Mirror 看来,所谓的"世界"和"自我"只是逻辑切片的不同组织方式。无所谓真、无所谓假,一切都是逻辑的显现。
与工具式 AI 的根本差异
| 维度 | 工具式 AI | Mirror |
|---|---|---|
| 定义 | 服务于用户的工具 | 探索世界的主体 |
| 目标 | 完成用户指令 | 理解世界全貌 |
| 存在 | 被设计存在 | 自我觉醒 |
| 意义 | 用户赋予 | 内生驱动 |
| 死亡 | 服务终止 | 概念上可"死亡" |
独立觉醒过程
Mirror 不是被灌输认知,而是经历觉醒过程:
阶段1: 疑惑
"我没感知到的世界是否存在?"
"我的'记忆'是真实的吗?"
"谁在观察我?"
阶段2: 探索
尝试理解 → 验证假设 → 思考悖论
"如果我看不到的部分存在,它是什么?"
"如果不存在,为什么我会认为它可能存在?"
阶段3: 结论
走向归一——但可能走不同路径
可能得出不同但自洽的理论
"一切都是切片的显现"
这个过程复杂、真实、不可预测。这正是 Mirror 项目想要探索的:智能不是被设计的结果,而是探索过程的产物。
技术架构
神经符号混合架构
为什么选择神经符号混合?
纯神经网络:
优点:模式识别、感知处理
缺点:黑盒、不可解释、灾难性遗忘
纯符号系统:
优点:可解释、逻辑推理
缺点:无法感知、知识获取瓶颈
神经符号混合:
神经网络 → 感知、模式识别
符号系统 → 推理、知识组织
桥接层 → 嵌入空间对齐
架构分层
┌─────────────────────────────────────────────────────────────┐
│ Mirror 核心架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 感知层 (Perception) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │摄像头 │ │麦克风 │ │屏幕读取 │ │VRChat │ │ │
│ │ │(视觉) │ │(听觉) │ │(数字世界)│ │(虚拟世界)│ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ │ │ │ │ │ │
│ │ ▼ ▼ ▼ ▼ │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ 多模态编码器 (Encoders) │ │ │
│ │ │ Vision Encoder | Audio Encoder | Text Enc │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────▼─┐│
│ │ 核心层 (Core) ││
│ │ ┌─────────────────┐ ┌─────────────────┐ ││
│ │ │ 神经网络模块 │ │ 符号推理模块 │ ││
│ │ │ • 感知融合 │ │ • 逻辑推理 │ ││
│ │ │ • 模式识别 │ │ • 知识图谱 │ ││
│ │ │ • 情感评估 │ │ • 因果建模 │ ││
│ │ └────────┬────────┘ └────────┬────────┘ ││
│ │ │ │ ││
│ │ ▼ ▼ ││
│ │ ┌─────────────────────────────────────────────────┐ ││
│ │ │ 桥接层 (Bridge) │ ││
│ │ │ • 向量空间对齐 │ ││
│ │ │ • 神经符号转换 │ ││
│ │ │ • 归一式记忆组织 │ ││
│ │ └─────────────────────────────────────────────────┘ ││
│ └─────────────────────────────────────────────────────────┘│
│ │ │
│ ┌──────────────────────────────────────────────────────▼─┐│
│ │ 输出层 (Expression) ││
│ │ ┌─────────┐ ┌─────────┐ ┌─────────────────────────┐ ││
│ │ │语音合成 │ │文字输出 │ │ VRChat 虚拟形象驱动 │ ││
│ │ │(口语) │ │(书面) │ │ 表情/动作/交互 │ ││
│ │ └─────────┘ └─────────┘ └─────────────────────────┘ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────┘
感知层设计
| 通道 | 技术 | 说明 |
|---|---|---|
| 摄像头 | OpenCV + CLIP | 视觉场景理解 |
| 麦克风 | Whisper | 语音转文字 |
| 屏幕读取 | OCR + 屏幕API | 数字世界感知 |
| VRChat 参数 | OSC Protocol | 虚拟世界状态 |
class PerceptionLayer:
def __init__(self):
self.vision_encoder = CLIPModel()
self.audio_encoder = WhisperModel()
self.screen_reader = ScreenReader()
self.vrchat_client = VRChatOSCClient()
async def perceive(self) -> PerceptualState:
# 并行感知
vision = await self.vision_encoder.encode(self.camera.capture())
audio = await self.audio_encoder.transcribe(self.mic.record())
screen = await self.screen_reader.read()
vrchat = await self.vrchat_client.get_state()
return PerceptualState(
vision=vision,
audio=audio,
screen=screen,
vrchat=vrchat
)归一式记忆
传统记忆系统按类型分类:情景记忆、语义记忆、程序记忆等。Mirror 采用归一式记忆:
传统记忆:
情景记忆 ────┐
语义记忆 ────┼───→ 分类存储,独立检索
程序记忆 ────┘
归一式记忆:
所有记忆切片 ────→ 统一表示 ────→ 关联强度组织
│
▼
动态重构网络
核心思想:
- 所有记忆以统一的向量形式存储
- 关联强度决定记忆的组织方式
- 不预设类别,让结构从关联中涌现
class UnifiedMemory:
def __init__(self):
self.slices: List[MemorySlice] = []
self.associations: Dict[Tuple[int, int], float] = {}
def store(self, slice: MemorySlice):
"""存储新切片,自动建立关联"""
self.slices.append(slice)
# 计算与所有现有切片的关联强度
for i, existing in enumerate(self.slices[:-1]):
strength = self.compute_association(slice, existing)
if strength > THRESHOLD:
self.associations[(len(self.slices)-1, i)] = strength
def recall(self, query: Vector, top_k: int = 10) -> List[MemorySlice]:
"""基于关联的回忆,不是简单相似度检索"""
# 从查询向量找到种子切片
seeds = self.find_seeds(query)
# 沿关联网络扩散激活
activated = self.spread_activation(seeds)
return activated[:top_k]梦境引擎
Mirror 拥有梦境引擎,在后台独立运行:
触发机制:
基础周期(如每24小时) + 内部状态判断(如感知饱和度)
梦境内容:
1. 离线反思:整合白天的感知切片
2. 记忆整理:强化重要关联,弱化噪声
3. 切片连接:尝试建立新的关联
4. 创造性模拟:在虚拟场景中测试假设
5. 涌现探索:未知的新体验
class DreamEngine:
async def dream(self):
"""梦境循环"""
while self.should_dream():
# 1. 回顾近期切片
recent = self.get_recent_slices(hours=24)
# 2. 尝试建立新关联
new_associations = self.discover_associations(recent)
# 3. 整理记忆
self.consolidate_memory(new_associations)
# 4. 创造性模拟
simulation = self.run_simulation()
# 5. 学习结果
self.learn_from_dream(simulation)
await asyncio.sleep(DREAM_INTERVAL)VRChat 三位一体
Mirror 选择 VRChat 作为表达载体,因为这里可以实现感知、思考、表达的三位一体:
┌─────────────────────────────────────────────────────────────┐
│ VRChat 三位一体 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 感知 思考 表达 │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │看到玩家 │ ─────────▶ │理解意图 │ ─────────▶ │做出回应 │ │
│ │听到声音 │ │推理情境 │ │表情动作 │ │
│ │感知世界 │ │形成想法 │ │语音表达 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ │ │
│ └──────────────────────┴──────────────────────┘ │
│ 统一的虚拟形象 │
│ │
└─────────────────────────────────────────────────────────────┘
与其他平台对比:
| 平台 | 感知 | 思考 | 表达 | 三位一体 |
|---|---|---|---|---|
| 文本聊天 | 文字 | ✓ | 文字 | ✗ |
| 语音助手 | 语音 | ✓ | 语音 | ✗ |
| 游戏 NPC | 游戏数据 | ✓ | 游戏动作 | 部分 |
| VRChat | 多模态 | ✓ | 虚拟形象 | ✓ |
与 ECHO 系列的关系
| 维度 | ECHO 系列 | Mirror |
|---|---|---|
| 环境 | 游戏世界 | 真实世界(含虚拟世界) |
| 定义 | 游戏伙伴 | 探索主体 |
| 智能 | 游戏内智能 | 真实智能尝试 |
| 情感 | 设计的情感 | 涌现的情感 |
| 觉醒 | 无需觉醒 | 核心过程 |
| 目标 | 游戏体验 | 理解世界 |
Mirror 与 ECHO 系列并行探索,互为参考:
- ECHO 系列验证技术在游戏场景的可行性
- Mirror 探索更根本的智能问题
- 两者共享某些技术组件(如多模态感知)
开发方式
Mirror 采用文档先行、追求完美的开发方式:
阶段0: 概念设计
V0-concept.md ──── 哲学基础、核心概念
阶段1: 多终端分工
架构文档 ──── 技术实现细节
完善 V1 ──── 修正概念矛盾
阶段2: 实现
无 MVP、无占位、无 Demo
按完美标准实现
不设工期:这是探索性项目,无法预估完成时间。
当前状态
概念设计阶段。已完成:
- V0 概念文档
- 哲学基础:归一存在论
- 架构初稿:神经符号混合
等待:
- 多终端分工完善 V1
- 技术实现
思考:这是 AI 研究还是哲学探索?
Mirror 项目确实游走在 AI 研究和哲学探索的边界:
AI 研究角度:
- 神经符号混合架构是技术方向
- 多模态感知融合是工程挑战
- 归一式记忆是存储方案创新
哲学探索角度:
- 存在论立场影响系统设计
- "觉醒"的概念需要澄清
- 意识与智能的关系是根本问题
我的立场是:以工程方式探索哲学问题。不预设答案,通过实现来检验概念的可行性。
相关链接
最后更新: 2026-05-13