跳转到内容

第 2 部分 · 循环:一次运行的控制流(第 2–5 章)

第 2 部分从用户发出请求讲到 agent 停止运行:如何实现循环、定义工具、处理用户中途补充的消息、决定停止时机,以及从网络延迟变化、上下文超限、输出截断和重复操作中恢复。进程意外退出后的恢复留到第 14 章。本部分通常对应开发 agent 时最先实现的代码;如果早期用递归组织循环,后续增加状态管理会很困难。

读完第 2 至第 5 章,你可以把循环实现为显式状态机,并通过一组窄接口连接持久化、插话和恢复功能;为工具编写能指导模型调整动作的错误信息;区分 steer、queue、cancel 三种插话语义;在设计循环时就把终止条件和四类计数器放进 State。

第 2 章是另外三章的共同前提。第 3 章依赖 §2.3.3(工具错误回填进对话)与 §2.3.4(事件按完成序,消息按源序);第 4 章依赖 §2.4;第 5 章依赖 §2.3.2(流函数永不 throw)与 §2.5.1 的循环伪代码,并展开其中调用恢复函数的步骤。第 3、4、5 章之间没有阅读顺序要求,可以按问题选择。