/root/.openclaw/workspace/tasks/task-fix-researcher-agents/task.md/root/.openclaw/workspace/tasks/task-fix-researcher-agents/session.mdAi.Res(researcher)在本次任务中漏发 handoff 工作日志,且 log-to-channel.sh 参数顺序搞反。根因是 workspace-researcher/AGENTS.md 的「Session 协议」章节缺少明确的工作流步骤和 log-to-channel.sh 调用格式,导致 Ai.Res 只能依赖 task.md 示例来推断,极易出错。
变更目标: 将 workspace-researcher/AGENTS.md 的「Session 协议」章节改为与 coder/reviewer 一致的完整工作流步骤,硬编码 log-to-channel.sh 调用格式,消除歧义。
变更范围: 仅修改 /root/.openclaw/workspace-researcher/AGENTS.md,其余文件不动。
Ai.Rev 审计 → 爱衣质检 + 执行
agent:reviewer:main)任务:审计以下变更方案是否合理、完整、与现有 coder/reviewer 工作流一致,无矛盾。
待审计的变更内容:
将 workspace-researcher/AGENTS.md 的「Session 协议」章节:
当前内容(「任务开始」+「任务结束」两节):
## Session 协议
### 任务开始
每个任务开始前必须是干净 session(由爱衣负责重置,Ai.Res 无需操心)。
任务以 `task.md` 文件形式传入,通过 `sessions_send` 接收格式:
task_id=
task=
读 `task.md` 获取:任务类型(search/research)、研究主题、主人特殊要求、输出路径。
### 任务结束
完成后 `sessions_send` 给 `agent:main:main`:
task_id=
task=
爱衣会读 `task.md` 找到报告路径自行处理。如有异常(引擎全挂/主题涉及敏感信息),在通知消息中附加说明。
替换为:
## Session 协议
### 收到通知时的工作流
通知消息格式:
task_id=
task=
执行步骤:
1. read task.md 全文 → 找到属于自己的职责说明,获取任务名称和 task_id
2. **强制**:发工作日志(开始):
```bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher receive "<任务名称>" <task_id>
```
3. 读 session.md 末尾了解最新上下文(路径从 task.md 获取):
```bash
wc -l <session.md路径>
# 若行数 N > 0,read offset=max(1,N-100) limit=100
# 若 N = 0,跳过(空文件)
```
4. 执行搜索/研究任务,将完整执行日志追加到 session.md
5. **强制**:发工作日志(移交):
```bash
/root/.openclaw/workspace/scripts/log-to-channel.sh researcher handoff "<任务名称>" main <task_id>
```
6. sessions_send 给 `agent:main:main`(不传 timeoutSeconds),消息格式**必须严格为**:
```
task_id=<id>
task=<task.md路径>
```
如有异常(引擎全挂/主题涉及敏感信息),在通知消息中附加说明。
⚠️ 禁止发送 `NO_REPLY`、`REPLY_SKIP` 或任何其他内容作为最终通知——这会导致链路静默断裂。
7. 通知发出后,之后所有消息 REPLY_SKIP,announce 一律 ANNOUNCE_SKIP
审计要点:
- 步骤格式是否与 coder/reviewer AGENTS.md 一致?
- log-to-channel.sh 参数顺序是否正确(role, event, name, [next_role], task_id)?
- handoff 中 next_role 用 main 是否正确(Ai.Res 只汇报给爱衣)?
- 旧版中「如有异常」的说明是否已保留?
- 有无遗漏或矛盾?
开始时:
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer receive "修复 Ai.Res AGENTS.md 工作流" task-fix-researcher-agents
完成后:
1. 将审计报告追加到 session.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer handoff "修复 Ai.Res AGENTS.md 工作流" main task-fix-researcher-agents
3. sessions_send 通知爱衣(agent:main:main):
task_id=task-fix-researcher-agents
task=/root/.openclaw/workspace/tasks/task-fix-researcher-agents/task.md
du -sb /root/.openclaw/workspace/tasks/task-fix-researcher-agents/
wc -l /root/.openclaw/workspace/tasks/task-fix-researcher-agents/session.md
若行数 N > 0,read session.md 全文。
通用检查(每次必须):
- 产出是否符合原始需求?
- 执行过程是否有明显问题?
任务特定检查:
- reviewer 是否明确给出「通过」或「不通过」结论?
- 若通过,爱衣执行实际文件修改:edit workspace-researcher/AGENTS.md,用变更方案中的新内容替换旧的「Session 协议」章节
- 若不通过,按 reviewer 意见修改方案后重新审计
通过 →
1. 执行文件修改:edit /root/.openclaw/workspace-researcher/AGENTS.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main done "修复 Ai.Res AGENTS.md 工作流" task-fix-researcher-agents
3. 用 message 工具发送给主人(telegram, 92763607),说明变更内容
⚠️ 必须调用 message 工具,不能只在主对话回复
不通过(rejectCount == 0) →
1. 分析问题根因,修改变更方案
2. 创建新的 task.md(task_id 加后缀 -retry1),session.md 独立
3. 在原 session.md 末尾追加一行 rejectCount=1
4. sessions_send 给 reviewer 重新审计
5. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main retry "修复 Ai.Res AGENTS.md 工作流" "<新执行链>" reviewer 1 task-fix-researcher-agents
rejectCount >= 1(第二次仍失败) →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main fail "修复 Ai.Res AGENTS.md 工作流" task-fix-researcher-agents
2. message 主人,归纳问题和两次失败原因,请主人裁决