Skip to main content

目标与前置条件

本章引入实际文件和命令工具,因此需要 Docker CLI、运行中的 daemon 和 python:3.12-slim 镜像。fake 模型声明调用,但工具确实在 Docker 中执行。Python 客户端位于宿主机,容器网络关闭。 先运行不发布的模式。源 report.txt 初始为 original;sandbox 写入 Session, Artifact,产生 20,000 字符大输出,暂停后恢复。程序解析 artifact 引用并验证 SHA-256。cleanup 后源报告必须保持原样。 再换一个 root 加 --publish。仅此次执行为已有顶层文件 report.txt 和已验证的输入 digest 注册 SandboxPublicationTool。此时源报告才应改变。两种模式最终都断言容器已清除。 需要 Python 基础;声明支持 Python ≥3.10,本轮本地验证使用 Python 3.12.7。每章可独立运行;继续已有项目时可复用环境和同名文件。以下命令为 macOS/Linux shell。

准备项目

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

运行并验证

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

行为与支持边界

cleanup 不意味着 publication。当前 publication 限于已限定平台上已有的顶层普通文件,不是任意目录同步。缺少 Docker 属于前置环境故障,不能把这些文件工具改为 unsafe host 来绕过。

练习与参考答案

修改报告正文及对应断言。私有运行仍必须保留 original,显式发布运行才应得到新正文。

常见错误与清理

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

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

notes.py
agent.yaml
sandbox.py

下一步与 API

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