Claude Code 的后台任务调度器
agentq 把各项目 docs/BACKLOG.md 里的待做条目交给独立的 Claude Code 进程实现,测试和审查通过后,合并到本地默认分支。
$ curl -fsSL https://github.com/dodo258/agentq/releases/latest/download/install.sh | sh下载预编译程序并校验 SHA256,不需要 sudo 和 Go,只依赖 Git。已安装时重跑同一条命令就是升级,配置和任务数据保留。
v0.1.0MITGo 单文件macOS · Linux
$ curl -fsSL https://github.com/dodo258/agentq/releases/latest/download/install.sh | sh✓ 下载 agentq_darwin_arm64.tar.gz✓ 校验通过✓ 安装程序和技能agentq 装好了。· 你交代的任务由官方 CLI 的独立进程完成,它们能读写这个用户的所有文件(包括本地密钥)、运行命令。· 任务内容会发给你所用的模型服务,用你自己的账号额度。agentq 本身不收集数据。· 没有待做时什么都不做,不消耗额度。按回车同意并启动,输入 n 只安装不启动:⏎✓ 后台已启动,每 5 分钟看一次待做。$ agentq add "做一个单页的产品介绍网页(大方向) —— 给一个叫「加法匠」的小工具做介绍页"$ agentq status调度:正常额度:会话 42%;本周 72%运行中(1/2):trial-greeting「实现 Greeting(name string) string」门:trial-launchd「做一个单页的产品介绍网页(大方向)」过门合并,合并提交 72f2bffb8398安装和用法
装一次。之后在 Claude Code 里说一句,活就排进队。
安装结束时,程序说明三点,再问是否启动
按回车同意并启动,输入 n 只安装。没有终端时(CI、由 agent 代装)只安装,不替你同意,之后运行 agentq start 启动。没有 Claude Code CLI 或没有登录时,脚本运行官方安装命令和 claude auth login。
由 agent 代装时,把这句话发给它
读 https://github.com/dodo258/agentq/blob/main/llms.txt,帮我装 agentq
派活
在项目目录打开 Claude Code(CLI 或桌面端),说明要做什么:
派活:导出失败时重试 3 次,断网时要能看到重试日志
dispatch 技能把这句话写成带验收标准的条目,提交到 docs/BACKLOG.md 并启动后台任务。项目要是 Git 仓库,不要求放在 ~/projects 下。
也可以在终端操作:
agentq add "..." # 往当前项目的「待做」加一条agentq run my-app # 立刻启动该项目的一条待做agentq new "..." # 按一句话新建项目并做出第一版agentq status # 额度、运行中的任务、各项目待做agentq stop <任务id> # 停止一个任务,已有改动保留agentq pause # 暂停启动新任务,agentq resume 恢复agentq doctor # 只读检查安装、CLI 和配置工作流程
agentq 只管调度、过门、合并和记录,不写业务代码。
实现和自测由 Claude Code 按随附的 agent-task 技能完成,审查由另一个 Claude Code 进程完成。
- 你说一句Claude Code 会话、Telegram,或命令行
agentq add - docs/BACKLOG.md每个项目一份,从上往下做,随仓库提交
- agentq tick每 5 分钟运行,任务结束时也运行;检查暂停、额度、熔断
- claude -p独立进程、独立 worktree:认领、实现、自测,写
ready.json后退出 - 过门在合并态上运行
.agentq/verify,另开进程审查;都过了,由引擎合并 - 收尾,告诉你写进当天汇总和早报;Telegram(可选)、
agentq status
- 门没过:退回任务接着改;还不过或判不了,等你定。
- 中断、撞上限:用同一会话续跑。
- 每 5 分钟
- 调度器运行一次,任务结束时也立刻运行,排队的条目几秒内开始。
- 2 个 / 1 个
- 默认全局同时运行 2 个任务,同一项目 1 个。
- 不推送
- 调度器不执行
git push,合并只发生在本地默认分支,推送远程要另外授权。 - 要开机
- 任务不依赖终端或客户端,机器要保持开机。
质量门
任务只能把分支做到可合并。合不合并,由 agentq 判定。
任务做完写一份 .agentq/ready.json。下面五道门都在分支和最新默认分支合并后的代码上运行。
| 质量门 | 什么时候运行 | 检查内容 | 默认档位 |
|---|---|---|---|
| 测试门 | 每次 | 运行项目的 .agentq/verify | 挡合并 |
| 审查门 | 只改 markdown 文档时跳过 | 独立进程审查改动,阻塞项要有文件、行号、证据和复现步骤 | 挡合并 |
| 补丁门 | 改动类型是修复时 | 同一模块 30 天内第三次修复。调成 error 后退回任务,要求重写该模块 | 只记录 |
| 界面门 | 改到界面文件时 | 项目脚本截图,agentq 检查不是空白,审查进程只对渲染坏、溢出、看不清和占位内容阻塞 | 只记录 |
| 成品门 | agentq new 的第一版和标了「(成品)」的条目 | 运行项目的烟测 .agentq/smoke,通过后生成交付单 | 只记录 |
项目可以在 .agentq/gates.json 调整档位。门没过时,原因退回任务,同一会话接着改,最多 2 轮。仍不过或判不了,条目标记为卡住,等你决定:
agentq gate report <任务id> # 查看原因agentq gate pass <任务id> --reason "..." # 放行这一次agentq gate rerun <任务id> # 不改代码重新运行质量门agentq gate abandon <任务id> # 放弃,分支保留
任务绕过质量门自己合并的不算通过,agentq 会标出来并通知你。质量门针对的是模型偷懒和误操作,不是安全边界:任务在你的机器上有完整权限。
断了能续
进程退出、机器重启、撞上用量上限,都从同一会话接着做。
| 情况 | 处理 |
|---|---|
| 进程中途退出、机器重启 | 核对 BACKLOG 后用同一会话续跑,已合并的不重做 |
| 撞上用量上限 | 冷却到重置时间,再用同一会话续跑 |
| 额度快用完 | 到 90% 时不启动新任务,agentq run 到 98% 时拒绝 |
| 任务启动后立刻失败 | 连续 3 个任务在 3 分钟内退出时熔断,暂停启动 30 分钟,再次失败时时长翻倍,最长 4 小时 |
| 任务失控 | 单次运行有预算上限,子代理失控时自动停止,超时默认 4 小时。已有改动保留 |
| 状态文件损坏 | 读不了时不收尾也不启动。内容损坏时备份坏文件,按任务记录重建,那一轮不启动新任务 |
| 运行数据增长 | 任务记录默认保留 90 天,日志定期截断 |
这些路径有假 CLI 和暴力测试覆盖,真实撞限还没有跑过。暴力测试会杀进程、写坏状态文件、制造并发、写满磁盘、跳变时钟,依赖全部是假的,目前只在 macOS 上跑过。
Telegram
可选。配好后可以给机器人发需求,也可以带截图。
- 回复「要你定」的消息或点按钮,决定写回条目,任务继续。
- 回复任务提醒,接上那个任务。
状态、额度、暂停、恢复由代码直接回答,不消耗额度。- 打开
router_enabled后,发一句新项目的描述,agentq 新建项目并做出第一版,合并后推送结果。这条的真实 Telegram 往返没有验证过。
每天最多推送 10 条,23:00 到 08:00 的消息攒到早上发,同类消息 30 分钟内合并。没配 Telegram 时用本机通知。
完成推送和决定卡片按钮在真实 Telegram 上走通,回复链和完整对话往返只用假服务测过。

