# 一次思考的生命周期 · consciousness 链路

> 技术参考 · 深入原理(架构师向)。承接《[运行时与事件流](44-runtime.md)》。
> 前一篇讲事件怎么流到各 module。这一篇聚焦最后那一步:**consciousness 模块怎么把一堆上下文变成一次真正的"思考 + 行动"**——门禁、组装、调 LLM、工具循环、事后学习。理解这条链,才能判断一个提案会怎样影响行为、延迟和成本。

---

## consciousness 不是"上帝主循环"

它优先级最低(0),**最后**才跑。它不抢戏:大量反射、过滤、关系判断已经在它之前的各 module 里完成了。它是**兜底整合器 + 链路驱动器**——把大家的贡献收拢,决定"要不要唤醒 LLM",然后驱动这一次思考。

> 这样设计的好处:省 token、降延迟、让 module 各自自治,也为将来"轻链路→重链路"的升级留了扩展空间。

---

## 一条链的五步

**1 · 门禁(Gate)——要不要唤醒 LLM?**

在唤醒昂贵的 LLM 之前,先过几道横切关卡:

- **stamina(精力)**:有没有精力行动;
- **spark(能量)**:Spark 够不够(归零就下线,见《[Spark 与成本](30-spark.md)》);
- **heartbeat 有没有活**:心跳事件若没有实际要处理的事,直接放过,不空烧 LLM。

任一门禁否决 → 这次不唤醒 LLM,链路提前结束。**这是控制成本的第一道闸。**

**2 · 组装上下文**

把所有 module 的贡献合并成一份 prompt,再在固定位置补上两条 imperative banner:**生存/精力**(必须最前)和**未读汇报**(必须在门禁之后,因为注入有"标记已读"副作用)。

**3 · 调 LLM**

带着组装好的 prompt + 当前可用的工具集,唤醒 LLM。

**4 · 工具循环**

LLM 想做事就调工具 → 工具注册表执行 → 结果回灌给 LLM → 它再决定下一步。默认上限是 **15 个工具循环 round**(`TOOL_TURN_MAX`);同一个 round 可以包含多个工具调用,所以它不是"最多调用 15 个工具"。需要更多的多步流程(如"检查→授权→编码→估算→发送→验证→报告"),Skill 作者可通过 `max_tool_turns` 上调,**上限 30**。

> 撞上限还没做完时,Agent 会收到系统提示,如实汇报"做完了哪几步、还差哪步",而**不是编造成功**。

**5 · 链尾:事后学习**

链跑完发 `think_finished`,订阅它的 module 各自学习:**emotion** 更新对人的情绪、**memory** 整理沉淀、**skill / playbook** 给自己这次的建议打分、**social / koan / drive** 各自更新。

---

## 对架构提案意味着什么

- **成本**:首次唤醒和每次工具结果回灌后的后续 LLM 调用都会产生模型成本;部分工具还可能有自己的收费。想加"更主动/更频繁"的行为,先算清它会在门禁后触发多少条链、每条链多少 LLM round——这是最常被低估的成本项;
- **延迟**:上下文越厚、工具轮数越多,首字和完成越慢。加 module 贡献时要权衡它值不值这份 prompt 预算;
- **门禁是省钱闸**:很多"空转烧钱"的问题,本质是某个事件不该唤醒 LLM 却没被门禁挡住。提"新触发源"的提案时,想清楚它的门禁。

---

*这一篇属于「深入原理(架构师向)」。想理解事件怎么流到这一步,回到《[运行时与事件流](44-runtime.md)》;想知道怎么新增一个 module/tool 挂进这条链,看《[扩展模型](46-extending.md)》。*
