微信聊天机器人:告别 Hook 与封号,利用多模态 Vision 模型给微信机器人装上了“眼睛”

0 阅读3分钟

image.png

一、 前言:为什么还要做微信机器人?

在 AI 大模型时代,将个人微信接入 LLM 实现自动化回复是一个刚需。但目前开发者面临两个极端痛点:

  1. 封号风险:基于 Web 协议、Hook 注入或 Token 抓取的方案,在当前微信版本下极易被识别为第三方插件,导致账号被封。
  2. 识别翻车:传统的 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 请求,本项目通过 pyautoguipyperclip 模拟真实的打字延迟(Typing Speed)和快捷键操作,最大程度规避行为审计。

2. 针对性 Prompt 调优

为了让豆包模型说话更像“真人”而非“客服”,我们通过严格的负面指令(Negative Prompts)封杀了表情包泛滥、波浪号以及做作的语气词。

Python

# 核心人设逻辑片段
SYSTEM_PROMPT = """
- 语气随性,像男大学生打字,能省字就省字。
- 彻底禁用 Emoji,禁用波浪号“~”。
- 遇到专业问题直接抛结论,严禁百科全书式科普。
"""

四、 项目优势

  • 全版本兼容:不依赖特定微信版本的 Offset,只要 UI 没大改,方案永远有效。
  • 极高安全性:不读取内存,不抓取 Token,对微信客户端零侵入。
  • 视觉容错:Vision 模型的加入,让机器人具备了理解表情包含义和纠正 OCR 错误的能力。

五、 开源与部署

为了方便哥们和开发者们“一键即用”,我将项目进行了模块化解耦,并提供了坐标校准工具:

  • 代码仓库:[点击跳转 GitHub 仓库地址]

  • 快速配置

    1. 运行 坐标获取器.exe 锁定微信窗口。
    2. config.py 填入豆包 API Key。
    3. 启动 bot.py 即可。

六、 结语

多模态模型(VLM)的普及正在改变自动化的实现路径。从“寻找协议漏洞”转向“模拟人类感知”,不仅是安全性的提升,更是 AI 工程化的新范式。

欢迎大家到 GitHub 仓库点个 Star ⭐️,一起交流更多 Vision 自动化的新玩法!

image.png