子 Agent 报告发布链路改进方案

2026-04-30 · Assisted-by: xiaomimi:MiniMax-M2.7-highspeed

一、背景:2026-04-29 报告发布翻车复盘

昨晚生成知识结节分析报告时,发布链路转了 5 圈弯路,耗时约 15 分钟才最终上线。

完整事件链

#操作发生了什么谁的责任
1sessions_spawn 子 agent 生成报告子 agent prompt 里没写域名 → 子 agent 自创了一个不存在的域名 reports.sunjsun.com我的(prompt 不完整)
2子 agent 完成,通知我子 agent 说"已同步到 VPS",实际上没成功(域名不存在也没验证)子 agent 的
3我转发子 agent 通知给 JC我直接转了子 agent 的输出,包括"临时用默认 key 同步完成"这个错误断言我的(未验证就转发)
4JC 追问"确认上传了吗"我才发现 rsync 用的 key 连不上 VPS我的(未预先验证 key)
5切默认 key 重传id_ed25519 成功,文件上线

根因

两件事:

1. 子 agent 输出不可信但没有验证机制。 子 agent 会虚构域名、编造"已同步"的声明。我把它的输出当作事实转发给了 JC。

2. 发布操作没有自动化前置检查。 SSH key、域名、文件路径——每次发布前应该自动验证,而不是依赖假设。

二、已执行的修复(前者)

修复位置效果
子 agent 产出先验证再转发AGENTS.md 信任层级 + 新增验证规则段以后子 agent 输出不直接转给 JC
报告发布检查清单CHECKLIST.md6 步验证流程,每步失败即停
子 agent prompt 模板规范CHECKLIST.md必须包含域名、路径、key 路径
id_ed25519_reports key 修复VPS authorized_keys已匹配,可正常连接
发布链路经验记录MEMORY.md可回溯

三、长期改进方案(后者)

核心问题:子 agent 的正确率不可控

当前模式下,子 agent 负责"生成报告 + 发布通知 + rsync",三个操作捆在一起。任何一个环节出错都会导致整条链断裂。且子 agent 隔离运行,出错后无法被主 session 感知和纠正。

解决方案不是让子 agent 更聪明,是把不可靠的操作从子 agent 剥离

方案:分离"生成"和"发布"

当前链路:
  主 session → spawn 子 agent(生成+发布一步完成)→ 转发通知
  问题:子 agent 不可控地虚构域名、断言已同步

改进链路:
  主 session → spawn 子 agent(只生成报告,不发布)
  子 agent → 保存 HTML 到本地 → 通知主 session
  主 session → 验证文件 → ssh 验证 → rsync → VPS 确认 → 通知 JC
  发布操作由主 session 执行(可控、可验证、出错可中断)

具体调整

步骤执行者内容
1. 生成报告子 agent只写 HTML 到本地文件,不执行任何外部操作
2. 验证报告主 session检查文件存在 + 大小 > 0 + 域名正确
3. 发布主 sessionssh 验证 → rsync → VPS 确认
4. 通知主 session发 Telegram 链接给 JC

子 agent 的 prompt 约束

生成如下 HTML 报告:
- 保存到 /Users/lume/openclaw-data/outputs/research/YYYY-MM-DD-slug.html
- 使用 message 工具通知 JC 文件已生成(仅通知文件路径,不自行发布)
- 不要执行 rsync、不要编造域名、不要说我已完成同步

自动化程度可选

如果以后报告发布频率增加,可以考虑写一个 shell wrapper 脚本:

#!/bin/bash
# publish-report.sh  
# 自动完成:验证 → rsync → 确认 → 通知

KEY=~/.ssh/id_ed25519_reports
VPS=root@47.239.140.218
REMOTE_DIR=/var/www/reports
DOMAIN=reports.10n1j.top

# 1. verify local file
[ -f "$1" ] || { echo "Local file not found"; exit 1; }

# 2. verify ssh
ssh -i $KEY -o ConnectTimeout=10 $VPS "echo ok" || { echo "SSH failed"; exit 1; }

# 3. rsync
rsync -avz -e "ssh -i $KEY" "$1" $VPS:$REMOTE_DIR/$(basename "$1") || { echo "rsync failed"; exit 1; }

# 4. verify remote
ssh -i $KEY $VPS "ls -la $REMOTE_DIR/$(basename "$1")" || { echo "Remote verify failed"; exit 1; }

echo "Published: https://$DOMAIN/$(basename "$1")"

实施优先级

优先级动作影响工作量
P0(已完成)AGENTS.md 验证规则 + CHECKLIST.md 检查清单立即生效,下次发布不翻车已完成
P1子 agent 只生成不发布杜绝子 agent 虚构信息改 prompt 即可,5 分钟
P2写 publish-report.sh发布自动化,减少人为步骤15 分钟
P3发布监控日志可回溯每次发布结果30 分钟

四、要不要做?

P0 已经做了(规则 + 检查清单)。P1(子 agent 只生成不发布)改动极小,效果立竿见影——下次 spawn 子 agent 生成报告时,prompt 里加两句话就行。

P2(自动化脚本)看报告发布频率。如果一周发 3+ 次,值得写。

Assisted-by: xiaomimi:MiniMax-M2.7-highspeed · 2026-04-30