Skip to content

Repository files navigation

微信多联系人/群聊智能机器人 🤖

一个基于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下是可选的自行实现的工具服务器

🚀 快速开始

1. 环境准备

Python环境 (主程序)

# 克隆项目
git clone <repository-url>
cd WechatRobot

# 安装Python依赖
pip install -r requirements.txt

2. 配置设置

可以先运行一次python main.py来自动生成项目结构和配置文件

  1. 编辑聊天配置 (wechat_bot_data/chat_config.json):
{
  "contacts": [
    {
      "name": "联系人名称",
      "system_prompt": "AI角色设定"
    }
  ],
  "groups": [
    {
      "name": "群聊名称",
      "trigger_user": "触发用户"
    }
  ],
  "check_interval": 2,
  "mention_triggers": ["@关键词"]
}
  1. 配置环境变量 (.env):
# api密钥等配置

3. 启动程序

确保存在微信窗口,切换到正确的python环境,然后运行

python main.py

如果尚未登录微信:

python main_auto.py

按Tab结束程序

⚙️ 配置说明

聊天配置 (chat_config.json)

  • contacts: 监控的联系人列表
  • groups: 监控的群聊列表
  • check_interval: 消息检查间隔(秒)
  • mention_triggers: 群聊@触发关键词
  • default_contact_prompt: 默认联系人AI设定
  • default_group_prompt: 默认群聊AI设定

定时任务配置 (scheduler_config.json)

{
  "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
    }
  ]
}

🐛 故障排除

常见问题

  1. 无法检测到微信窗口

    • 配置正确的微信exe文件路径
    • 检查当前版本微信的窗口标题与类名
  2. 工具调用失败

    • 确保运行MCP或自行实现的服务器
  3. 消息检测不准确

    • 查看 debug_images/ 中的调试截图自行分析原因
    • 调整 message_detector.py 中的检测参数

4.头像匹配错误/识别为未知用户

  • 填写OCR api
  • 手动下载头像图片,以<用户名>.png命名,保存到对应avatar_mappings/ 下文件夹

日志查看

  • 程序运行日志在控制台输出
  • 调试截图保存在 wechat_bot_data/debug_images/
  • 聊天历史保存在 wechat_bot_data/chat_histories/

免责声明

本项目代码仅供学习和研究目的,请遵守相关法律法规,不得用于:

  • 违反微信用户协议的行为
  • 商业用途
  • 大规模自动化操作

使用者需自行承担所有风险。


注意: 使用本程序前请确保遵守微信用户协议和相关法律法规。

About

利用图像识别判断控件位置实现微信自动化

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages