Files

7.8 KiB
Raw Permalink Blame History

name, description, type
name description type
parallel-feedback 多班级并行写课评调度器。当用户要同时给2个及以上班级写课评,说「并行写课评」「多班课评」「开窗格同时写课评」「三个班一起写」时使用。通过 Herdr 分窗格启动多个 pi 助手,每个助手写一个班的课评;调度员(主会话)负责开窗格、派任务、转发提问、统一合并周汇总、验收汇报。要求 HERDR_ENV=1 环境。 skill

🚦 多班课评并行调度技能

用途

橙子手上有多份课评要写时,不再逐个班串行等待,而是:

┌──────────┬──────────────┐
│ 🤖 调度员 │ 🤖 助手A:班1 │
│ (主会话)  ├──────────────┤
│          │ 🤖 助手B:班2 │
│          ├──────────────┤
│          │ 🤖 助手C:班3 │
└──────────┴──────────────┘
  • 每个助手独立运行完整的「课评生成」技能流程(含质检、归档)
  • 中途助手提问时进入 blocked 状态,调度员负责把问题带回来、把答案传过去,橙子无需切窗口
  • 共享文件(周汇总、汇总网页)由调度员最后统一处理,避免多助手写同一文件冲突

第0步:环境检查(必须)

test "${HERDR_ENV:-}" = 1
  • 通过 → 继续本技能流程。
  • 失败(不在 Herdr 中运行):告知橙子「当前不在 Herdr 环境里,没法开窗格并行」,退回单班串行模式:在当前会话里按「课评生成」技能逐个班顺序写。

第1步:收集各班信息

向橙子收集每个班的一组信息(可一次性问完):

项目 说明 示例
班级全名 课程编号+老师+星期时间 CSP04橙子周六0830
授课日期 必须与校宝 teaching_date 一致 2026-10-25
课次 第几课 05
补充材料 录音转写 docx 位置 / AIAGENT 作品文件夹路径 / 其他特殊要求 可选

出勤无需问——「课评生成」技能会自动调校宝 API。 CSP 班按 v2 规则走 class-feedback-report 提交诊断流程,脚本自动读 .env 凭据。

第2步:开窗格

布局规则:宽屏第 1 个窗格 right(向右分),后续依次对前一个新窗格 down(在右列向下堆叠);窄屏全部 down。避免切出过窄的列。

# 第1个窗格(从当前会话向右分)
herdr pane split --current --direction right --cwd "$PWD" --no-focus
# 从 .result.pane.pane_id 拿到新窗格ID,如 w5:p2

# 第2个窗格(对第1个新窗格向下分)
herdr pane split <第1个新窗格ID> --direction down --cwd "$PWD" --no-focus

# 第3个窗格(对第2个新窗格向下分)
herdr pane split <第2个新窗格ID> --direction down --cwd "$PWD" --no-focus

⚠️ 必须带 --cwd "$PWD"(保证助手在项目目录启动,能加载项目技能)和 --no-focus(不抢橙子的屏幕焦点)。

第3步:启动 pi 助手

在每个新窗格里启动一个 pi 实例:

herdr agent start <助手名> --kind pi --pane <窗格ID>
  • 助手命名规则:[a-z][a-z0-9_-]{0,31},建议带上班级缩写便于记忆,如 keping-csp04am、keping-csp04pm、keping-ai03sun
  • 启动默认 30 秒超时;返回 agent_not_ready 时不要慌,用 herdr agent get <助手名> 轮询,等状态变为 idle 再派任务
  • 新 pi 会自动加载本项目 .pi/skills/ 下的技能(含课评生成)

第4步:派发任务

对每个助手发送任务(--wait 等到它进入 idle/done/blocked):

herdr agent prompt <助手名> "<任务文本>" --wait --timeout 120000

任务文本模板(必须完整包含以下要素):

