Skip to main content

PROACTIVE — 主动模式

Feature Flag: FEATURE_PROACTIVE=1(与 FEATURE_KAIROS=1 共享功能) 实现状态:核心循环与 SleepTool 已落地,部分外围文档仍在补齐 引用数:37

一、功能概述

PROACTIVE 实现 Tick 驱动的自主代理。CLI 在用户不输入时也能持续工作:定时唤醒执行任务,配合 SleepTool 控制节奏。适用于长时间运行的后台任务(等待 CI、监控文件变化、定时检查等)。

与 KAIROS 的关系

所有代码检查都是 feature('PROACTIVE') || feature('KAIROS'),即:
  • 单独开 FEATURE_PROACTIVE=1 → 获得 proactive 能力
  • 单独开 FEATURE_KAIROS=1 → 自动获得 proactive 能力
  • 两者都开 → 相同效果(不重复)

二、实现架构

2.1 模块状态

2.2 系统提示内容

getProactiveSection() 注入的自主工作指令包含:

2.3 数据流

三、当前行为补充

  • standby:proactive 已开启,当前没有执行中的 turn,且已调度下一个 tick。
  • sleeping:模型显式调用 SleepTool 进入等待窗口。
  • remote-control/CCR 通过 external_metadata.automation_state 接收这两个状态,用于 Web UI 的 Autopilot 状态显示。
  • SleepTool 现在不是纯定时器;它会在共享命令队列出现新工作时提前醒来。

四、关键设计决策

  1. Tick 驱动:模型通过 SleepTool 自行控制唤醒频率,不是外部事件推送
  2. 空操作必须 Sleep:防止 “still waiting” 类空消息浪费 turn 和 token
  3. Prompt cache 考量:SleepTool 提示中提到 cache 5 分钟过期,建议平衡等待时间
  4. Terminal Focus 感知:模型根据用户是否在看终端调整自主程度

五、使用方式

六、文件索引