中文 ENG

微信生态:话题订阅与自动化分发引擎 __openClaw in Practice #4

写在前面

先用几句话交代这个想法最初是从哪里出发的,再进入具体内容。

方案四:微信公众号自动化分发引擎 (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 映射,将图文精准推送给订阅用户。

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/                 # 图片等静态素材暂存区