WechatBot 是一个个人自用的微信机器人项目,核心目标是把本地微信消息接入、AI 对话、生活记录和简单的 HTTP 接口整合到一套轻量脚本里。
项目当前的运行方式比较直接:
- 通过本地微信侧车程序提供的
WebSocket/HTTP接口收发消息 - 通过大模型接口生成私聊或群聊回复
- 通过
SQLite保存生活记录 - 通过
FastAPI暴露查询、记录和请求捕获接口
它不是面向团队协作的大型框架,更适合个人长期自用、二次改造,或者作为微信自动化脚手架继续扩展。
- 微信私聊自动回复
- 群聊
@机器人后触发上下文对话 - 多轮上下文管理,支持会话超时重置
- 通过
#类型 内容 时长的格式记录生活/工作日志 - 基于
SQLite的生活记录查询与删除 - 提供日历数据接口,便于前端或其他脚本读取
- 提供若干请求捕获接口,可用于记录访问内容和请求特征
- Python
- FastAPI
- Uvicorn
- websockets
- aiohttp
- aiosqlite
- SQLite
WechatBot/
├─ main.py # 微信消息监听入口,连接本地 WebSocket
├─ function.py # 机器人消息处理、AI 调用、消息发送、日志记录
├─ life.py # SQLite 生活记录读写封装
├─ server.py # FastAPI 服务,提供记录查询和请求捕获接口
├─ test.py # 简单网络连通性测试
├─ bin/
│ └─ wxbot-sidecar.exe # 本地微信侧车程序
├─ Data/
│ ├─ *.db # 本地 SQLite 数据库
│ ├─ user.json # 用户上下文或相关数据
│ └─ room.json # 群聊上下文或相关数据
└─ request_logs/ # 捕获到的请求日志
- 个人微信助手
- 个人知识问答或闲聊机器人
- 自己的生活记录/打卡系统
- 简单接口抓包与请求留档
- 本地自动化实验项目
- Windows 环境更合适,当前目录中已经包含
wxbot-sidecar.exe - Python 3.10 及以上
- 本地可用的微信侧车服务,默认监听
127.0.0.1:8080
项目里目前没有现成的 requirements.txt,可以先按实际 import 安装:
pip install fastapi uvicorn websockets aiohttp aiosqlite aiofiles requests pydantic项目依赖以下本地文件或目录:
Data/request_logs/- 生活记录数据库文件
- 用户/群聊上下文 JSON 文件
仓库里已经带有部分样例数据,但正式使用前建议自行清理或替换成自己的数据。
先确保本地微信侧车服务已经运行,再启动机器人监听:
python main.pymain.py 会连接:
ws://127.0.0.1:8080/ws/generalMsg
如果需要查询生活记录或记录请求,再启动接口服务:
python server.py默认监听:
http://0.0.0.0:9655
用户给机器人发送文本消息后,程序会读取上下文并调用大模型接口生成回复。
群内消息满足指定 @ 前缀时,会触发群聊上下文回复。当前代码里已经写死了几种称呼匹配方式。
给指定账号发送以下格式的消息即可记一条记录:
#类型 内容 时长
例如:
#运动 跑步 30
#学习 阅读《深入理解计算机系统》 45
删除最近一条记录:
#删除
GET /calendar/data/?name=fdxGET /calendar/today_data/?timestamp=时间戳&name=fdxPOST /calendar/new_record?name=fdx
请求体示例:
{
"type": "学习",
"content": "整理项目文档",
"status": true,
"password": "your-password"
}项目还提供了一组用于记录请求内容的接口:
/wallet_check_in/info/wallet_check_in/upload/track- 以及兜底的
/{path:path}
所有请求会被写入 request_logs/ 目录,便于后续排查和分析。
- 代码结构简单,适合快速改
- 本地文件存储为主,没有引入复杂中间件
- 状态数据直接落地 JSON / SQLite,调试成本低
- 部分账号、接口地址、口令和模型参数是直接写在代码里的,偏个人使用风格
如果你准备把这个项目公开到 GitHub,建议先处理下面几项:
- 把代码中的 API Key、密码、固定账号 ID 改成环境变量或本地配置文件
- 清理
Data/、request_logs/、bin/logs/等包含个人数据或运行痕迹的文件 - 统一
Data/data、room.json路径等本地大小写和目录问题,避免迁移到 Linux 后出错 - 补一个
requirements.txt,方便别人复现环境
- 接入
.env配置管理 - 增加命令系统和权限控制
- 增加定时任务能力
- 接入更多模型或多模型切换
- 增加 Docker 化部署
- 给生活记录接口补前端页面
本项目更适合作为个人研究、自动化实践和二次开发示例。请在了解微信自动化、账号安全和第三方模型调用风险的前提下自行使用。
Configure these variables before starting the bot or API server:
REALRPG_API_KEYREALRPG_BASE_URL(optional, defaults tohttps://api.deepseek.com)REALRPG_MODEL(optional, defaults todeepseek-chat)REALRPG_CALENDAR_API_PASSWORDREALRPG_WECHAT_BASE_URL(optional, defaults tohttps://ilinkai.weixin.qq.com)REALRPG_DATA_DIR(optional, defaults toData)
PowerShell example:
$env:REALRPG_API_KEY="your-api-key"
$env:REALRPG_CALENDAR_API_PASSWORD="your-calendar-password"The old local sidecar WebSocket integration has been replaced with the official WeChat ilink API flow.
- Run
python setup_wechat.py - Scan the printed QR content with WeChat and confirm login
- Run
python main.py
Credentials and sync state are stored under Data/wechat/ by default and are ignored by git.