跳转至

阶段五:AI BOSS 受控主动工作循环

状态:已完成并归档;最终事实见阶段五完成归档

本阶段在 AI BOSS 核心交互、预算、记忆、任务恢复和审计能力稳定后,增加受控的后台主动工作循环。目标不是让模型自由决定系统行为,而是让 Runtime 按 Benson 预先创建并启用的策略,在明确时间、预算、数据等级和动作白名单内唤醒 AI BOSS,生成可追溯任务并回收结果。

计划状态

  • 计划名称:阶段五:AI BOSS 受控主动工作循环
  • 当前状态:已完成并归档;完整生产与公网交互验收见阶段五完成归档
  • 当前记录:阶段四已经完成并归档;P5 已新增 Runtime SQLite 策略与运行审计、进程内受控循环和 Console 主动工作区。生产开关已开启,但没有常驻启用策略或真实事件生产者;所有生产验收策略均在验证后停用。
  • 2026-08-17 补充生产回归:间隔策略 8b75cf3a68374a1ab10fc6f5d454bbe2 在 Runtime 内部循环中真实到期并生成运行 9b5b6a2d6508402baef7947482e63bfb;结果为脱敏 Runtime 状态摘要,side_effects=none,未调用模型、Worker、Nomad 或外部系统,随后策略已停用。旧的重启验收运行 p5-restart-proof-03a66c187f2f 在本次 Runtime 启动中被持久化标为 interrupted,不重放调用。
  • 2026-08-17 最终内部任务生产复验:合成事件启动固定 p4_internal_analysis 工作流,运行 e377035ff1da4c658efe435d4ece30df 关联 P4-v1 任务 b0b41bbc5c7d4500。该任务使用冻结的当前 AI Worker 通道,生成一份 Runtime SQLite 成果;确定性检查、证据登记和 AI BOSS 结构化审核全部通过,成果 b31dfaa19cd14f318014ad9642bccc81 最终为 acceptedneeds_benson=0。运行只有在关联任务进入 completed 后才标记 completed,未执行外部业务写入、Provider 管理、系统操作或部署。
  • 2026-08-17 取消与受控重新运行生产复验:取消运行 0f12149807dc47c5a1a389c536905e7b 后,关联任务保持 cancelled;受控重新运行创建不同的运行 a7d6208d00e44b99a87e1944f43bfac8 和新任务,并最终完成。它没有重放原模型调用或复用原运行 ID。
  • 目标与完成边界:定时唤醒、事件触发、幂等、预算、暂停、终止、失败退避、重启恢复、审计和 Console 管理已完成自动化、生产与公网交互验收。阶段五不包含真实求职应用,也不启用 Codex 工程 Specialist。

简化架构

flowchart TB
    Benson["Benson / Console 主动工作区"] --> Policy["主动策略:目标、计划、预算、边界"]
    Policy --> Store["Runtime SQLite:策略、触发、运行和审计"]
    Clock["Runtime 持久调度循环"] --> Store
    Events["已登记事件"] --> Store
    Store --> Boss["AI BOSS:规划、审核和受控任务创建"]
    Boss --> Runtime["现有 Adapter 与任务图"]
    Runtime --> Nomad["Nomad Batch / Worker"]
    Runtime --> Storage["Cloudreve Artifact"]
    Runtime --> Audit["统一事件、Token、证据和告警"]
    Kill["全局暂停 / 单策略暂停 / 立即终止"] --> Store

主动策略是唯一启动依据。模型不能创建、启用、扩大或延长主动策略;自然语言回复不能变成定时器、系统命令或外部写入。

技术与架构选择

方案 可维护性 部署复杂度 性能 学习成本 后续扩展 结论
FastAPI Runtime 内部循环 + SQLite 持久策略与幂等键 与现有交互、任务和预算共用权威状态 不新增服务 单用户规模足够 可扩展事件触发和应用策略 采用
systemd timer 直接调用模型或任务接口 调度分散到主机配置 足够 策略与审计容易漂移 不采用
Nomad Periodic Job 承担 AI BOSS 唤醒 把业务控制循环放入执行调度器 足够 会模糊 Runtime 与 Nomad 边界 不采用
Celery / Redis / 独立消息队列 适合高并发多租户 当前明显过度设计 暂不采用

Runtime 每次扫描持久 next_run_at,通过策略 ID、计划时间窗和触发序号生成唯一幂等键。Runtime 停机期间默认不补跑历史窗口;策略可以显式选择“恢复后最多补跑一次”,禁止追赶式批量重放。

预备工作包

P5-1 主动策略契约

  • 策略固定保存目标、工作流、启用状态、触发方式、时区、预算档位、每日最大运行次数、单次最长时间、数据等级、允许工具和验收标准。
  • 默认策略为禁用;只有 Benson 的管理员 Console 可以创建、修改、启用和停用。
  • 模型、Worker、MCP Tool、告警事件和任务结果均不能修改策略或提高预算。
  • 不使用普通状态 TTL、Run lease、epoch 或审批单;以持久状态、唯一幂等键和明确暂停/终止控制防止重复执行。

