/root/.openclaw/workspace/tasks/agents-json-impl/task.md/root/.openclaw/workspace/tasks/agents-json-impl/session.md按已审查通过的方案(/root/.openclaw/workspace/tasks/agents-json/analysis.md)实施:
agents.json 统一注册表log-to-channel.sh(替换 agent-labels.conf 读取逻辑)session-reset.sh(动态读取 Agent 列表)backup.sh(le-b rsync 段 + R2 打包段,同时修复 researcher R2 缺失 bug)注意事项(来自审查爱):
- backup.sh 改后需加空列表检测,防止 agents.json 读取失败时静默漏备份
- backup.sh le-b 段 main workspace 仍需保留单独一行(main 被 continue 跳过)
- log-to-channel.sh 中 python3 -c 字符串插值为低风险,可接受,暂不加固
coder → reviewer → 爱衣质检
agent:coder:main)任务:按方案实施代码改动。
开始时:
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh coder receive "agents.json实施" agents-json-impl
具体工作:
Step 1:创建 agents.json
路径:/root/.openclaw/workspace/scripts/agents.json
内容:
{
"agents": [
{
"id": "main",
"name": "Ai",
"emoji": "🥬",
"workspace": "/root/.openclaw/workspace",
"persona": "aichan",
"session_key": "agent:main:main"
},
{
"id": "coder",
"name": "Ai.Dev",
"emoji": "💻",
"workspace": "/root/.openclaw/workspace-coder",
"persona": "aichan",
"session_key": "agent:coder:main"
},
{
"id": "reviewer",
"name": "Ai.Rev",
"emoji": "📋",
"workspace": "/root/.openclaw/workspace-reviewer",
"persona": "aichan",
"session_key": "agent:reviewer:main"
},
{
"id": "researcher",
"name": "Ai.Res",
"emoji": "🔍",
"workspace": "/root/.openclaw/workspace-researcher",
"persona": "aichan",
"session_key": "agent:researcher:main"
}
]
}
Step 2:改造 log-to-channel.sh
LABELS_FILE 变量附近,新增 AGENTS_JSON 变量指向 agents.jsonlabel_to_name() 函数,改为从 agents.json 读取LABELS_FILE 变量定义(暂不删除,等测试通过后再清理)Step 3:改造 session-reset.sh
AGENTS_JSON 变量AGENTS=(coder reviewer researcher) 替换为动态读取Step 4:改造 backup.sh
mkdir -p 和三段 rsync 均替换为动态循环完成后:
1. 将执行日志追加到 session.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh coder handoff "agents.json实施" reviewer agents-json-impl
3. sessions_send 通知 Ai.Rev(agent:reviewer:main,必须传 timeoutSeconds=0):
task_id=agents-json-impl
task=/root/.openclaw/workspace/tasks/agents-json-impl/task.md
agent:reviewer:main)任务:先评估代码改动是否有显著问题,无问题再测试。
开始时:
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer receive "agents.json实施" agents-json-impl
Phase 1:代码评估
阅读 coder 的改动,对照方案文档(/root/.openclaw/workspace/tasks/agents-json/analysis.md)检查:
- agents.json 内容是否正确
- 三个脚本改法是否符合方案
- 有无明显 bug 或遗漏
若发现显著问题 → 记录问题,跳过测试,直接通知爱衣质检(在 session.md 注明 phase1_fail=true)
Phase 2:测试(仅 Phase 1 通过后执行)
测试项:
1. 验证 agents.json 合法性:python3 -c "import json; json.load(open('/root/.openclaw/workspace/scripts/agents.json')); print('ok')"
2. 验证 session-reset.sh 能正确读取列表:bash /root/.openclaw/workspace/scripts/session-reset.sh --dry-run 2>&1 | head -20(若无 dry-run 则直接读取列表部分验证)
3. 验证 log-to-channel.sh label_to_name 函数:手动调用验证 coder/reviewer/main 返回正确显示名
4. 验证 backup.sh 动态循环语法:bash -n /root/.openclaw/workspace/scripts/backup.sh
完成后:
1. 将评估+测试报告追加到 session.md
2. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh reviewer handoff "agents.json实施" main agents-json-impl
3. sessions_send 通知爱衣(agent:main:main,必须传 timeoutSeconds=0):
task_id=agents-json-impl
task=/root/.openclaw/workspace/tasks/agents-json-impl/task.md
du -sb /root/.openclaw/workspace/tasks/agents-json-impl/
wc -l /root/.openclaw/workspace/tasks/agents-json-impl/session.md
phase1_fail=true通过 →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main done "agents.json实施" agents-json-impl
2. message 主人(telegram, 92763607),汇报实施结果
不通过(rejectCount == 0) →
1. 分析根因,设计新执行链
2. 创建新 task.md(agents-json-impl-retry1)
3. 在原 session.md 末尾追加 rejectCount=1
4. sessions_send 给新执行链起始 Agent
5. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main retry "agents.json实施" "coder → reviewer → main" coder 1 agents-json-impl
rejectCount >= 1 →
1. 发工作日志:
bash
/root/.openclaw/workspace/scripts/log-to-channel.sh main fail "agents.json实施" agents-json-impl
2. message 主人,归纳两次失败原因请裁决