主脑只做统筹 · 重活全派子代理 · 随时应答
现象:给 AI 助手派了个重活,然后发消息它不回、想插话只能排队、等十几分钟才回一句。 根因:不是模型慢,是主脑把重活放在前台跑,整个回合被占死——用户的消息只能在后面排队。 解法:把「重活外派 + 随时应答」变成一条写进 Agent 指令里的硬纪律,并用脚本把它幂等地落到本机。
平台无关:规则块本身与平台无关,任何支持指令文件 / 系统提示 / 子代理的 AI Agent 都适用 (Claude Code / Codex / Cursor / WorkBuddy / Hermes / 其他同类平台)。落地器只在有实测把握的两个落点直接写文件,其余平台走「导出可粘贴规则块」路径——不猜配置路径、不编造字段。
何时用
- 用户抱怨"等太久 / 插话就卡 / 没人应答 / 我要经常跟你聊天";
- 要把"重活派子代理、主脑随时应答"制度化到本机的一个或多个 Agent 实例;
- 要给某个实例加装这条机制(用
scripts/provision_agent_responsiveness.py),并想验证它真生效(用scripts/audit_agent_responsiveness.py)。
病根
主脑把重活(批量抓取、多文件处理、长脚本)放在前台干 → 整个回复回合被占死:
- 前台长命令期间,用户消息只能排队;
- 有些平台在有子代理在跑时,会把用户插话降级成"排队",要等整回合结束才被读到;
- 于是用户的体感是"这助手不搭理我"——而它其实只是在埋头干活。
结论:要让人随时能找到助手,就必须让助手不亲自下场干重活,以及在它确实在忙时,保留一条即时的插话通道。这两件事要一起做。
三件事一起做(缺一不可)
1. 把规则块写进 Agent 的指令层(置顶)
规则块全文见 templates/agent-ops-rules.md(脚本会用它)。核心六条:
- 四级分流(先判级再动手):L0 问答→直接答不派|L1 单步快活(≤1 工具且 ≤20 秒)→直接干|L2 多步/长活/批量/联网→一律派|L3 需用户拍板→先回一句"这要您定 X"。
- 派完立刻回一句并结束回合(禁止干等;干等=没派)。
- 超过 60 秒的命令放后台(前台长命令会把整个回合占死)。
- 子代理只回收结论 + 产物路径;整合分析由主脑做。
- 用户插话最高优先:先立刻应一声,能答就答,绝不让用户干等。
- 需要提问/拍板的活留在主脑(子代理问不了人)。
规则块用
<!-- agent-ops-rules:v1 -->…<!-- /agent-ops-rules -->包裹,落地器靠这对标记做到幂等:重复跑只替换自己标记过的区块,不碰你的其他内容。
2. 保留一条即时的插话通道(平台相关)
不同平台对"AI 正在忙时用户插话"的语义不同,效果差别极大:
| 插话语义 | 实际体验 | 是否满足"随时应答" |
|---|---|---|
| 等到整回合结束才被读到 | 用户在干等 | ❌ |
| 附在"最后一条工具结果"上,等当前这批工具跑完才送达 | 主脑在前台跑长命令时,会一直卡到命令退出 | ❌(长命令场景失效) |
| 立即中断当前生成 / 当前请求,把用户的话当新消息注入,且已完成的工作保留 | 插话几乎即时生效 | ✅ |
判据(一句话):要"随时能插话",就必须选择立即中断 + 保留已完成工作的语义;并且配合"长命令放后台"这条纪律——两条一起才成立。
(Hermes 的对应键名与实测细节见 references/hermes-implementation.md,其他平台请在你平台的设置里找同语义的选项。)
3. 子代理并发度要够(否则"全派出去"会被坑位卡住)
"重活一律外派"的前提是能同时派出几个。并发度太低,外派就变成排队——用户照样等。
- 把并发上限调到你能接受的水平(常见 3–6);超上限的后果各平台不同(有的整批拒绝、有的截断),所以分批派比硬顶上限安全。
- 并发度直接关联成本:每个子代理独立计费,按需设置,别无脑拉满。
4. 改完必须让 Agent 重新加载指令
指令文件 / 系统提示通常是进程启动时读一次。写完不重启 = 没生效:
- 重启对应的 Agent 进程 / 网关 / 会话(按你平台的方式);
- 重启后验证:让 Agent 复述一次这条纪律,能说出来才算真加载(而不是"我觉得它读了")。
一键落地 / 体检
# ① 预演(默认行为,不写任何文件):看看会动哪些文件
python3 scripts/provision_agent_responsiveness.py
# ② 真正写入(自动备份 + 幂等;探测不到平台时导出可粘贴规则块)
python3 scripts/provision_agent_responsiveness.py --apply
# ③ 强制导出可粘贴规则块(给 Codex / Cursor / WorkBuddy / 未知平台用)
python3 scripts/provision_agent_responsiveness.py --apply --export --out ./agent-ops-rules.md
# ④ 体检:规则块是否存在 / 是否置顶 / 是否与当前模板一致
python3 scripts/audit_agent_responsiveness.py
落地器行为约定(脚本里写死,可复核):
| 约定 | 说明 |
|---|---|
| 默认 dry-run | 不加 --apply 绝不写盘 |
| 自动备份 | 写入前生成 <文件名>.bak-agent-ops-<时间戳> |
| 幂等 | 有标记则比较内容:一致→跳过;不一致→只替换标记区块 |
| 不覆盖用户内容 | 只在文件顶部插入(跳过 YAML frontmatter),不删你任何原文 |
| 不猜路径 | 只写实测过的两个落点(Hermes SOUL.md、Claude Code ~/.claude/CLAUDE.md);其余平台导出粘贴块 |
| 纯标准库 | 只用 argparse / pathlib / json 等标准库,Windows / macOS / Linux 通用 |
体检脚本行为约定:逐项核对文件层面能核实的事实(存在 / 是否被标记 / 是否置顶 / 内容是否最新);探测不到任何受支持平台时,如实输出「未检测到支持的平台」并以退出码 2 返回——绝不假报通过。
平台适配层(工具名对照表)
| 抽象动作 | Hermes(已实测) | Claude Code | Cursor / Codex / WorkBuddy | 其他同类平台 |
|---|---|---|---|---|
| 规则块落在哪 | <HERMES_HOME>/SOUL.md(及 <HERMES_HOME>/profiles/<p>/SOUL.md) | ~/.claude/CLAUDE.md | 按你平台的全局指令 / 系统提示位置 | 导出 agent-ops-rules.md 后粘到系统提示 |
| 派子代理 | delegate_task | Task / 子代理工具(按你平台的子代理工具映射) | 按你平台的子代理 / 任务工具映射 | 按你平台的子代理 / 任务工具映射 |
| 长命令放后台 | 后台执行 + 完成通知 | 后台任务 / 命令工具的异步模式 | 按你平台的后台执行方式 | 用系统的后台进程 + 落盘日志 |
诚实边界:Hermes 一列的键名与语义来自本机实测;Claude Code 的
~/.claude/CLAUDE.md为实测路径。 Cursor / Codex / WorkBuddy 的工具名各版本可能变,本技能不编造命令或字段名——请按上表自行映射。 跨平台派活纪律的更完整版本见同一作者的subagent-first技能。
坑(跨平台通用)
- 指令文件只在启动时读一次:改完不重启(或没重启到正确的实例)=没生效。别拿"文件里明明写了"当生效证明。
- 插话语义选错:选了"等这批工具跑完才送达"的语义,再叠加"主脑前台跑长命令",用户体感就是没人理。必须选"立即中断 + 保留已完成工作"。
- 环境变量可能压过配置文件:很多平台是"env 优先于 config"。改完先确认实际生效来源,别只看配置文件。
- 假重启:只终止了包装进程 / 计划任务实例,真正的子进程还在跑旧配置。验证要看进程启动时间,不是看进程数。
- 并发上限未核实:以为"都能派出去",实际超上限整批被拒或被截断 → 分批派,并核实当前生效的上限值。
- 只装一处:多实例 / 多 profile 的指令文件与技能目录是各自独立的,要逐个写(落地器会遍历 Hermes 的各 profile,其他平台请按你的实例数逐个装)。
- 别用"禁用主脑的重工具"来逼它派活:多数平台上子代理的工具集是主脑的子集(不能拥有主脑没有的工具),禁了等于自废武功。
- 假报通过:体检脚本如果只检查"文件里有没有这几个字",很容易在内容过期 / 被后续改动覆盖时仍报通过。核对内容是否与当前模板一致,探测不到就如实说"未检测到支持的平台"。
验收清单(别人问"真生效了吗"时照着答)
A. 文件层(脚本可自动核)
- 规则块目标文件存在,且能 grep 到
agent-ops-rules:v1标记; - 规则块置顶(位于文件前 1/3);
- 规则块内容与当前模板一致(不是旧版残留);
- 重复跑落地器:不产生第二份规则块,也不覆盖你已有内容;
-
audit_agent_responsiveness.py全绿(退出码 0);探测不到平台时为退出码 2 + 明确提示。
B. 运行时(人工核)
- 重启后让 Agent 复述这条纪律 → 能说出来 = 指令真被加载;
- 给 Agent 派一个重活 → 它立刻回一句"已派出(谁在干什么)",而不是埋头干十几分钟;
- 重活进行中用户插一句话 → 立刻得到回执,且回复未被打断;
- 重活完成后:产出能被主脑回读验证(不是"自报完成")。
C. 边界
- 用户插话期间,正在跑的子代理没有被级联取消(或被取消的部分有明确交代);
- 需要用户拍板的活没有被派给子代理。
许可
MIT License。可自由用于个人与商业项目,保留作者署名即可。
🙋 关于作者
九品锦锂e | 把踩过的坑封装成"拿来就能跑"的 skill,不写教科书。这个 skill 是我自己每天在用的版本。
微信:ly5419495(加时备注「SkillHub」,我优先通过) 公众号:初五Agent(微信搜一搜,复盘和方法都写在那儿,不加微信也能读)
我另外做的几个能直接跑的工具,都放在这个货架页(复制到浏览器打开): https://skillpay.alipay.com/public/jiupinjinlie
用的时候卡住了、或者有别的场景想让我封装成 skill,按上面任意方式找我就行。

本 Skill 为完整版本,无功能删减。