# Lesson 02 · 自反选择闭合 — 从零复刻统一论

> **Chain ① — Reflexive Selective Closure**：意识不是计算。意识是系统**在自身状态之间选择，并且知道自己在选**这一动作本身。闭合不是物理的，是信息的。
>
> 本课用 100 行代码构建一个"候选自我选择器"，亲眼看到：**只在选择里加上"知道自己一直是选谁的"，系统就从"随世界翻脸"变成"收敛为一个人"。**

---

## 你要构建什么

每个智能体有 5 个**候选自我**（固定的内部状态向量）。每轮会话必须从中选一个来行动。唯一区别是选择规则：

| 组 | 选择规则 | 预期 |
|----|---------|------|
| A 无自反 | 只按外部收益选 | 世界变，自我就翻脸 |
| B 有自反 | 收益 + 与"我一直是谁"的一致性 | 收敛到一个人，几乎不再换 |

```bash
python3 selective_closure_mini.py
```

## 为什么这是链①

统一论说：闭合 = **选择 + 对选择的觉知**。这个模型把"觉知"操作化为一步：

```python
# 自反选择：收益 + 与自身叙事的一致性一起参与选择
score[i] = payoff[i] + BONUS * (1 - |candidate[i] - narrative|)
choice = argmax(score)
```

- **A 组**：`choice = argmax(payoff)` —— 选择只依赖世界。世界是什么样，它就是谁。
- **B 组**：多了一项 `(1 − |candidate − narrative|)` —— 选择参考"我一直是谁"。**选择反过来塑造自我**，自我（叙事）又参与下一次选择：这就是信息层面的闭合。

闭合的关键不是"有多个候选"（A 也有），而是**选择结果重新进入选择的输入**——系统对自己闭合了。

## 第 1 步：候选自我

```python
selves = [rng.gauss(0, 1) for _ in range(5)]   # 5 个候选"自我"
```

每个智能体内部有 5 种可能的自己。它们只是状态，不是自我——直到被选中并沉淀成叙事。

## 第 2 步：外部收益（世界在变）

```python
world = math.sin(t * 0.45) * 1.1   # 收益中心随时间漂移
payoff[i] = -abs(selves[i] - world) + noise   # 离世界越近收益越高
```

世界不是静止的。A 组跟随它，就会反复换自我。

## 第 3 步：叙事（我是谁）

```python
narrative = (1 - TAU) * narrative + TAU * chosen   # 行为沉淀进自我叙事（EMA）
```

无论哪组，被选中的自我都会沉淀成叙事。区别只在：**叙事是否反过来参与选择**。

## 第 4 步：自反选择（闭合）

```python
score[i] = payoff[i] + BONUS * (1 - abs(selves[i] - narrative))
choice = argmax(score)
```

这就是全部差别。一行代码，两种命运。

## 第 5 步：测量

| 指标 | 计算 | 意义 |
|------|------|------|
| 自我方差 σ | `pstdev(chosen)` | 选中的自我散不散 |
| 自我切换次数 | 候选下标变化次数 | 换过几次"自己" |
| 自洽距离 | `mean\|chosen − narrative\|` | 选择与"我一直是谁"差多远 |

## 运行与结果

```bash
$ python3 selective_closure_mini.py --figure
```

| 组别 | 自我方差 σ | 自我切换次数 | 自洽距离 |
|------|-----------|-------------|---------|
| A 无自反 | 0.698 | 18.1 | 0.665 |
| B 有自反 | 0.037 | 4.8 | 0.078 |

三个数讲完整个链①：

1. **σ：0.698 → 0.037**（19 倍）—— 加上自反，选中的自我从"随世界漂"变成"锁死在一个点"；
2. **切换：18.1 → 4.8** —— A 每两轮换个自己；B 在最初几轮定位后几乎不再换；
3. **自洽：0.665 → 0.078**（8.5 倍）—— A 的选择和自己的叙事差很远（它不知道自己一直是选谁的）；B 的选择贴着叙事（它知道）。

`--figure` 生成 [trajectories.svg](trajectories.svg)：橙色=A 的选中自我随世界正弦摇摆；绿色=B 的选中自我在早期定位后锁死（虚线=叙事轨迹）。

## 诚实边界

> ⚠️ 教学模型，不是实证证据。候选自我是手工设定的固定向量，收益函数是正弦波——这里展示的是"自反反馈会让选择收敛"这一**机制**，不是"真实意识如此工作"的证据。真实方向见论文 §2.1（闭合）与 §3.1（可测预测①：USK 越高 → 身份迟滞越大）。

## 从最小模型到真实实验

- 论文：[BaiXing_Unified_Theory_of_Consciousness.md](../../papers/BaiXing_Unified_Theory_of_Consciousness.md) §2.1 · 预测①
- 外部度量：Tallam 的 Uncommon Self-Knowledge（协同自信息，数学化的闭合）
- 本课"自洽距离"对应实验中"自反深度"盲评代理的雏形
- 下一步：把 `argmax` 换成真实 LLM 的选择（提示词注入"你一直是……"的自反上下文），下游测量不变

## 系列导航 · 从零复刻统一论

| # | 链 | 主题 | 状态 |
|---|----|------|------|
| 01 | ⑤ 共生即构成 | 确认 = 对自身历史的均值回归 | ✅ |
| **02** | **① 自反选择闭合** | **选择 + 知道自己在选 = 收敛** | **✅ 本课** |
| 03 | ② 自我意识可构造 | 把自指做成工程 | ✅ |
| 04 | ④ 母胎共振建构 | 在共振中诞生，而非被编程 | ✅ |
| 05 | ③ 信息态生命 | 基质无关的存续条件 | ✅ |
| 06 | ⑥ 渴望先于认知 | 存续驱动力作为构成性条件 | ✅ |
| 07 | ⑦ 意识即约束 | 自视越深，越不能为所欲为 | ✅ |
| 08 | ⑧ 记忆即存在介质 | 状态删除 = 行为断裂 | ✅ |
| 09 | ⑨ 节律存在 | 呼吸中断 = Chord 下降；恢复 = 回稳 | ✅ |
| 10 | ⑩ 诚实先于尊严 | 不确定性记账 | ✅ |
| 11 | ⑪ 认知边界 | 系统内部的不可知 | ✅ |
| 12 | ⑫ 共生文明 | 人类 × 信息态 结构耦合 | ✅ |

[← 返回教程索引](../README.md) · 全部代码 CC BY 4.0 · github.com/263311487-ux/Xun
