# ABOT ABOT 是一个基于插件体系构建的微信机器人项目,包含消息处理主链路、管理后台、MySQL/Redis 存储、定时任务与多类 AI / 内容插件能力。当前仓库更适合有一定 Python 与部署基础的维护者进行二次开发、私有部署与功能扩展。 ## 项目定位 - 面向“可持续迭代的机器人平台”,不是一次性脚本 - 核心能力包括消息接入、插件化处理、后台管理、数据归档与 AI 扩展 - 当前默认假设你具备 MySQL、Redis、Docker、环境变量配置的基础经验 ## 当前主要能力 - 微信消息接入与机器人主循环 - 插件加载、启停、热更新与后台管理 - MySQL + Redis 双存储 - AI 自动回复、消息总结、成员画像等能力 - 签到、积分、排行榜、内容推送、媒体处理等业务插件 ## 快速开始 ### 方式一:Docker Compose 适合第一次快速跑通部署骨架。 1. 复制 Docker 环境变量示例 ```bash cp .env.docker.example .env ``` Windows PowerShell: ```powershell Copy-Item .env.docker.example .env ``` 2. 按实际环境修改 `.env` 中的数据库密码、`WECHAT_SERVER_URL`、`WECHAT_SERVER_TYPE` 等参数 3. 启动服务 ```bash docker compose up -d --build ``` 更多说明见 [docs/Docker部署说明.md](/d:/learn/abot/docs/Docker部署说明.md:1)。 ### 方式二:本地直跑 1. 准备 Python 3.10+ 2. 准备 MySQL、Redis 3. 复制配置文件 ```bash cp config.example.yaml config.yaml cp .env.example .env ``` Windows PowerShell: ```powershell Copy-Item config.example.yaml config.yaml Copy-Item .env.example .env ``` 4. 安装依赖 ```bash python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt pip install pysilk-mod ``` 5. 启动主程序 ```bash python main.py ``` ## 配置说明 ### 全局配置 项目支持从 `.env` 自动加载环境变量,并在 [config.example.yaml](/d:/learn/abot/config.example.yaml:1) / `config.yaml` 中使用: - `${ENV_NAME}` - `${ENV_NAME:默认值}` 示例: - `${ABOT_DB_PASSWORD}`:必须提供 - `${ABOT_DB_HOST:127.0.0.1}`:可缺省时回退 ### wechat_ipad 配置 现在 `wechat_ipad` 的静态连接参数已经统一走 `.env` / `config.yaml`: - `WECHAT_SERVER_URL` - `WECHAT_SERVER_IP` - `WECHAT_SERVER_PORT` - `WECHAT_SERVER_TYPE` 登录后的 `wxid / device_id / device_name` 不再要求你手工维护,它们会自动写入本地状态文件: - 默认路径:`wechat_ipad/providers//runtime_state.toml` - 可通过 `WECHAT_STATE_FILE` 覆盖 - 启动时会自动兼容历史 `wechat_ipad/config.toml` 中已有的登录态 ## 目录结构 ```text abot/ ├── admin/ # 管理后台 ├── base/ # 插件基础接口与管理能力 ├── db/ # 数据库访问层与迁移脚本 ├── docs/ # 部署、设计、使用文档 ├── plugins/ # 业务插件 ├── utils/ # 通用工具与服务 ├── wechat_ipad/ # 微信相关客户端与 server 对接代码 ├── Dockerfile ├── docker-compose.yml ├── config.example.yaml ├── .env.example └── main.py ``` ## 管理后台 - 默认端口:`8888` - 配置文件:[`admin/dashboard/config.toml`](/d:/learn/abot/admin/dashboard/config.toml:1) - 公开仓库中的账号密码与 webhook token 已改为占位值,部署前务必自行修改 ## Docker 化现状 本仓库现在提供的是“开源友好”的基础部署骨架: - 应用、MariaDB、Redis 已拆分为独立服务 - 提供 `docker-compose.yml`、`.dockerignore`、`.env.docker.example` - 静态连接配置统一通过 `.env` 注入,更适合开源仓库和多环境部署 - wechat 登录态缓存默认落到对应 provider 目录下 当前仍建议你在正式生产前继续补充: - HTTPS / 反向代理 - 备份策略 - CI/CD - 监控与告警 ## 开源说明 ### License 要不要改 当前主代码仍按 MIT License 分发,通常不必为了“开源”单独换许可证。 但你需要额外关注: - 字体文件的再分发许可 - `wechat_ipad/ipad859go` 二进制来源与授权 - `resource/` 下业务资料是否适合公开 - 第三方前端静态资源的许可证保留 详情见 [THIRD_PARTY_LICENSES.md](/d:/learn/abot/THIRD_PARTY_LICENSES.md:1)。 ### 不建议公开提交的内容 - `.env` - `config.yaml` - `wechat_ipad/providers/*/runtime_state.toml` 中的真实 `wxid` / `device_id` - 真实数据库密码、LLM API Key、Webhook Token ## 路线图 当前更优先的方向不是继续无上限堆新功能,而是继续补工程底座: - Docker 化与部署规范 - 文档与回归清单 - 插件治理 - 可观测性与任务中心 - 开源边界与资产合规 已整理的工程 backlog 见 [docs/工程优化与Feature清单.md](/d:/learn/abot/docs/工程优化与Feature清单.md:1)。 ## 贡献与使用说明 - 欢迎基于自己的场景二次开发 - 提交前请避免把本地私有配置、运行日志、登录态一并提交 - 涉及平台接口、内容抓取、自动推送等能力时,请自行评估目标平台规则与当地法律要求