主腦只做統籌 · 重活全派子代理 · 隨時應答
現象:給 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 為完整版本,無功能刪減。