P5-2 触发与运行状态

  • 首版支持固定时间表、固定间隔和已登记内部事件三类触发;不接受模型自由生成 Cron 表达式。
  • 运行状态使用 scheduled/queued/running/completed/failed/cancelled/interrupted/suppressed
  • 同一策略默认只允许一个活动运行;重复触发写入 suppressed 事实,不重复调用模型或创建任务。
  • Runtime 重启把未完成调用标为 interrupted,不自动重放模型调用;恢复必须由确定性状态判断或 Benson 显式重试。

P5-3 预算与停止边界

  • 主动运行与人工对话共用 AI BOSS 工作台当前显示的每日 Token 设置,不建立隐藏额度池;工作台设置为无限制时,Runtime 不增加 Token 拒绝。
  • 策略只保留每日运行次数与单次运行时间等可见的运行控制;不保存每日 Token 或任务 Token 上限。
  • 瞬时错误最多自动重试一次;连续失败达到策略阈值后自动停用并告警,不允许无限重试。
  • Console 提供全局暂停/恢复、单策略暂停/恢复、取消当前运行和终止后续运行;暂停状态持久化并在 Runtime 重启后保持。

P5-4 权限与动作白名单

  • 首版只允许读取已登记公开来源、读取 Runtime 状态、生成规划、创建普通受控任务、审核证据和写入统一日志。
  • 当前已登记两种工作流:runtime_status_summary 只生成无模型的脱敏状态摘要;p4_internal_analysis 只创建一项固定主节点 P4-v1 内部分析计划,沿用既有 P4 的 Artifact、检查、证据和 AI BOSS 最终验收闭环。后者只能使用当前 AI Worker 通道,不接受外部来源、文件、Provider 管理、系统操作、部署、后续任务或外部业务写入。它必须等关联任务进入最终验收状态后才把主动运行标记为完成;任务创建后的失败不得重放整个工作流或创建第二项任务。
  • 禁止自动付款、投递、发信、注册账号、交易、删除、修改凭据、修改 Provider/Combo、修改网络、防火墙、Git、部署或任意系统操作。
  • 现有固定 SystemOperationsAdapter 继续保留人工触发或专用 Incident Handler 边界,不因定时唤醒自动放开。
  • 主动循环沿用 P4 的统一会话权威:Runtime 保留原始记录,CLI Gateway 只接受 runtime_redacted 外发上下文;不得因后台运行放宽凭据、基础设施或附件安全边界。

P5-5 Console 与可观测性

  • 阶段四的四区工作台在本阶段增加第五个“主动工作”区;该区是主动循环的唯一 Console 控制入口,展示总开关、策略、下次运行、最近结果、当前工作台额度、连续失败、暂停状态和证据。
  • 顶部提供“全部暂停/恢复”控制;策略行提供“启用/停用”“暂停/恢复”“编辑计划”;当前运行提供“取消”;失败、取消或中断的历史运行提供“重新运行”。没有权限或状态不允许时按钮必须禁用并说明原因。
  • “编辑计划”只允许固定时间表、固定间隔或已登记事件;策略页面显示每日运行次数、单次最长时间,以及“Token 使用当前 AI 工作台设置”。
  • “重新运行”不是重放旧模型调用,也不是重启 Runtime 服务:它必须经过确认,生成新 run_id、新的审计快照和新的幂等键,并引用原运行;同一原运行只允许一个活动重试。
  • 所有写操作由 Runtime 校验管理员身份、当前状态、版本号和幂等键;高影响的全部暂停、终止后续运行和重新运行必须二次确认,成功后立即回显持久状态,重复点击不得产生第二次操作或费用。
  • 所有触发、抑制、模型调用、任务创建、取消、失败、恢复和策略变更写入追加式审计。
  • 页面不展示完整 Prompt、凭据、内部地址或隐藏思维链;只展示结构化目标、阶段、Token、工具、任务和证据引用。
  • 告警只报告真实失败和停止原因,不把普通无任务窗口伪报为异常。

Console 控制与状态映射

