任务 ID: task-session-priority  |  文件: task.md  |  最后修改: 2026-02-25 01:08:27

Task task-session-priority — sessions_send 与用户指令优先级调研

文件路径

原始需求

调研 OpenClaw 中用户指令与 sessions_send(inter-session 消息)的处理优先级机制。具体问题:

  1. 当爱衣正在处理一个 sessions_send 触发的任务(如质检)时,用户从 Telegram 发来新消息,OpenClaw 如何决定执行顺序?是先到先执行,还是用户指令有更高优先级?
  2. 是否存在"用户指令打断正在进行的 turn"的机制?如有,是如何实现的?
  3. 被打断的 turn 会发生什么?是否会重试?重试是否有幂等保护?
  4. 是否有配置项可以控制优先级行为?

背景上下文

实际观察到的现象:
- 爱衣正在处理 Ai.Rev 发来的质检通知(inter-session 消息触发的 turn)
- 同时主人从 Telegram 发来新消息
- 主人的消息似乎"打断"了正在进行的质检 turn
- 导致同一任务(task-discord-latency)被 sessions_send 发送了两次给 researcher,researcher 也执行了两次


执行链

researcher → 爱衣质检


各 Agent 职责


Ai.Res(session key: agent:researcher:main

任务:查阅 OpenClaw 本地文档,调研 sessions_send 消息与用户指令的优先级处理机制,输出调研报告到 report.md

开始时:
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh researcher receive "消息优先级调研" task-session-priority

完成后:
1. 将执行日志追加到 session.md
2. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh researcher handoff "消息优先级调研" main task-session-priority
3. sessions_send 通知爱衣(agent:main:main必须传 timeoutSeconds=0,禁止省略):
task_id=task-session-priority task=/root/.openclaw/workspace/tasks/task-session-priority/task.md


⚠️ 爱衣质检 SOP(收到最终通知后执行)

Step 1:评估工作区大小

du -sb /root/.openclaw/workspace/tasks/task-session-priority/

Step 2:读取 session.md

wc -l /root/.openclaw/workspace/tasks/task-session-priority/session.md

若行数 N > 0,read session.md 全文。

Step 3:质检要点

通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?

任务特定检查:
- 是否明确回答了"用户指令是否有更高优先级"这个核心问题?
- 是否解释了被打断的 turn 的处理机制(重试/幂等)?
- 是否给出了可操作的建议或配置参考?

Step 4:输出结论

通过
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main done "消息优先级调研" task-session-priority
2. 用 message 工具发送给主人(telegram, 92763607),归纳调研结论
⚠️ 必须调用 message 工具,不能只在主对话回复

不通过(rejectCount == 0)
1. 分析问题根因,设计新执行链
2. 创建新的 task.md(task_id 加后缀 -retry1),session.md 独立
3. 在原 session.md 末尾追加一行 rejectCount=1
4. sessions_send 给新执行链起始 Agent
5. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main retry "消息优先级调研" "<新执行链>" <起始role> 1 task-session-priority

rejectCount >= 1(第二次仍失败)
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main fail "消息优先级调研" task-session-priority
2. message 主人,归纳问题和两次失败原因,请主人裁决

超限处理(工作区 > 80KB)

  1. 仅读 task.md(了解需求)
  2. 读 session.md 末尾 200 行
  3. message 主人:任务已完成,但工作区内容繁多,建议人工审计,附简单归纳