For the complete documentation index, see llms.txt. This page is also available as Markdown.

4.8 实时控制平面

在长时运行的 Agent 系统中,需要一套实时控制机制,使得外部系统(如 UI、监控服务、用户干预系统)能够动态地暂停、恢复、修改和终止 Agent 执行,同时保持系统的正确性和一致性。本节介绍实时控制平面的架构、关键组件和实现模式。

设计演示说明:本节涵盖的详细控制平面实现(CheckpointManager、ActionStream、InterventionHandler 等)为设计参考示例。Lab 已在 runtime/checkpoint.py 实现工具调用结果的恢复与重复副作用保护,但它不是完整 AgentState 快照;暂停/恢复、ActionStream 和干预点仍需按本节设计扩展。

4.8.1 控制平面架构

实时控制平面将 Agent 系统分为 数据平面控制平面 两部分:

  • 数据平面:Agent 的主循环,负责执行任务、调用工具、生成结果

  • 控制平面:暴露的外部接口,接收暂停、恢复、干预等控制命令,管理 Agent 的执行状态

控制平面通过以下机制与数据平面通信:

  1. 控制队列:Agent 周期性检查控制队列中的指令

  2. 状态检查点:Agent 在安全位置(如工具调用前后)暂停和检查控制信号

  3. 异步回调:控制命令通过回调机制通知 Agent 做出响应

  4. 检查点存储:暂停时保存 Agent 状态,便于后续恢复

4.8.2 暂停与恢复机制

状态序列化与检查点创建

Agent 在运行过程中需要在特定的安全点创建检查点,以便暂停和恢复执行:

优雅暂停的实现

Agent 在到达安全点时检查暂停信号,并创建检查点:

4.8.3 实时行动流

Agent 的每个动作(工具调用、决策、结果生成)都应该以流的形式实时传送到 UI 或日志系统,支持 SSE(Server-Sent Events)和 WebSocket 模式:

4.8.4 干预点设计

干预点是智能体循环中允许外部系统注入控制的位置。设计良好的干预点确保不会破坏 Agent 的内部不变量:

4.8.5 成本与安全控制

控制平面应管理资源消耗(Token 预算、API 调用次数)和安全限制(超时、kill switch):

4.8.6 实战:完整的实时控制平面

以下是一个完整的示例,展示如何在实际 Agent 中使用控制平面:

4.8.7 总结

实时控制平面的关键组件:

组件
功能
实现机制

检查点管理

保存/恢复 Agent 状态

序列化、存储后端

暂停/恢复

优雅暂停和状态恢复

安全检查点、状态锁

行动流

实时发送 Agent 行动

发布-订阅、SSE/WebSocket

干预点

外部系统控制 Agent

回调注册、点间插入

成本控制

Token 与 API 调用预算

计数器、约束检查

安全控制

超时和 kill switch

计时器、强制终止

实时控制平面使得 Agent 系统能够响应动态的用户需求和外部约束,是生产级 Harness 的必要组件。

最后更新于