无头 Goal 与跨进程控制
在已录制会话中启动、检查和恢复目标,消费 goal_state 事件。
无头运行可把完整 prompt 设置为 /goal 命令。Goal 随会话保存,后续进程通过 --continue 或 --resume
创建与查看
qwen -p "/goal Complete the release checklist and verify every item."
qwen --continue -p "/goal"--continue 选择当前项目最新会话;有多个自动化任务时,应使用已记录 ID 显式恢复,以免作用于另一个最新会话。
| 控制 | 行为 |
|---|---|
| /goal | 读取保存状态,不调用模型 |
| /goal | 创建/替换并开始无头工作 |
| /goal edit | 修改未完成目标,结果仍 active 时立即工作 |
| /goal pause | 暂停 active Goal,不调用模型 |
| /goal resume | 恢复符合条件的 Goal 并工作 |
| /goal clear | 直接清除,不确认、不调用模型 |
这些命令均可作为 qwen --continue -p "<control>" 的完整 prompt。目标应写明确完成条件,也可先用 /goal-draft 起草再决定是否设置。
预算
运行时调度的 Goal 续接段不计 --max-session-turns,真实用户消息仍计。显式 --max-wall-time 和 --max-tool-calls 继续生效,超过时先暂停活动 Goal,再按预算错误退出。
Goal 自身的 token、轮数和活动时长窗口是另一组限制,见Goal 窗口。
事件
stream-json 输出在每次状态变化时发出 stream_event,event.type 为 goal_state,不要求 --include-partial-messages。旧 active_goal 兼容投影已不再发出,自动化应读取 goal_state。
这是普通无头 CLI 的协议。ACP 驱动的 IDE/Web Shell 使用 sessionGoalControl 扩展控制,在 session/update 的 _meta.goalState 接收变化,不能把 CLI JSONL 事件名称直接套用到 ACP。