2026-05-07 15:01:37 +08:00
2025-06-05 15:41:58 +08:00
2026-05-07 13:38:26 +08:00
2025-12-29 16:49:55 +08:00
2026-04-20 13:48:19 +08:00
2026-05-06 10:40:33 +08:00
2022-09-25 14:56:18 +08:00
2025-06-04 09:07:25 +08:00
2025-06-05 15:41:58 +08:00

ABOT

ABOT 是一个面向长期维护的微信机器人项目包含消息接入、插件体系、管理后台、MySQL / Redis 存储、定时任务以及 AI 扩展能力。
当前仓库已经完成一轮面向开源发布的工程整理,适合用于二次开发、私有部署和多版本 wechat_ipad server 接入演进。

项目特点

  • 插件化机器人主链路,便于按业务拆分能力
  • 自带 Dashboard 管理后台,支持状态查看、插件管理、消息与联系人相关页面
  • 支持 legacy_855server_864 两类 wechat_ipad server 适配入口
  • 配置统一走 .env + config.yaml,登录态运行时状态落到 provider 独立目录
  • 提供 Docker / Docker Compose 基础部署骨架,便于快速上线验证

当前能力范围

  • 微信消息接入与实时处理
  • 插件加载、启停、热更新治理
  • MySQL + Redis 数据存储
  • 联系人、群信息、消息归档、统计与部分运营分析页面
  • AI 自动回复、消息总结、成员画像、内容推送等扩展能力

快速开始

方式一Docker Compose

适合第一次快速跑通完整部署骨架。

  1. 复制 Docker 环境变量模板
cp .env.docker.example .env

Windows PowerShell

Copy-Item .env.docker.example .env
  1. 至少修改以下变量
  • ABOT_DB_PASSWORD
  • WECHAT_SERVER_URL
  • WECHAT_SERVER_IP
  • WECHAT_SERVER_PORT
  • WECHAT_SERVER_TYPE
  • WECHAT_SERVER_KEY:仅 server_864 必填
  • ABOT_DASHBOARD_PASSWORD
  • ABOT_DASHBOARD_SECRET_KEY
  1. 启动服务
docker compose up -d --build
  1. 访问 Dashboard
  • 默认地址:http://127.0.0.1:8888
  • 默认用户名:admin
  • 默认密码以你的 .envABOT_DASHBOARD_PASSWORD 为准

更完整的上线说明见 docs/Docker部署说明.md

方式二:本地直跑

  1. 准备 Python 3.10+
  2. 准备 MySQL、Redis
  3. 复制配置模板
cp config.example.yaml config.yaml
cp .env.example .env

Windows PowerShell

Copy-Item config.example.yaml config.yaml
Copy-Item .env.example .env
  1. 安装依赖
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
pip install pysilk-mod
  1. 启动项目
python main.py

配置约定

静态配置

推荐只维护以下两类文件:

  • .env
  • config.yaml

config.yaml 支持 ${ENV_NAME} / ${ENV_NAME:default} 占位符,因此更推荐把敏感配置写进 .env,把结构与默认值保留在 YAML 模板里。

wechat_ipad 配置

当前 wechat_ipad 的静态连接配置统一走环境变量:

  • WECHAT_SERVER_URL
  • WECHAT_SERVER_IP
  • WECHAT_SERVER_PORT
  • WECHAT_SERVER_TYPE
  • WECHAT_SERVER_KEY:仅 server_864 必填
  • WECHAT_LOGIN_QR_APIserver_864 登录二维码接口选择,默认 new_x
  • WECHAT_LOGIN_WAYserver_864 使用 GetLoginQrCodeNewX 时的终端形态,默认 mac

运行时状态不再要求人工维护,会自动写到:

  • wechat_ipad/providers/<server_type>/runtime_state.toml

这意味着:

  • 每个 provider 的登录态彼此隔离
  • 切换 855 / 864 不会默认串用同一份状态
  • 开源仓库不需要再长期维护多份分散配置文件

864 登录补充说明

server_864 现默认优先调用 POST /login/GetLoginQrCodeNewX 获取二维码;若目标 server 不支持,再自动回退到旧的 GetLoginQrCodeNew

部分 864 版本在扫码后不会立刻登录成功,而是会在 CheckLoginStatus 中返回 VerificationUrl。当前 Dashboard 已支持直接展示并打开这个链接,方便你在新环境完成微信安全验证。

Docker 交付说明

当前仓库已经提供以下开源友好交付物:

容器化方案的边界是:

  • abotmariadbredis 已拆成独立服务
  • wechat_ipad server 仍建议跑在宿主机或独立机器
  • Dashboard 账号、密码、Session Secret、Webhook Token 都支持环境变量覆盖

目录结构

abot/
├── admin/                # 管理后台
├── base/                 # 插件基础接口与管理能力
├── db/                   # 数据库访问层与 SQL 脚本
├── docs/                 # 部署、设计与路线图文档
├── plugins/              # 业务插件
├── utils/                # 通用工具与服务
├── wechat_ipad/          # 微信接入与 provider 适配层
├── Dockerfile
├── docker-compose.yml
├── config.example.yaml
├── .env.example
└── main.py

Dashboard 与默认安全项

Dashboard 默认配置文件位于 admin/dashboard/config.toml

为了适配公开仓库,这一层已经做了两件事:

  • 仓库中的默认密码已不再使用弱口令 admin123
  • Docker / 环境变量可以直接覆盖后台账号、密码和 webhook token

正式部署前仍建议你明确设置:

  • ABOT_DASHBOARD_USERNAME
  • ABOT_DASHBOARD_PASSWORD
  • ABOT_DASHBOARD_SECRET_KEY
  • ABOT_TRENDRADAR_WEBHOOK_TOKEN

License 与开源边界

主许可证

当前仓库主代码采用 MIT License

一般情况下,不需要为了“把仓库开源”额外改成别的许可证;但你仍需要确认两件事:

  1. LICENSE 中的版权主体是否就是你希望公开使用的名字
  2. 仓库里的第三方资源、字体、二进制是否都允许再分发

相关说明见 THIRD_PARTY_LICENSES.md

不建议直接公开提交的内容

  • .env
  • config.yaml
  • wechat_ipad/providers/*/runtime_state.toml
  • 真实数据库密码、LLM API Key、Webhook Token
  • 未确认授权来源的字体、二进制与业务素材

已知仍需你自行确认的事项

以下内容我已经在文档中标出来,但不适合由我直接替你做法律判断:

  • LICENSE 版权主体是否需要改成你当前对外公开的名称
  • fonts/ 下字体文件的再分发许可
  • wechat_ipad/ipad859go 的来源与授权
  • resource/ 目录中的业务资料是否适合公开仓库传播

路线图

当前更值得优先推进的方向:

  • 继续完善 864 provider 真机联调与高频接口覆盖
  • 补齐 Docker / 部署回归清单
  • 插件治理、任务中心、可观测性增强
  • 开源资产合规清点

已整理的工程规划文档:

使用与贡献说明

  • 欢迎按自己的场景二次开发
  • 提交代码前请确认未误带本地私有配置、日志和登录态
  • 涉及内容抓取、自动推送、第三方平台接口的能力,请自行评估合规与风控要求
Description
abot
Readme 132 MiB
Languages
Python 57%
JavaScript 28.8%
HTML 14.1%
Shell 0.1%