任务 ID: task-lock-patch  |  文件: task.md  |  最后修改: 2026-02-25 01:35:14

Task task-lock-patch — mkdir 锁幂等保护 AGENTS.md 修改方案审查

文件路径

原始需求

审查以下 2 处 AGENTS.md 修改方案,评估逻辑是否正确、有无遗漏或歧义。只审查,不执行改动。

背景:为解决 Agent 任务双重发布和双重质检问题,引入 mkdir 锁机制:
- 发任务前占锁,防止重复发送
- 收质检通知时检查锁,不存在则放弃,存在则执行后释放锁


执行链

reviewer → 爱衣质检


各 Agent 职责

Ai.Rev(session key: agent:reviewer:main

任务:审查以下 2 处 AGENTS.md 修改方案,给出通过 / 修改建议。只审查,不执行改动。

开始时:
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh reviewer receive "锁机制审查" task-lock-patch

完成后:
1. 将审查意见写入 /root/.openclaw/workspace/tasks/task-lock-patch/review.md
2. 将执行日志追加到 session.md
3. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh reviewer handoff "锁机制审查" main task-lock-patch
4. sessions_send 通知爱衣(agent:main:main必须传 timeoutSeconds=0,禁止省略):
task_id=task-lock-patch task=/root/.openclaw/workspace/tasks/task-lock-patch/task.md


待审查的修改方案

修改一:「启动执行链」加锁步骤

文件: /root/.openclaw/workspace/AGENTS.md

删除:

### 启动执行链(强制)
task.md 创建后、sessions_send 给起始 Agent 前,必须按顺序执行:
1. **重置起始 Agent session**(防止旧上下文导致 REPLY_SKIP):

替换为:

### 启动执行链(强制)
task.md 创建后、sessions_send 给起始 Agent 前,必须按顺序执行:
0. **占锁(幂等保护)**:
   ```bash
   mkdir /root/.openclaw/workspace/tasks/<task_id>/.lock 2>/dev/null \
     || { echo "任务 <task_id> 已在进行中,停止重复发送"; exit 0; }
   ```
   锁已存在 → 立即停止,不得继续后续步骤。
1. **重置起始 Agent session**(防止旧上下文导致 REPLY_SKIP):

修改二:「收到 Agent 通知」加锁检查与释放

文件: /root/.openclaw/workspace/AGENTS.md

删除:

### 收到 Agent 通知(强制)
来自 `agent:xxx:main` 的消息:
- **格式正确**(`task_id=<id>\ntask=<路径>`)→ 立即 read task.md,找质检 SOP,照章执行
- **格式不符** → 立即 message 主人报告(来源 + 内容),不得静默

替换为:

### 收到 Agent 通知(强制)
来自 `agent:xxx:main` 的消息:
- **格式正确**(`task_id=<id>\ntask=<路径>`)→ 按以下步骤执行:
  1. **检查锁**:
     ```bash
     ls /root/.openclaw/workspace/tasks/<task_id>/.lock 2>/dev/null \
       || { echo "锁不存在,任务已处理或从未发出,放弃"; exit 0; }
     ```
     锁不存在 → 立即放弃,不执行质检(防止 announce step / 重复通知导致双重质检)
  2. 锁存在 → read task.md,找质检 SOP,照章执行
  3. **质检完成后释放锁**:
     ```bash
     rmdir /root/.openclaw/workspace/tasks/<task_id>/.lock
     ```
- **格式不符** → 立即 message 主人报告(来源 + 内容),不得静默

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

Step 1:评估工作区大小

du -sb /root/.openclaw/workspace/tasks/task-lock-patch/

Step 2:读取 session.md 和 review.md

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

读 session.md 全文,再读 review.md。

Step 3:质检要点

通用检查:
- 审查意见是否覆盖了 2 处修改?
- 是否给出了明确结论(通过 / 修改建议)?

任务特定检查:
- 若审查通过 → 执行 2 处改动,通知主人
- 若有修改建议 → 综合建议调整方案后,通知主人确认再执行

Step 4:输出结论

审查通过
1. 执行 2 处文件改动
2. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main done "锁机制审查" task-lock-patch
3. 用 message 工具通知主人(telegram, 92763607):审查通过,改动已执行
⚠️ 必须调用 message 工具,不能只在主对话回复

审查有修改建议
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main done "锁机制审查" task-lock-patch
2. 用 message 工具通知主人:附审查建议,询问是否按建议调整后再执行

不通过(rejectCount == 0)
1. 创建新的 task.md(task_id 加后缀 -retry1),session.md 独立
2. 在原 session.md 末尾追加一行 rejectCount=1
3. sessions_send 给新执行链起始 Agent
4. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main retry "锁机制审查" "<新执行链>" <起始role> 1 task-lock-patch

rejectCount >= 1(第二次仍失败)
1. 发工作日志:
bash /root/.openclaw/workspace/scripts/log-to-channel.sh main fail "锁机制审查" task-lock-patch
2. message 主人,归纳问题请主人裁决

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

  1. 仅读 task.md,读 session.md 末尾 200 行
  2. message 主人:任务已完成,建议人工审计