支持范围
每一项验证到哪一步,如实写。
| 项目 | 状态 |
|---|---|
| Claude Code CLI | 默认后端。2.1.316 在 macOS 上真实走到合并,包括审查门、界面门、agentq new、launchd 后台和桌面端派活 |
| Codex CLI | 手动选择。codex-cli 0.166.0 在 macOS 上真实走到合并和 SIGTERM 续跑。Router、闲时找活、主动感知、发版准备在它上面不启动,没有美元上限 |
| opencode | 实验,真实的 opencode 没跑过 |
| macOS | arm64 是主要平台。amd64 能交叉编译,没有在 Intel Mac 上跑过 |
| Linux | 需要 systemd --user。amd64 在 CI 上跑测试和真实 systemd 验收,没跑过真实任务。arm64 能交叉编译 |
| WSL、Windows | WSL 未验证,Windows 不支持 |
还没有真实验证的
- 真实撞限和令牌失效
- Codex 桌面端派活
- Linux 上的真实任务和暴力测试
- opencode 的任何运行
- 门和裸 CLI 在真实项目上的对比
权限和限制
- 无人值守写代码需要
bypassPermissions。任务以你的系统用户运行,有你的全部文件权限,能读本地密钥,能运行任意命令。提示词和 deny 规则不是安全边界。 - 在高敏感的机器上,用单独的系统用户或容器运行,不放生产凭据。
- 机器要开着。睡眠和重启后任务继续,关机期间不运行。任务消耗你自己的模型额度。
- 命令输出、推送和 BACKLOG 的节标题目前是中文,条目内容不限语言。