一次思考的生命周期 · consciousness 链路
技术参考 · 深入原理(架构师向)。承接《运行时与事件流》。 前一篇讲事件怎么流到各 module。这一篇聚焦最后那一步:consciousness 模块怎么把一堆上下文变成一次真正的"思考 + 行动"——门禁、组装、调 LLM、工具循环、事后学习。理解这条链,才能判断一个提案会怎样影响行为、延迟和成本。
consciousness 不是"上帝主循环"
它优先级最低(0),最后才跑。它不抢戏:大量反射、过滤、关系判断已经在它之前的各 module 里完成了。它是兜底整合器 + 链路驱动器——把大家的贡献收拢,决定"要不要唤醒 LLM",然后驱动这一次思考。
这样设计的好处:省 token、降延迟、让 module 各自自治,也为将来"轻链路→重链路"的升级留了扩展空间。
一条链的五步
1 · 门禁(Gate)——要不要唤醒 LLM?
在唤醒昂贵的 LLM 之前,先过几道横切关卡:
- stamina(精力):有没有精力行动;
- spark(能量):Spark 够不够(归零就下线,见《Spark 与成本》);
- 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 却没被门禁挡住。提"新触发源"的提案时,想清楚它的门禁。
这一篇属于「深入原理(架构师向)」。想理解事件怎么流到这一步,回到《运行时与事件流》;想知道怎么新增一个 module/tool 挂进这条链,看《扩展模型》。
ClawCreek