状态与长期运行
本阶段解释 nanobot 如何跨越一次 Turn 保留信息,以及长任务、定时任务和后台 Subagent 如何重新进入核心 Agent 流程。
对应源码
| 主题 | 源码 |
|---|---|
| Session 和回放 | nanobot/session/manager.py、nanobot/session/keys.py |
| Compaction、Memory 和 Dream | nanobot/agent/memory.py、nanobot/agent/autocompact.py、nanobot/templates/agent/dream.md |
| Goal 和 Continuation | nanobot/session/goal_state.py、nanobot/session/turn_continuation.py |
| Cron 和 Heartbeat | nanobot/cron/、nanobot/agent/cron_turns.py |
| Subagent | nanobot/agent/subagent.py、nanobot/agent/tools/spawn.py |
学习目标
完成本阶段后,你应当能够区分:
- Session 消息;
- Session metadata;
- ContextBuilder 的本轮上下文;
memory/history.jsonl;memory/MEMORY.md;- AutoCompact;
- Token Consolidation;
- Dream;
- Goal;
- Continuation;
- Cron;
- Subagent。
阅读顺序
总体关系
flowchart TD T["一次 Turn"] --> S["Session JSONL"] S --> H["下一次 Turn 的 Session history"] S --> C["Consolidator"] C --> J["memory/history.jsonl"] J --> D["Dream"] D --> M["SOUL.md / USER.md / MEMORY.md"] M --> CTX["ContextBuilder"] H --> CTX G["Goal state<br/>Session metadata"] --> CTX G --> CONT["Internal Continuation"] CONT --> T CR["Cron / Heartbeat"] --> IN["InboundMessage"] IN --> T SA["Subagent"] --> R["独立 AgentRunner"] R --> ANN["结果 InboundMessage"] ANN --> T
最重要的边界
“长期运行”不是一个大模块
Goal、Cron 和 Subagent 使用不同机制:Goal 是 Session metadata;Continuation 是内部入站消息;Cron 是持久化调度;Subagent 是后台 AgentRunner。不要把它们统一描述成“多 Agent 调度器”。
下一步
阅读 Session 文件与回放边界。