07. 并行工作

后台任务、队列与循环

工作还在进行时,让提示栏仍可用:

  • **后台命令和子助手**不占用前台这一轮。
  • **提示队列**在一轮已经在跑时接住你打的字。
  • /loop 调度周期性提示。只有会话公布了 scheduler_create 工具时,它才可见、可运行。

/queue/tasks 是 pager 内置命令。它们把只读快照写进滚动记录。每种渲染模式都可用。交互窗格(queue、tasks)在全屏 TUI 里;精简模式改用斜杠命令。

按你何时要答案来选

编译、测试套件或开发服务器不该冻住对话。你已经知道要发的跟进,不该等你盯着转圈。每隔几分钟的健康检查,不该是你手工反复打 /loop

需要
一条长命令,然后继续说话后台执行(background: trueCtrl+B
已经写好几条提示队列(忙时接着打,或用 queue 窗格)
定时做同一项检查/loop(需要 scheduler_create
事件流(日志、文件监视)助手的 monitor 工具,不是 /loop

把正在跑的命令放到后台:`Ctrl+B`

前台 shell 命令正在跑时,Ctrl+B 把它送到后台。这是唯一的后台快捷键。进程继续跑;结束时你会收到通知。在 tasks 窗格(Ctrl+G)或用 /tasks 跟踪。

助手也可以一开始就把命令放在后台(run_terminal_commandbackground: true),稍后调用 get_command_or_subagent_outputwait_commands_or_subagentskill_command_or_subagent 停止任务或子助手。

提示队列:`/queue`

一轮正在跑时提交,Matcha 会把文字入队,等这一轮结束再发出。

  • **全屏:** Ctrl+; 切换 queue 窗格(部分 macOS VS Code 系终端以 Ctrl+4 为主;Ctrl+' 是备选)。在那里编辑和重排。
  • **任意模式:** /queue 追加一个系统块,列出已排队的提示,或显示 Queue is empty. 它不编辑队列。会话范围:没有活动会话 → 报错。

快照正在跑的工作:`/tasks`

/tasks 以系统块列出:

  • 工作流运行(如有)
  • 子助手
  • 后台命令
  • monitor 与已调度的 /loop 任务

终止或接入不在 /tasks 里做;用全屏 TUI 的 tasks 窗格(Ctrl+G)。与 /queue 一样是会话范围。

助手看起来空闲时,提示栏上方的仍在运行状态行会计数命令、monitor、循环和后台子助手。完成写入记录;计数只留在那一行。

周期性提示:`/loop`

/loop [interval] <prompt>

/loopscheduler_create 门控。会话公布的工具集里没有它时,菜单隐藏 /loop,打出来也不会跑。空参数打印用法;不会捏造默认间隔。

/loop 5m Check if the test suite passes and report any failures
/loop 2h Summarize new commits since the last check
/loop check deploy status every hour

开头形如 <number><s|m|h|d>(非零)的词,会当成屏幕预览的节奏。其他一切——包括两头的自然语言——都交给模型,由它变成 scheduler_create。你没给节奏时,Matcha 会问;它不会自己挑一个。

间隔含义
Ns秒;小于 60 的值提到 60
Nm分钟
Nh小时
Nd

/loop 让调度器立刻触发,然后重复。每次触发都是新的一轮(在这段对话里;若 [scheduler] background_loops 开启——这是默认——则在分离的后台子助手里)。周期性任务 **7 天后**自动过期。最多 **50** 个已调度任务可以同时处于活动。用创建时的任务 id 调 scheduler_delete 取消。要改循环,用同一 id 再调 scheduler_create;不要删了再建。

相关助手工具

monitor 把过滤后的命令输出以对话通知的形式流式送来。管道保持按行缓冲(grep --line-buffered),过滤器收紧;太吵的 monitor,Matcha 可以停掉。持久 monitor 用 kill_command_or_subagent 停止。

本构建没有

云端托管的循环或远程调度器不是这里的产品面。会话有本地 scheduler_create 工具时,/loop 对着它跑。Cloud Agent(cloud_agent)已关闭。