Skip to main content

目标与前置条件

第一个进程在处理 Session 资料后,于生命周期边界暂停,保存 Session ID 与匹配配置,然后退出。第二个进程读取 SQLite,对暂停快照执行 fork,运行子 Session,再恢复并运行父 Session。 fake provider 的游标显式从 1 开始,因为该固定 fixture 总是在第 0 个响应后暂停。这不是 provider continuation 的持久化。Session 状态、所有权和 journal 由 QitOS 恢复。父执行使用独立 composition,避免复用子执行已经前进的 fake 游标。 比较子执行前后的 parent head,再检查父 Trajectory 中的 steering 记录。父 Session 必须实际执行剩余的 Artifact 工具,不能仅收到一句固定结论。 需要 Python 基础;声明支持 Python ≥3.10,本轮本地验证使用 Python 3.12.7。每章可独立运行;继续已有项目时可复用环境和同名文件。以下命令为 macOS/Linux shell。

准备项目

将下方完整文件保存到当前目录。无需 clone 仓库、安装 editable 包或复制 tests。

第一个进程:暂停

第二个进程:恢复

运行并验证

预期出现以下输出片段(随机 ID 不固定)。每次运行都检查工具结果或持久化断言,成功退出码为 0。

检查保存的 Session

行为与支持边界

应在 restore 取得所有权前 fork 已持久化的暂停 head。ephemeral 与进程内 Memory 不承诺跨进程恢复。CLI live pause/steer、未解决 approval 的 restore 当前 unsupported。Steering 改变指令,不授予权限。

练习与参考答案

修改子 Session 的 steering 文本,确认 parent head 断言仍通过;分别检查父子不同的 Session ID。

常见错误与清理

ModuleNotFoundError:确认已激活安装指定 wheel/源码版本的环境,并保存本页所有文件。root 已存在:换一个新 --root,不要覆盖需要保留的证据。断言失败:检查第一个失败的工具或 typed error;不要只依赖最终文字。退出所有进程、停止 board 后,可自行删除本章新建且不再需要的运行目录;保留要调试的 SQLite、journal 和报告。

完整文件:复制到项目根目录

notes.py
agent.yaml
lifecycle.py

下一步与 API

API Reference · Configuration · Learning path · Next Source file (可选;全部所需代码已在本页)