微信生态:话题订阅与自动化分发引擎 __openClaw in Practice #4
Author Lens
Start with a short note that points to where this idea came from before the main argument begins.
方案四:微信公众号自动化分发引擎 (WeChat Routing Lobster)
1. 业务逻辑与 Multi-Agent 协同
此项目是一个典型的“生产者-消费者”多智能体架构,旨在解决微信公众号垂直领域热点信息的自动化运营与精准分发。
- 生产者 (Producer):外部的“信息归纳龙虾” Agent。负责爬取、提炼并输出结构化的微信图文(HTML/Markdown),并在 Payload 中打上领域标签(如
Tag: AI,Tag: Robotics)。 - 消费者/路由层 (Consumer & Router):本系统(分发龙虾)。接收外部数据,查询本地订阅者数据库,调用微信官方 API 将内容投送给关注特定 Tag 的受众。
2. 系统架构与控制流 (Architecture & Control Flow)
- Ingress (接收网关):提供一个带鉴权的 Webhook API(如基于 FastAPI 或 Express),供“信息归纳龙虾”以 POST 请求推送文章。
- User State DB (订阅状态机):维护一个 SQLite 数据库,记录用户的交互:
- 当用户在公众号后台发送“订阅 AI”时,微信服务器推送 XML 事件给本系统。
- 系统解析 OpenID,并在数据库中建立
OpenID <-> Tag的映射关系。
- Egress (微信发布引擎):
- 素材组装:调用微信 [草稿箱 API](
cgi-bin/draft/add)将收到的文章和封面图上传,生成media_id。 - 定向分发:调用微信 [发布 API](
cgi-bin/freepublish/submit)或 [根据标签群发 API](cgi-bin/message/mass/sendall),根据数据库中的 Tag 映射,将图文精准推送给订阅用户。
- 素材组装:调用微信 [草稿箱 API](
3. 隔离目录与安全设计
此 Agent 需要暴露 Webhook 端口以接收外部文章,且需保存微信的 access_token,因此需要在网络层配置反向代理(如 Nginx + SSL),并与核心账本数据库隔离。
/opt/openclaw/wechat_router_bot/
├── docker-compose.yml
├── config/
│ ├── openclaw.json # Agent 配置,包含微信 AppID 和 AppSecret
│ └── routing_rules.md # 路由策略提示词
└── workspace/
├── subscriber_db/ # 订阅者 SQLite 数据库 (挂载 :rw)
│ └── users.sqlite
└── assets/ # 图片等静态素材暂存区