0%

设置 Hermes 自动发布微信公众号:从本地智能体到草稿箱

Hermes 不只是一个对话入口。真正有价值的地方,是把本地知识、远程服务、图像生成、博客发布和公众号草稿箱连成一条可复用的工作流。

这次搭建的目标很明确:输入一个主题,Hermes 能够起草文章、润色文字、生成配图、保存到知识库,并把稿件送入微信公众号草稿箱。公众号端只进入草稿箱,不自动群发,最后仍保留人工审核。

为什么要做这条链路

日常写技术笔记时,内容往往散落在几个地方:

  • 对话里有灵感;
  • 本地知识库里有过程记录;
  • 博客需要 Markdown;
  • 微信公众号需要 HTML 和封面图;
  • 发布前还要检查排版和标题。

如果每一步都手工处理,真正消耗时间的不是写作本身,而是格式转换、素材搬运、后台复制粘贴和重复校验。

因此,这条链路的设计重点不是“自动群发”,而是自动完成发布前的机械步骤,把人保留在审核与定稿环节

整体架构

当前链路分成四层:

  1. Hermes Agent:负责理解任务、起草文章、调用工具、协调流程;
  2. 本地知识库:保存 Markdown 源文,作为长期可检索的主稿;
  3. wechat_oa_api_mcp:部署在固定公网 IP 的 VPS 上,负责调用微信公众号接口;
  4. 微信公众号后台:接收草稿,最终由人工确认后发布。

其中最关键的一点是:微信公众号接口要求配置 IP 白名单。家宽 IP 不固定,因此 MCP 服务放在 VPS 上运行,统一从固定公网 IP 出口访问微信接口。

MCP 服务部署要点

微信公众号 MCP 服务使用 wechat_oa_api_mcp。服务部署在 VPS 上,以 SSE 方式提供 MCP 接口。

关键配置包括:

  • 服务端口:8089
  • 传输方式:sse
  • 系统服务:wechat-oa-mcp.service
  • 监听地址:0.0.0.0
  • 公众号后台白名单:VPS 公网 IP。

Hermes 侧注册 MCP 时,需要注意一个细节:HTTP URL 默认可能被识别为 Streamable HTTP。对于 SSE 服务,应在配置中显式指定:

1
transport: sse

否则客户端可能会向 /sse 发起 POST 请求,得到 405 Method Not Allowed

草稿箱优先,而不是自动发布

公众号文章不同于普通博客。它面向订阅用户,且一旦群发,修改空间有限。因此这条链路坚持一个原则:

自动化只负责进入草稿箱,不负责最终发布。

这带来三个好处:

  • 可以在微信后台检查标题、封面、摘要和排版;
  • 可以人工调整细节;
  • 可以避免误发、错发和接口调用异常带来的风险。

自动化越强,边界越要清楚。草稿箱就是这条链路的安全边界。

内容生产流程

一次完整的公众号稿件生成流程大致如下:

  1. 根据主题生成文章大纲;
  2. 起草 Markdown 源文;
  3. 按技术文章口吻润色;
  4. 生成封面图;
  5. 保存到本地知识库;
  6. 将 Markdown 转为微信公众号安全 HTML;
  7. 本地预览排版;
  8. 调用 MCP 创建公众号草稿。

Markdown 源文是主版本。微信公众号 HTML、博客文章和其他分发格式都从它派生。这样可以避免同一篇文章在多个平台上各自演化,最后变成不可维护的多个版本。

配图策略

配图不是简单装饰,而是文章的识别入口。这里采用固定风格:

  • 复古现代主义电影感插画;
  • 深青绿色背景与红橙色几何主体;
  • 奶油白地面;
  • 硬光侧照与长投影;
  • 留白充足,平涂色块结合轻微颗粒质感。

统一的视觉风格有两个好处:一是减少每次选图的决策成本;二是长期形成个人内容的视觉识别。

这条链路真正解决的问题

这套流程解决的不是“能不能自动发公众号”,而是更具体的几个问题:

  • 稿件有主版本:知识库 Markdown 是源头;
  • 图片可复用:封面同时服务公众号和博客;
  • 接口出口稳定:VPS 固定 IP 满足微信白名单要求;
  • 自动化有边界:只进草稿箱,不自动群发;
  • 后续可扩展:同一篇稿件可以同步到博客、知识库和其他渠道。

结论

Hermes 的价值不在于替代写作者,而在于把写作后的机械环节标准化:格式转换、配图、存档、接口调用、草稿创建。

对于个人知识管理和技术写作来说,合理的自动化边界应当是:机器负责准备,人负责判断。这次公众号草稿箱链路正是这个原则的一次实践。