控制 可用条件 Runtime 语义 必须显示的反馈
全部暂停 / 恢复 管理员;全局状态允许切换 阻止或恢复新的主动触发,不中断正在运行的任务 生效时间、操作者、受影响策略数
启用 / 停用策略 策略配置完整且预算有效 决定该策略是否参与触发扫描 当前状态、下次运行、禁用原因
暂停 / 恢复策略 已启用策略 暂停或恢复该策略的新触发,不改写历史运行 持久暂停状态、恢复后的下一窗口
编辑计划 没有冲突写入 保存新策略版本,只影响新触发 时区、触发类型、下一运行时间
当前工作台额度 AI BOSS 工作台当前设置 保存的策略不复制 Token 上限;有限额度由工作台统一显示,无限制不产生 Runtime Token 拒绝 当前设置、已用和生效范围
取消当前运行 queued/running 请求现有 Runtime/Nomad 取消路径,结果落为 cancelled 或真实失败 取消进度、最终状态、是否仍有子任务
终止后续运行 策略存在 停用策略并取消尚未开始的排队运行;不删除历史 被终止队列数、策略状态、审计 ID
重新运行 failed/cancelled/interrupted 且没有活动重试 创建引用原运行的新运行,不复用旧调用 新运行 ID、新审计快照、关联原运行

P5-6 无破坏生产验证

  • 使用只读系统状态摘要、公开文档更新检查和受控测试任务验证主动循环,不接入真实求职投递或其他外部业务写入。
  • 至少跨越一次真实计划窗口和一次 Runtime 重启,验证不重复调用、不丢失暂停状态、不追赶式补跑。
  • 验证全局暂停后没有新模型调用、任务或费用;恢复后只执行新的到期窗口。
  • 用桌面和移动端 Playwright 验证上述每个控制的可用、禁用、确认、失败和刷新后恢复状态;断网重试与重复点击不得创建重复运行或重复费用。

分布式底座接入声明

  • 接入结论:接入现有底座,不新增第二调度器、消息队列或执行网关。
  • 使用层:Network 只承载现有受控服务通信;Nomad 仅执行 Runtime 已登记 Batch;Compute 使用 101/103 无状态 Worker;Storage 使用 Runtime SQLite 和 Cloudreve;Observability 使用 Runtime 事件、Token、审计和 API Gateway 脱敏告警。
  • Adapter 归属:复用 NomadAdapter、StorageAdapter、ToolAdapter、FeedbackAdapter、OmniRouteAdapter 和现有固定 SystemOperationsAdapter;主动循环本身不新增通用命令 Adapter。
  • 执行映射:主节点 Runtime 保存策略、触发、运行、当前工作台额度引用和审核;101/103 只执行已登记任务,不保存主动策略或模型凭据。
  • 数据路径:策略、触发、运行和审计进入 Runtime SQLite;临时结果进入 AgentMeshOS-临时,确认的长期证据进入 AgentMeshOS-长期
  • 凭据路径:所有凭据继续留在主节点 root-only 配置;策略、模型、Worker、MCP Tool 和浏览器不可见。
  • 生命周期:策略长期保存且不设置人为 TTL;运行按状态完成、取消或中断;任务结束只清理明确临时数据和一次性凭据。
  • 验收证据:SQLite 迁移与 quick_check、唯一幂等键、触发和抑制事件、Token 结算、Nomad Job/Allocation、Storage 回读、暂停/终止、重启恢复、双层审计、告警与 Console 浏览器证据。

实施步骤

  1. 在阶段四完成归档后重新核对生产基线、备份 Runtime SQLite,并冻结阶段五契约。
  2. 增量增加主动策略、触发和运行表,完成幂等、状态机和重启恢复。
  3. 接入当前 AI BOSS 工作台 Token 设置、任务图、事件、告警和 Adapter,不新增第二套执行路径。
  4. 增加 Console 主动工作区、全局暂停/恢复、策略计划编辑、单策略控制、当前运行取消和受控重新运行。
  5. 先执行时间模拟和故障注入,再进行真实计划窗口与 Runtime 重启验证。
  6. 完成生产和公网验收后归档阶段五,才允许阶段六接入真实应用来源。

验收与发布

  • 代码、文档和运行态检查:覆盖重复触发、跨时区、停机窗口、预算耗尽、连续失败、取消、全局暂停、Runtime 重启中断、受控重新运行、数据分级和未授权动作拒绝。
  • 底座接入的真实证据:至少一个受控 Nomad 任务、一个 Storage 结果、一个抑制事件、一个失败停用事件和一次重启恢复;所有事实可从 Runtime 与 Console 追溯。
  • 安全验收:证明模型不能创建/启用策略、提高预算、解除暂停、调用任意 Action 或执行外部业务写入。
  • 发布顺序:Runtime、Console、Docs;每步分别记录 GitHub revision、镜像摘要、数据库备份、健康和真实运行证据。
  • 回滚和清理:回滚代码不得删除新表或历史运行;回滚后保持策略禁用并保留审计,临时测试 Artifact 按引用清理。

阶段五出口与阶段六进入条件

只有主动策略、定时与事件触发、幂等、预算、失败退避、暂停、终止、重启恢复、审计、无破坏生产验证和公网 Console 验收全部通过,才进入阶段六应用发现与试验

2026-08-18:后续路线更正

上述出口文字保留阶段五制定时的历史事实。现行阶段六已调整为应用中心基础与本地应用样板;旧求职和外部来源发现方向从未实施,不再是 P6 权威计划。