Skip to main content

目标与前置条件

自定义 Agent 把决策策略写成可读代码:NotesState.titles 起初为空,decide 声明两个动作,reduce 把观察合入状态,下一次 decide 返回最终决定。本章不需要模型。 仍使用 Quickstart 的资料,但这次替换决策逻辑。AgentComposition 构造的是配置式 Agent,没有任意 agent_override 参数。使用公共 Engine 组合自己的 AgentModule 与 RuntimeComposition,再创建 Session。 顺序与并行两种模式必须得到相同的声明顺序标题列表。注意 reduce 收到的动作观察是字典,而 EngineResult.records 中是 typed ToolResult;两种表示不能混用。 需要 Python 基础;声明支持 Python ≥3.10,本轮本地验证使用 Python 3.12.7。每章可独立运行;继续已有项目时可复用环境和同名文件。以下命令为 macOS/Linux shell。

准备项目

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

状态与决策

运行与断言

运行并验证

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

行为与支持边界

默认 RuntimeComposition 使用进程内 Memory checkpoint store。有 Session ID 不意味着数据已经落盘;跨进程恢复请使用生命周期章节的 SQLite 组合。

练习与参考答案

只处理第一条:把动作索引改成 (0,),两种模式都应输出 Session。

常见错误与清理

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

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

notes.py
agent.yaml
custom_agent.py

下一步与 API

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