
Hermes 不只是一个对话入口。真正有价值的地方,是把本地知识、远程服务、图像生成、博客发布和公众号草稿箱连成一条可复用的工作流。
这次搭建的目标很明确:输入一个主题,Hermes 能够起草文章、润色文字、生成配图、保存到知识库,并把稿件送入微信公众号草稿箱。公众号端只进入草稿箱,不自动群发,最后仍保留人工审核。
为什么要做这条链路
日常写技术笔记时,内容往往散落在几个地方:
- 对话里有灵感;
- 本地知识库里有过程记录;
- 博客需要 Markdown;
- 微信公众号需要 HTML 和封面图;
- 发布前还要检查排版和标题。
如果每一步都手工处理,真正消耗时间的不是写作本身,而是格式转换、素材搬运、后台复制粘贴和重复校验。
因此,这条链路的设计重点不是“自动群发”,而是自动完成发布前的机械步骤,把人保留在审核与定稿环节。
整体架构
当前链路分成四层:
- Hermes Agent:负责理解任务、起草文章、调用工具、协调流程;
- 本地知识库:保存 Markdown 源文,作为长期可检索的主稿;
- wechat_oa_api_mcp:部署在固定公网 IP 的 VPS 上,负责调用微信公众号接口;
- 微信公众号后台:接收草稿,最终由人工确认后发布。
其中最关键的一点是:微信公众号接口要求配置 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。
草稿箱优先,而不是自动发布
公众号文章不同于普通博客。它面向订阅用户,且一旦群发,修改空间有限。因此这条链路坚持一个原则:
自动化只负责进入草稿箱,不负责最终发布。
这带来三个好处:
- 可以在微信后台检查标题、封面、摘要和排版;
- 可以人工调整细节;
- 可以避免误发、错发和接口调用异常带来的风险。
自动化越强,边界越要清楚。草稿箱就是这条链路的安全边界。
内容生产流程
一次完整的公众号稿件生成流程大致如下:
- 根据主题生成文章大纲;
- 起草 Markdown 源文;
- 按技术文章口吻润色;
- 生成封面图;
- 保存到本地知识库;
- 将 Markdown 转为微信公众号安全 HTML;
- 本地预览排版;
- 调用 MCP 创建公众号草稿。
Markdown 源文是主版本。微信公众号 HTML、博客文章和其他分发格式都从它派生。这样可以避免同一篇文章在多个平台上各自演化,最后变成不可维护的多个版本。
配图策略
配图不是简单装饰,而是文章的识别入口。这里采用固定风格:
- 复古现代主义电影感插画;
- 深青绿色背景与红橙色几何主体;
- 奶油白地面;
- 硬光侧照与长投影;
- 留白充足,平涂色块结合轻微颗粒质感。
统一的视觉风格有两个好处:一是减少每次选图的决策成本;二是长期形成个人内容的视觉识别。
这条链路真正解决的问题
这套流程解决的不是“能不能自动发公众号”,而是更具体的几个问题:
- 稿件有主版本:知识库 Markdown 是源头;
- 图片可复用:封面同时服务公众号和博客;
- 接口出口稳定:VPS 固定 IP 满足微信白名单要求;
- 自动化有边界:只进草稿箱,不自动群发;
- 后续可扩展:同一篇稿件可以同步到博客、知识库和其他渠道。
结论
Hermes 的价值不在于替代写作者,而在于把写作后的机械环节标准化:格式转换、配图、存档、接口调用、草稿创建。
对于个人知识管理和技术写作来说,合理的自动化边界应当是:机器负责准备,人负责判断。这次公众号草稿箱链路正是这个原则的一次实践。