一、 前言:为什么还要做微信机器人?
在 AI 大模型时代,将个人微信接入 LLM 实现自动化回复是一个刚需。但目前开发者面临两个极端痛点:
- 封号风险:基于 Web 协议、Hook 注入或 Token 抓取的方案,在当前微信版本下极易被识别为第三方插件,导致账号被封。
- 识别翻车:传统的 OCR 方案在处理截图时,经常把“天”识别成“夭”,导致 AI 接收到错误指令,回复变得语无伦次。
作为一名北大 智能 专业的学生,我尝试用多模态 Vision 模型彻底重构了自动回复的逻辑,实现了一套“物理外挂级”的安全方案。
二、 核心方案:从“读字”到“看图”的升维
本项目(WeChat-Vision-Bot)放弃了任何形式的协议入侵,转而采用类似人类的操作逻辑:看屏幕 -> 思考 -> 模拟打字。
1. 双核驱动架构
- 轻量级触发(OCR) :本地调用轻量化 OCR 模块进行高频屏幕轮询,仅用于捕捉“画面变动”和“触发关键词”,节省 API 开销。
- 重量级理解(Vision) :一旦触发,直接将聊天区域截图上传至豆包 Vision Pro。视觉模型会结合 UI 排版和文字内容进行“脑补”,即便 OCR 识别错位,Vision 模型也能精准理解对方意图。
2. “物理失忆”记忆管理
针对 LLM 容易被历史记录中“AI 味”污染的问题,项目设计了启动即销毁的 SQLite 记忆管理机制。每次重启脚本都会物理删除 chat_history.db,确保 AI 每次上线都拥有最纯净的人设状态。
三、 硬核技术实现
1. 拟人化操作流
不同于瞬间发送的 API 请求,本项目通过 pyautogui 和 pyperclip 模拟真实的打字延迟(Typing Speed)和快捷键操作,最大程度规避行为审计。
2. 针对性 Prompt 调优
为了让豆包模型说话更像“真人”而非“客服”,我们通过严格的负面指令(Negative Prompts)封杀了表情包泛滥、波浪号以及做作的语气词。
Python
# 核心人设逻辑片段
SYSTEM_PROMPT = """
- 语气随性,像男大学生打字,能省字就省字。
- 彻底禁用 Emoji,禁用波浪号“~”。
- 遇到专业问题直接抛结论,严禁百科全书式科普。
"""
四、 项目优势
- 全版本兼容:不依赖特定微信版本的 Offset,只要 UI 没大改,方案永远有效。
- 极高安全性:不读取内存,不抓取 Token,对微信客户端零侵入。
- 视觉容错:Vision 模型的加入,让机器人具备了理解表情包含义和纠正 OCR 错误的能力。
五、 开源与部署
为了方便哥们和开发者们“一键即用”,我将项目进行了模块化解耦,并提供了坐标校准工具:
-
代码仓库:[点击跳转 GitHub 仓库地址]
-
快速配置:
- 运行
坐标获取器.exe锁定微信窗口。 - 在
config.py填入豆包 API Key。 - 启动
bot.py即可。
- 运行
六、 结语
多模态模型(VLM)的普及正在改变自动化的实现路径。从“寻找协议漏洞”转向“模拟人类感知”,不仅是安全性的提升,更是 AI 工程化的新范式。
欢迎大家到 GitHub 仓库点个 Star ⭐️,一起交流更多 Vision 自动化的新玩法!