夜间队列
自 v0.8.6 起,可将一批 Agent 任务写入工作区 夜间队列,离线或定时批量跑完,并用 Gate-as-Code 验收;失败可按策略回滚并生成早会 briefing。
在哪里操作
| 入口 | 作用 |
|---|---|
| 侧栏 夜间队列 | 入队、查看状态、运行队列、生成 briefing |
| 设置 → 定时任务 | RRULE 触发「夜间队列入队 / 运行夜间队列」 |
| CLI | zagens queue add|list|run|briefing |
队列持久化在工作区 .zagens/night_queue.json;事件日志 .zagens/queue_events.jsonl;briefing 合并进 .zagens/handoff.md。
典型流程
- 入队 — 填写 prompt;可选 Gate 预置 / 内联谓词;可选 git worktree 隔离。
- 运行队列 — 按序(或受限并行)执行 Agent + 门禁。
- 门禁 — 通过则标记已通过;失败可触发快照回滚。
- Briefing — 汇总结果写入 handoff(可用
--office导出 Office 包)。
任务状态:待运行 / 运行中 / 已通过 / 失败 / 已回滚。
CLI 示例
# 入队(内置预置门禁)
zagens queue add "修复失败的测试" --gate-preset rust-cargo-smoke
# 自定义门禁文件
zagens queue add "补文档" --gate-file path/to/gate.toml
# 内联谓词
zagens queue add "确保 README 存在" --gate file_exists:path=README.md
zagens queue list
zagens queue run
zagens queue briefing
zagens queue briefing --office
常用标志:--no-worktree、--max-parallel N、--no-briefing。完整说明见 Headless CLI。
与定时任务、Hooks
| 触发类型 | 行为 |
|---|---|
| 夜间队列入队 | 到点把 prompt(及可选 gate)写入队列,不执行 |
| 运行夜间队列 | 到点跑 pending 任务(Agent + gate + 可选 briefing) |
建议:白天/傍晚用「入队」定时任务攒活,夜间用「运行」定时任务批量消化。
Hooks 事件:night_queue_enqueue、night_queue_run_start、night_queue_run_end — 见 Hooks。
Gate 预置(内置)
| 预置 ID | 用途 |
|---|---|
rust-cargo-smoke |
cargo check + cargo test |
go-build-vet |
go build / go vet / tests |
deliverables-min |
deliverables/** 存在(无 shell) |
go-microstack-migrated |
迁移示例门禁 |
列表与校验:zagens gate list / zagens gate validate — 见 Gate-as-Code。
建议
- 高风险改动开启 worktree 隔离,避免污染主工作树。
- 门禁优先用可重复的预置或团队共享 TOML,少用手写一次性脚本。
- 无人值守前先在侧栏手动跑通一轮,再挂定时任务。
相关:Gate-as-Code · 定时任务 · Hooks · CLI