AI Applications
Agent Loop: 从 ReAct 模式到可观测运行时
Agent Loop 将 ReAct 式多步行为收束为可观测运行时:用状态机、上下文构建器、决策合约、工具运行时、预算、检查点和 trace 管理模型行动。
Agent Loop: 从 ReAct 模式到可观测运行时 Agent loop 常被写成一个朴素循环:模型读取上下文,决定是否调用工具,工具返回 observation,再把 observation 放回上下文。这个结构可以复现 ReAct 的核心思想:reasoning 和 acting 交替发生,模型通过外部环境修正自己的下一步行动。 但生产系统里的 AgentLoop 不是 while true 调模型。真正困难的问题是:状态由谁保存,工具调用如何治理,什么时候停止,失败如何恢复,预算如何消耗,人工确认在哪里插入,trace 如何复盘。 本文讨论一个更窄的抽象: AgentLoop 是围绕随机模型决策构建的确定性运行时。 它把模型从全能控制器降级为 policy component,把状态、上下文、工具、预算、检查点和观测交给运行时管理。 这个方向的目标不是让 Agent 更“自主”,而是让多步行动变得可观测、可恢复、可评测。 Design Boundary 这里的 Agent Loop 指运行时抽象,而不是某个已经完整商品化的产品声明。讨论重点放在架构边界、状态转移、工具治理、会话恢复和评测面上,不依赖私有实验数据或未公开指标。 在博客 Agent、文档助手、工具型 Assistant 等场景里,这个抽象可以逐步落地:先保存会话和 trace,再引入受控工具,最后扩展到文件、权限、限流和人工确认。复杂度应随着真实任务需求增加,而不是一开始就堆叠多 Agent 或重型编排。 1. From Pattern to Runtime ReAct 的贡献是把语言推理和环境行动放进同一条轨迹中。模型不再只是生成答案,而是可以先思考、再行动、再根据 observation 更新计划。这个范式适合工具使用、网页操作、检索问答和交互式任务。 ReAct 解决的是行为模式问题,但 AgentLoop 还要解决运行时问题: 当前任务状态是否独立于 prompt 保存? 每一步模型输入由谁构建? 工具参数如何验证? 副作用 action 如何审批和去重? 工具失败后如何重试、降级或...