/root/.openclaw/workspace/tasks/task-session-priority/task.md/root/.openclaw/workspace/tasks/task-session-priority/session.md调研 OpenClaw 中用户指令与 sessions_send(inter-session 消息)的处理优先级机制。具体问题:
实际观察到的现象:
- 爱衣正在处理 Ai.Rev 发来的质检通知(inter-session 消息触发的 turn)
- 同时主人从 Telegram 发来新消息
- 主人的消息似乎"打断"了正在进行的质检 turn
- 导致同一任务(task-discord-latency)被 sessions_send 发送了两次给 researcher,researcher 也执行了两次
researcher → 爱衣质检
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
du -sb /root/.openclaw/workspace/tasks/task-session-priority/
wc -l /root/.openclaw/workspace/tasks/task-session-priority/session.md
若行数 N > 0,read session.md 全文。
通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?
任务特定检查:
- 是否明确回答了"用户指令是否有更高优先级"这个核心问题?
- 是否解释了被打断的 turn 的处理机制(重试/幂等)?
- 是否给出了可操作的建议或配置参考?
通过 →
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 主人,归纳问题和两次失败原因,请主人裁决