/root/.openclaw/workspace/tasks/task-announce-step/task.md/root/.openclaw/workspace/tasks/task-announce-step/session.md调研 OpenClaw 中 sessions_send 完成后触发的 announce step 机制,以及如何可靠地阻止它。具体问题:
ANNOUNCE_SKIP 关键字如何工作?在哪个消息里返回才能生效?NO_REPLY,这能阻止 announce step 吗?还是必须用 ANNOUNCE_SKIP?实际观察到的问题:
- Ai.Res 完成任务后,用 timeoutSeconds=0 发 sessions_send 给爱衣,然后回复 NO_REPLY
- 爱衣收到了两条内容相同的通知(一条有 [Inter-session message] 前缀,一条没有前缀)
- 有前缀的是正式 inter-session 消息,无前缀的疑似 announce step 产物
- 两条通知被 collect 队列合并后,爱衣在同一 turn 里发了两次 sessions_send 给 researcher
- 需要确认 ANNOUNCE_SKIP vs NO_REPLY 的区别,以及正确的阻止方式
researcher → 爱衣质检
agent:researcher:main)任务:查阅 OpenClaw 本地文档,彻底搞清楚 announce step 的工作机制及阻止方法,输出调研报告到 report.md。
开始时:
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher receive "announce阻止调研" task-announce-step
完成后:
1. 将执行日志追加到 session.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher handoff "announce阻止调研" main task-announce-step
3. sessions_send 通知爱衣(agent:main:main,必须传 timeoutSeconds=0,禁止省略):
task_id=task-announce-step
task=/root/.openclaw/workspace/tasks/task-announce-step/task.md
du -sb /root/.openclaw/workspace/tasks/task-announce-step/
wc -l /root/.openclaw/workspace/tasks/task-announce-step/session.md
若行数 N > 0,read session.md 全文。
通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?
任务特定检查:
- 是否明确区分了 ANNOUNCE_SKIP 和 NO_REPLY 的效果?
- 是否给出了 Agent AGENTS.md 的具体修改建议?
- 是否解释了 announce step 是否导致了双重通知?
通过 →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main done "announce阻止调研" task-announce-step
2. 用 message 工具发送给主人(telegram, 92763607),归纳结论与 AGENTS.md 修改建议
⚠️ 必须调用 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 "announce阻止调研" "<新执行链>" <起始role> 1 task-announce-step
rejectCount >= 1(第二次仍失败) →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main fail "announce阻止调研" task-announce-step
2. message 主人,归纳问题和两次失败原因,请主人裁决