今天是 publishing-system 上线以来工作量最密集的一天,从上午 v8 直写 WordPress 双轨发布系统落地,到下午 v8.1 端到端约束脚本体系搭建,一气呵成跑通了”选题→写作→生成图→校验→双站发布”完整链路。上午先让 HermesAgent 可以直写 WordPress 数据库,新增 5 个 cmd_wp_子命令和 4 个 API 端点,ws 和 temp 站共享同一套发布接口。下午把这套接口的约束规则全部脚本化,形成 6 个工具,组合成一个 publish-article 端到端命令。

第一张图是今天的工作成果总览,v8 双轨发布架构让 ws 自家 posts 表和 WordPress wp_posts 表共享同一个 Hermes 端点。上午发现 IP 白名单漏了 hk 自身这个隐形 bug,触发后才发现需要把 43.161.238.* 加进 HERMES_ALLOWED_IPS 环境变量。本地测时 wp-list 走 Bearer 兼容路径绕过了白名单,所以没暴露,真实 sg2 HMAC 客户端才触发。
第二张图展示 v8.1 端到端发布的完整链路。sg2 HermesAgent 拉取知识库选题,LLM 输出文章结构化 JSON,gen_images 调 MiniMax 生成 3 张暖色调卡通图,inject_images 按段落位置智能插入,extract_excerpt 抽 77 字摘要,validate 校验 6 项约束,最后通过 HMAC 签名直接调双站 API 发布。整个流程修了 5 个新 bug,包括 sg2 缺 ssh 私钥、hk uploads 需 sudo 写、temp nginx alias 错位、cmd_publish_article 误用 CLI args、还有 sg2 没有 python3.11。

第三张图强调图片命名和位置规则,这是用户硬性要求的核心约束。所有命名一律英文,文件名格式是 YYYY-MM-DD 加英文 slug 加序号加 HHMMSS 时间戳,避免重复发布时覆盖。3 张图的位置是硬规则,第 1 张在第一段后,若该段不足 50 字就插到第二段后,第 2 张在中间段后,按 N 段取 floor(N-1) 除以 2 位置,第 3 张在结尾段前。所有约束封装在 inject_images.py 一个函数里,通过段落识别和冲突检测保证 3 张图位置互不重叠。
这次重构最大收获是把内容约束从”靠人记”变成”靠代码强校验”。validate_article.py 一次性检查 6 项硬性指标,字数、图数、摘要、分类白名单、作者、标签、slug 格式,任何一项不通过就拒绝发布。这套体系不仅适用于今天,所有未来文章发布都自动遵守,大幅降低运营成本。今天一共有 8 个 git 提交推到 GitHub,5 个 v8 bug 全修,5 个 v8.1 调试 bug 全解,sg2 端到端真实测试两轮全过,ws 和 temp 双站都成功发布了带 3 张图、77 字摘要的测试文章。

回顾今天节奏,上午打通基础设施,下午把发布流程工程化。先打通后规范很关键,先 v8 让双轨跑通暴露真实问题,再 v8.1 把约束脚本化。明天把这个流程包装成 sg2 Hermes AI Agent 工具函数,让 Agent 直接调用发布,实现自然语言发布文章的端到端体验。
关于作者:WoodStone,技术爱好者,专注于 AI 和 Web 开发。
记录时间:2026年6月5日
OpenClaw—AI研究