跳转到内容

自主监督参考

自主监督参考页描述公开配置面和行为边界。需要先理解概念时,阅读自主监督

GET /api/v1/session-os/main-brain/autonomous 返回:

{
"autonomous": {
"enabled": true,
"turns_used": 3,
"max_turns": 60,
"task_hint": "把当前文档 PR 盯到闭环"
}
}

autonomous 可以是 null,表示从未开启过自主监督。

字段 类型 说明
enabled boolean 当前是否启用自主监督。
turns_used integer 已经消耗的自动监督轮次数。
max_turns integer 本次自动监督轮次上限。默认 60。
task_hint string 主脑记录的本次监督目标。

这些工具暴露给主脑,用于控制自主监督。

工具 参数 说明
enable_supervision task_hint?, max_turns?, scope_mode?, scope_session_ids? 开启自主监督。默认最大 60 轮。重复调用会重置 turns_used
finish_supervision summary? 关闭自主监督,并记录本次收尾摘要。
supervision_status 只读查询当前监督状态、轮次和范围。
set_supervision_scope mode, session_ids? 设置哪些会话会唤醒主脑。

scope_modeset_supervision_scope.mode 使用同一组主脑工具模式,见监督范围模式

方法与路径 Body 返回 说明
GET /api/v1/session-os/main-brain/autonomous { "autonomous": ... } 查询自主监督状态。
POST /api/v1/session-os/main-brain/autonomous { "enabled": true, "task_hint"?: string, "max_turns"?: number } { "autonomous": ... } 开启或关闭自主监督。UI 开关使用这个端点。
PATCH /api/v1/coding-sessions/{session_id}/supervision { "excluded": true / false } 会话状态 排除或纳入单个会话。excluded=true 表示不盯它。
POST /api/v1/coding-sessions/supervision-scope { "mode": "...", "session_ids": [...] } 范围设置结果 批量设置监督范围。支持主脑工具模式;UI 还会用 invert 做当前可见列表反选。

关闭自主监督时,POST /api/v1/session-os/main-brain/autonomous 的 body 为:

{
"enabled": false
}

/supervise [任务目标] 会开启自主监督,并立即触发一次初始监督轮。

/supervise 盯住当前 PR 的 CI、链接检查和最终合入,遇到失败先定位原因

[任务目标] 会作为 task_hint

主脑工具只暴露 allonlyexcept。REST 批量范围端点还支持 UI 专用的 invert

模式 用途 session_ids
all 清空排除列表,所有会话都能唤醒主脑。 忽略
only 只监督列出的会话,其余活跃会话全部排除。 必填,且至少一个有效 ID
except 排除列出的会话,其余会话纳入监督。 必填,且至少一个有效 ID
invert REST/UI 专用。反选当前可见会话范围。 当前可见会话 ID

onlyexcept 如果没有解析出任何有效会话,会失败而不是静默写入错误范围。

会话 ID 可以使用完整 cs_... ID。主脑工具也支持 list_sessions 展示的短别名,例如 cc1cx1

触发源 会唤醒主脑吗 说明
会话进入 待处理 通常表示需要主脑继续派发或收尾。
会话进入 待授权 通常表示运行时或工具权限需要处理。
会话进入 待拍板 通常来自人工问题或需要决策的状态。
worker exit 视情况 如果仍有其它活跃的被监督 worker,会触发主脑检查;如果已经没有活跃被监督 worker,则走收敛关闭。
report_progress(working) 普通心跳不会触发,避免噪声。
report_progress(completed) 里程碑完成后主脑可检查产出或派发下游。
report_progress(blocked) 阻塞会升级给主脑处理。
report_progress(needs_review) 需要审查时唤醒主脑。
notify_blocked 明确阻塞,始终触发。
ask_human 问题会回到主聊天,并唤醒主脑。
request_context 只是上下文请求,不作为监督触发源。
stall watchdog 当被监督会话长期停在需要处理的状态时兜底触发。

触发会经过去抖和单飞保护。短时间内多个 worker 同时变化,通常只会合并成一个监督轮。

字段 类型 默认值 说明
auto_supervise boolean true Workflow run 启动时自动开启主脑监督。run 收敛后,如果这次监督是 Workflow 自动开启的,就自动关闭。

如果用户已经手动开启自主监督,Workflow 会复用当前监督态,不会在 run 收敛后误关用户手动开启的监督。

Workflow 节点推进由 Pipeline 引擎完成;自主监督只负责观察、异常干预、人工沟通和收尾。

变量 默认值 说明
JARVIS_SUPERVISION_RESTORE_TTL_S 900 后端重启后允许恢复监督态的快照新鲜度上限,单位秒。
JARVIS_SUPERVISION_STALL_WATCHDOG_INTERVAL_S 90 stall watchdog 扫描间隔,单位秒。小于等于 0 表示禁用。
JARVIS_SUPERVISION_STALL_THRESHOLD_S 900 会话停在需要处理状态多久后视为可触发兜底监督,单位秒。
JARVIS_SUPERVISION_STALL_COOLDOWN_S 1800 watchdog 对同类停滞触发后的冷却时间,单位秒。
JARVIS_SUPERVISION_STALL_WATCHDOG_STARTUP_DELAY_S 45 后端启动后延迟多久再开始 watchdog 扫描,单位秒。

这些变量是实例级运行参数,普通用户通常不需要修改。

边界 说明
权限 自主监督不会绕过运行时权限、Agent Profile 权限或本机权限。
高风险动作 主脑仍应在删除、发布、合并、外部通知等不可逆动作前问用户。
无限循环 默认 60 轮上限、去抖、单飞锁和自动收敛用于防止无限唤醒。
重启恢复 短时间后端重启可能恢复监督态,但没有可恢复 worker 或快照过期时不会恢复。
旧自主引擎 自主监督不是旧 AutonomousEngine,也不是通用后台任务调度器。