一个基于Python的微信桌面客户端自动化机器人,支持多联系人、群聊的智能对话和定时任务管理。
适用于微信4.16版本 python 3.12版本
本项目不关联微信内部逻辑实现,不获取微信控件,仅依靠截屏图像匹配消息位置和内容,不保证可行性
- 多会话管理:同时监控多个联系人和群聊
- 智能对话:基于AI模型的自然语言对话
- @提及触发:在群聊中通过@关键词触发回复
- 消息检测:自动检测新消息并智能回复
- 历史记录:完整的对话历史保存
已提供工具调用示范,支持通用MCP服务器和本地工具服务器实现
- 定时消息:预设时间发送消息
- 周期任务:周期性执行自动化任务
- 条件触发:基于特定条件触发任务
WechatRobot/
├── main_auto.py # 自启动主程序入口
├── main.py # 主程序入口
├── README.md # 项目说明文档
├── .gitignore # Git忽略文件
├── config_manager.py # 配置管理模块
├── window_manager.py # 窗口管理模块
├── message_detector.py # 消息检测模块
├── chat_session.py # 聊天会话管理
├── tool_client.py # 工具客户端
├── scheduler_service.py # 定时任务服务
├── wechat_bot_data/ # 数据存储目录
│ ├── chat_config.json # 聊天配置
│ ├── scheduler_config.json # 定时任务配置
│ ├── chat_histories/ # 聊天历史记录
│ ├── debug_images/ # 调试截图
│ └── avatar_mappings/ # 头像映射
└── mcp/ # 本地MCP工具服务器实现
├── package.json # Node.js依赖
└── tools-manifest.json # 工具清单
├──……
wechat_bot_data下运行一次就自动生成结构了,mcp下是可选的自行实现的工具服务器
# 克隆项目
git clone <repository-url>
cd WechatRobot
# 安装Python依赖
pip install -r requirements.txt可以先运行一次python main.py来自动生成项目结构和配置文件
- 编辑聊天配置 (
wechat_bot_data/chat_config.json):
{
"contacts": [
{
"name": "联系人名称",
"system_prompt": "AI角色设定"
}
],
"groups": [
{
"name": "群聊名称",
"trigger_user": "触发用户"
}
],
"check_interval": 2,
"mention_triggers": ["@关键词"]
}- 配置环境变量 (
.env):
# api密钥等配置
确保存在微信窗口,切换到正确的python环境,然后运行
python main.py
如果尚未登录微信:
python main_auto.py
contacts: 监控的联系人列表groups: 监控的群聊列表check_interval: 消息检查间隔(秒)mention_triggers: 群聊@触发关键词default_contact_prompt: 默认联系人AI设定default_group_prompt: 默认群聊AI设定
{
"tasks": [
{
"name": "任务名称",
"type": "send_message",
"target": "联系人/群聊",
"content": "消息内容",
"schedule": "cron表达式",
"enabled": true
}
]
}{
"contacts": [
{
"name": "张三",
"system_prompt": "你是AI助手,回复要简洁友好"
}
]
}{
"groups": [
{
"name": "技术交流群",
"trigger_user": "管理员"
}
],
"mention_triggers": ["@助手", "@AI"]
}{
"tasks": [
{
"name": "早安问候",
"type": "send_message",
"target": "技术交流群",
"content": "大家早上好!🌞",
"schedule": "0 9 * * *",
"enabled": true
}
]
}-
无法检测到微信窗口
- 配置正确的微信exe文件路径
- 检查当前版本微信的窗口标题与类名
-
工具调用失败
- 确保运行MCP或自行实现的服务器
-
消息检测不准确
- 查看
debug_images/中的调试截图自行分析原因 - 调整
message_detector.py中的检测参数
- 查看
4.头像匹配错误/识别为未知用户
- 填写OCR api
- 手动下载头像图片,以
<用户名>.png命名,保存到对应avatar_mappings/下文件夹
- 程序运行日志在控制台输出
- 调试截图保存在
wechat_bot_data/debug_images/ - 聊天历史保存在
wechat_bot_data/chat_histories/
本项目代码仅供学习和研究目的,请遵守相关法律法规,不得用于:
- 违反微信用户协议的行为
- 商业用途
- 大规模自动化操作
使用者需自行承担所有风险。
注意: 使用本程序前请确保遵守微信用户协议和相关法律法规。