4.8 实时控制平面

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

设计演示说明:本节涵盖的详细控制平面实现(CheckpointManager、ActionStream、InterventionHandler 等)为设计参考示例。Lab 中的 miniharness 实现目前包含基础状态枚举(AgentState.PAUSED),完整的暂停/恢复、检查点、干预点等功能可根据本节设计参考进行扩展。

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循环中允许外部系统注入控制的位置。设计良好的干预点确保不会破坏Agent的内部不变量:

4.8.5 成本与安全控制

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

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

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

4.8.7 总结

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

组件
功能
实现机制

检查点管理

保存/恢复Agent状态

序列化、存储后端

暂停/恢复

优雅暂停和状态恢复

安全检查点、状态锁

行动流

实时发送Agent行动

发布-订阅、SSE/WebSocket

干预点

外部系统控制Agent

回调注册、点间插入

成本控制

令牌与API调用预算

计数器、约束检查

安全控制

超时和kill switch

计时器、强制终止

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

最后更新于