请使用「课评生成」技能,为【班级全名】写【日期】第【N】课的课评。
补充材料:【录音文件位置/作品文件夹/其他要求,没有就写"按技能默认流程获取"】

【并行模式特别约束——必须遵守】
1. 只写本班自己的文件:个人课评、请假/未到记录、班级总结、学生画像更新。
2. 【禁止】写任何共享文件:周课评汇总(output/课评汇总/ 或 E:/cc 下的汇总)、
   课评汇总网页、E:/cc/3笔记 —— 这些由调度员统一处理,你跳过即可。
3. 全程自动执行(出勤API、质检、归档),不要中途停下来问我确认。
4. 遇到必须人类回答的问题时,直接清晰列出问题后停住等待。
5. 完成后输出「完成报告」:逐条列出本次保存的所有文件路径。
  • 提交成功≠开始干活,--wait 会等到第一个稳定状态
  • 返回 blocked → 进入第 5 步问答转发
  • 返回 timeout/stalled → 不要盲目重发!先 herdr agent get + herdr agent read 检查实际状态

第5步:问答转发(核心服务)

助手中途提问(blocked)时的标准动作:

# 1. 看状态和问题内容
herdr agent get <助手名>
herdr agent read <助手名> --source recent-unwrapped --lines 120

# 2. 把问题用人话转述给橙子(多个助手同时 blocked 就一起列出,编号区分)

# 3. 橙子回答后,把答案传回对应助手
herdr agent prompt <助手名> "<橙子的回答>" --wait --timeout 120000

注意事项:

  • 橙子也可能自己点进窗格手动回答——如果发现状态已变 working/idle,说明他已亲自处理,跳过转发,别重复发送
  • 一次只给一个助手发一条 prompt;发过就没必要再发同样的内容

第6步:验收与统一汇总

所有助手都到 done/idle 后:

  1. 读完成报告:herdr agent read <助手名> --source recent-unwrapped --lines 150,核对每个班保存的文件清单
  2. 抽查课评:随机读 1-2 个刚保存的课评文件,确认格式正常(固定开头5知识点、署名等)
  3. 统一写共享文件(调度员亲自做,只有调度员写):
    • 更新周课评汇总:把本次所有新课评按「最新的放最前面」合并进当周汇总文件
    • 课评汇总网页:按「课评生成」技能的网页规则判断是否需要生成/跳过
  4. 向橙子汇报:逐班列出「✅ 已保存文件 + 📋 质检结论 + ⚠️ 需人工复核点」
  5. 询问是否关闭窗格:这些窗格是本技能创建的,经橙子同意后逐个关闭:
herdr pane close <窗格ID>

💡 也可以先不关,让橙子自己点进各窗格浏览课评原文,看完再说「关掉吧」。

🚨 故障处理速查

现象 处理
agent_not_ready 用 agent get 轮询等 idle,别急着 prompt
agent_prompt_stalled 先 agent read 看实际状态,确认没收到再考虑重发
timeout agent get 看状态;还在 working 就 herdr agent wait <名> --timeout 180000 继续等
agent_blocked 走第 5 步问答转发;看不懂它卡在什么 UI 时先问橙子,别替他乱按
助手进程挂了 窗格里 shell 还在,重新 agent start(可复用原名)再派任务;已保存的文件不受影响
两个助手写同一文件 不应发生(任务模板已禁止);若发生,以先保存者为准,让橙子核对

核心原则

  1. 调度员不写课评,只做协调:开窗格、传话、合并共享文件、汇报。
  2. 共享文件只由调度员写:周汇总、汇总网页、笔记文件,多助手一律跳过。
  3. 不抢焦点:所有 split 用 --no-focus,橙子想看哪个窗格自己点。
  4. 转发提问要保真:把助手的原问题完整带给橙子,把橙子的回答完整带回去,不自己编答案。
  5. 课评发出前必须橙子人工过目:汇报时明确提醒「发家长前请逐条核对」。