
wxbot
一个调用本地大模型实现自动回复的微信机器人,支持文字和表情包。
Repository Info
About This Server
一个调用本地大模型实现自动回复的微信机器人,支持文字和表情包。
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
前言
这是第一版,其实很简单,就是将别人给的 demo 调用大模型网络 api 方式改成了调用本地部署的大模型进行回复消息对话,完成于 2025.4.30。
看到 tuya 开发者群里的机器人,心血来潮也想做个有 AI Agent 能力的微信机器人,结果只做成单一的微信机器人 AI 自动回复消息。至于只用本地大模型第一是因为 api 要钱不想花钱,第二是,当最强的大模型在和博士 pk 时,其他大模型可以用得很好了,完全够普通人用。他们在大模型混战是因为要争 AI 高地,而普通人能用,达到普通人预期要求就行。
参考:
wxauto 的 github 项目 cluic/wxauto: Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人
功能:
监听微信用户,调用本地 ollama 大模型,使用AI逐句回复消息,能识别文字和表情包(deepseek除外)。
技术栈:
- wxauto
- ollama
- python
- qwen3
- curosr
部署:
1、安装 ollama 后,下载大模型
ollama run qwen3:4b
ollama run deepseek-r1:7b
ollama run qwen3:4b
2、安装 python 和 pycharm 后,安装依赖
pip install -r requirements
3、修改为本地的大模型名字
# 初始化Ollama模型
ollama = Ollama(
model_name=os.getenv('OLLAMA_MODEL', 'deepseek-r1:7b'),
base_url=os.getenv('OLLAMA_BASE_URL', 'http://localhost:11434'), # 默认本地地址
prompt="你是一个小助理,用简洁利落的话回复人们的各种问题,回答时以txt纯文字格式,不要啰啰嗦嗦,风格像人在微信聊天那样,不要像个人机。在回复时,请将你的思考过程放在<think>和</think>标签之间,只将最终回复内容放在标签之外。"
)
4、修改监听目标,也就是要关注哪几个微信用户的信息并回复他们
# 指定监听目标
listen_list = [
'小号',
'文件传输助手'
]
5、打开微信桌面版并登录,保持打开状态。然后打开 ollama_chat.py,运行程序
测试:
prompt="你是一个微信小助理,用简洁利落的话回复人们的各种问题,回答时以txt纯文字格式,不要啰啰嗦嗦,风格像人在微信聊天那样,不要像个人机。在回复时,请将你的思考过程放在
1、测试问题:
-
“杭州最出名的是什么”
-
“昨天你推荐的咖啡点真不错!不过你之前说的要养猫,决定要养了吗”
-
“真的烦。。我挺想离职的。。。”
-
[动画表情]
程序启动后,仅测试当前单个微信用户的对话,测试调用下一个模型时,重新启动ollama重置大模型。
2、测试结果(仅供参考)
测了两轮而已,前一轮只有1 2 3问题,第二轮有包括表情包的全部共4个问题。
测试结果截图:
测量指标:
-
平均回复用时:假设用户(小号)的预期对方(我)打字回复时间耐心值为10秒。
-
回复质量:第一是从用户视角关注的,我要我觉得不要你觉得,用户主观感受至上;第二是回答的内容相关性,能和用户聊到一个话题。
-
综合评分:用时和质量各占一半。
| 大模型名称 | 平均回复用时(单位:秒) | 回复质量(0.6 * 自我感觉 + 0.4 * 相关性,满分10分) | 综合评分(0.5 * 100/用时 + 0.5 * 质量,满分10分) |
|---|---|---|---|
| deepseek-r1:7b | (14+15+11+25+17+12+17)/7 =15 | 0.6 * 8 + 0.4 * 8=8 | 0.5 *100/15 + 0.5 * 8=7.3 |
| qwen3:4b | (23+13+14+25+15+17+13)/7 =17 | 0.6 * 9+ 0.4 * 9 =9 | 0.5 * 100/17 + 0.5 * 9=7.4 |
| gemma3:4b | (14+12+9+13+11+9+9)/7 =11 | 0.6 * 10+ 0.4 * 9.5=9.8 | 0.5 *100/11 + 0.5 * 9.8=9.4 |
因此 9.4>7.4>7.3,可见 gemma3 用在微信机器人回复消息的功能上,体验还是很好的。
感受
还得是美国佬做的大模型质量好,毕竟理论知识都是他们搞的,大模型高质量的资料都是英文,而且清晰实在,而国内可能就用到“防火墙”的信息阻隔去卖课卖资料,国内做应用的多,但各有所长吧,美国那边适合发展 AI 基础生态,中国适合将技术落地做应用。
扯远了。deepseek 由于不支持图像,所以实在可惜,识别不了表情包。而通义千问 qwen3 还是 4 月底新出的,参数和往常一样堆得很猛,但是使用下来的体验就不那么尽人意,特别是每次启动问第一个问题花了近两倍时间才回答,是不是 qwen3 有冷启动?反而 gemma3 越问回答越快,连续的回答的用时还算平缓的减少,这就特别像人在忙,看到微信来消息拿手机打字回复,聊嗨了就回复快起来,想象一下吧,这是很贴合实际人在微信聊天的情况,这也是为什么我打 10 分自我感觉分,因为最贴合我想要的:“你是一个人,你在用微信聊天回消息”。
这第一版本缺陷很多,比如不同用户之间的信息会互相污染,比如用户1和微信机器人聊天,用户2问微信机器人之前和聊过什么,就泄露了和用户1的对话隐私,应要实现每个微信用户有各自的独立对话会话。还有多次测试时大模型会宕机,也许后续需要加上一个机制,一个大模型生成的内容是明显不符合要求的,就立刻调用备用大模型生成。确保完全生成好完整的回复内容,再进行切割处理发送消息。
后续再继续完成第2版吧,打算加上数据库和 MCP 工具,将聊天记录存储到mysql那样,优化检索,维持长期合作的客户,MCP 接入多种工具像地图搜索之类。做成定制化的 AI Agent。而不是只能在像 coze 的平台捆绑住,coze 的确是想要快速验证它的 AI 产品,快速迭代,但是 AI Agent 绝不只限于平台上。
Quick Start
Clone the repository
git clone https://github.com/jackhe183/wxbotInstall dependencies
cd wxbot
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.