wxbot
WxBot 是一款功能丰富的个人微信机器人程序,旨在将微信打造成一个智能的多功能助手。它通过对接 Dean DLL、VLW 等底层框架,实现了消息的自动监听与处理,帮助用户轻松完成查天气、接入 ChatGPT 对话、设置定时任务以及公众号内容监控转发等日常操作,有效提升了微信使用的自动化水平。
该项目主要面向具备一定技术基础的开发者及极客用户。其核心亮点在于采用了“无侵入式”架构设计:WxBot 本身作为消息处理中间件,不直接提供微信 Hook 能力,而是通过标准 HTTP 接口与外部框架交互。这种设计使得用户可以灵活扩展插件或接入新的底层框架,只需实现简单接口即可定制专属功能。项目提供了详细的开发文档、Docker 部署方案及新手视频教程,便于用户快速上手进行二次开发。
需要注意的是,WxBot 仅供学习交流使用。由于涉及非官方协议,使用时需自行配置相关环境并承担潜在的账号风险,建议用户在合规前提下谨慎探索其技术潜力。
使用场景
某电商运营团队需要在一个 500 人的核心客户微信群中,实时响应天气预警、处理订单查询并定时推送促销信息。
没有 wxbot 时
- 客服人员需 24 小时人工盯着群消息,一旦漏回客户关于“发货状态”的询问,极易引发投诉。
- 遇到暴雨等突发天气,管理员必须手动查询后逐条复制粘贴通知,耗时且无法保证全员及时收到。
- 每日固定的早报和晚间的促销活动依赖人工设闹钟发送,经常因忙碌而遗忘或时间不准。
- 想要统计群内高频问题或监控特定公众号文章转发情况,只能靠人工截图整理,效率极低。
使用 wxbot 后
- 部署查天气和 ChatGPT 聊天插件后,机器人能秒回客户的气象提醒及标准订单咨询,释放人力专注复杂客诉。
- 利用公众号监控转发功能,当官方发布新品推文时,wxbot 自动抓取并带摘要转发至群聊,确保营销零延迟。
- 通过设置定时任务插件,系统每天准时自动发送早安资讯与限时优惠链接,无需人工干预且从不缺席。
- 基于其无侵入扩展架构,团队快速开发了自定义“积分查询”插件,直接对接内部数据库实现群内自助服务。
wxbot 将繁琐重复的社群运维工作转化为自动化流程,让个人微信也能拥有企业级的智能服务能力。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
WxBot
这是什么?
一个还算有意思的微信机器人项目,理想将其设计成一个多功能的机器人助手 😈
- 🤨框架可无侵入扩展,现已接入
Dean DLL、、千寻框架vlw框架,请参考framework目录 - 🤨功能可无侵入扩展,现已集成
plugins目录下的功能,请参考plugins目录 - 🤨新手视频教程 📺
🔔 注意:
- 使用本项目之前需要您已经配置好相关的
微信的hook类软件,那么只需要在这类软件上设置回调地址即可 - 本项目已接入
Dean DLL、、千寻vlw三个框架,如果您有其他框架,可自行添加(参考framework目录,实现IFramework接口即可),或联系我添加 - 本项目不提供任何
hook类软件,您需要利用搜索引擎自行寻找 - 本项目暂时只支持HTTP协议,关于websocket协议支持目前不考虑
- 简而言之,本项目是一个消息处理的中间件,微信消息监听获取是从框架获取
- 本项目仅供学习交流使用,不得用于商业用途,否则后果自负
- 使用本项目造成封禁账号等后果,本项目不承担任何责任,实际上您使用任何非官方的微信机器人都有可能造成账号封禁,所以请谨慎使用
- 如果您阅读了上面的内容,觉得没有问题,那么请继续阅读下面的内容
功能示例:

已对接框架
已对接API
🎁 已对接API,展开看👇
// IFramework 这是接入框架所定义的接口
type IFramework interface {
// Callback 这是消息回调方法,vx框架回调消息转发给该Server
Callback(func(*Event, IFramework))
// GetMemePictures 获取表情包图片地址(迷因图)
// return: 图片链接(网络URL或图片base64)
GetMemePictures(message *Message) string
// SendText 发送文本消息
// toWxId: 好友ID/群ID
// text: 文本内容
SendText(toWxId, text string) error
// SendTextAndAt 发送文本消息并@,只有群聊有效
// toGroupWxId: 群ID
// toWxId: 好友ID/群ID/all
// toWxName: 好友昵称/群昵称,留空为自动获取
// text: 文本内容
SendTextAndAt(toGroupWxId, toWxId, toWxName, text string) error
// SendImage 发送图片消息
// toWxId: 好友ID/群ID
// path: 图片路径
SendImage(toWxId, path string) error
// SendShareLink 发送分享链接消息
// toWxId: 好友ID/群ID
// title: 标题
// desc: 描述
// imageUrl: 图片链接
// jumpUrl: 跳转链接
SendShareLink(toWxId, title, desc, imageUrl, jumpUrl string) error
// SendFile 发送文件消息
// toWxId: 好友ID/群ID/公众号ID
// path: 本地文件绝对路径
SendFile(toWxId, path string) error
// SendVideo 发送视频消息
// toWxId: 好友ID/群ID/公众号ID
// path: 本地视频文件绝对路径
SendVideo(toWxId, path string) error
// SendEmoji 发送表情消息
// toWxId: 好友ID/群ID/公众号ID
// path: 本地动态表情文件绝对路径
SendEmoji(toWxId, path string) error
// SendMusic 发送音乐消息
// toWxId: 好友ID/群ID/公众号ID
// name: 音乐名称
// author: 音乐作者
// app: 音乐来源(VLW需留空),酷狗/wx79f2c4418704b4f8,网易云/wx8dd6ecd81906fd84,QQ音乐/wx5aa333606550dfd5
// jumpUrl: 音乐跳转链接
// musicUrl: 网络歌曲直链
// coverUrl: 封面图片链接
SendMusic(toWxId, name, author, app, jumpUrl, musicUrl, coverUrl string) error
// SendMiniProgram 发送小程序消息
// toWxId: 好友ID/群ID/公众号ID
// ghId: 小程序ID
// title: 标题
// content: 内容
// imagePath: 图片路径, 本地图片路径或网络图片URL
// jumpPath: 小程序点击跳转地址,例如:pages/index/index.html
SendMiniProgram(toWxId, ghId, title, content, imagePath, jumpPath string) error
// SendMessageRecord 发送消息记录
// toWxId: 好友ID/群ID/公众号ID
// title: 仅供电脑上显示用,手机上的话微信会根据[显示昵称]来自动生成 谁和谁的聊天记录
// dataList:
// - wxid: 发送此条消息的人的wxid
// - nickName: 显示的昵称(可随意伪造)
// - timestamp: 10位时间戳
// - msg: 消息内容
SendMessageRecord(toWxId, title string, dataList []map[string]interface{}) error
// SendMessageRecordXML 发送消息记录(XML方式)
// toWxId: 好友ID/群ID/公众号ID
// xmlStr: 消息记录XML代码
SendMessageRecordXML(toWxId, xmlStr string) error
// SendFavorites 发送收藏消息
// toWxId: 好友ID/群ID/公众号ID
// favoritesId: 收藏夹ID
SendFavorites(toWxId, favoritesId string) error
// SendXML 发送XML消息
// toWxId: 好友ID/群ID/公众号ID
// xmlStr: XML代码
SendXML(toWxId, xmlStr string) error
// SendBusinessCard 发送名片消息
// toWxId: 好友ID/群ID/公众号ID
// targetWxId: 目标用户ID
SendBusinessCard(toWxId, targetWxId string) error
// AgreeFriendVerify 同意好友验证
// v3: 验证V3
// v4: 验证V4
// scene: 验证场景
AgreeFriendVerify(v3, v4, scene string) error
// InviteIntoGroup 邀请好友加入群组
// groupWxId: 群ID
// wxId: 好友ID
// typ: 邀请类型,1-直接拉,2-发送邀请链接
InviteIntoGroup(groupWxId, wxId string, typ int) error
// GetObjectInfo 获取对象信息
// wxId: 好友ID/群ID/公众号ID
// return: User, error
GetObjectInfo(wxId string) (*User, error)
// GetFriends 获取好友列表
// isRefresh: 是否刷新 false-从缓存中获取,true-重新遍历二叉树并刷新缓存
// return: []*User, error
GetFriends(isRefresh bool) ([]*User, error)
// GetGroups 获取群组列表
// isRefresh: 是否刷新 false-从缓存中获取,true-重新遍历二叉树并刷新缓存
// return: []*User, error
GetGroups(isRefresh bool) ([]*User, error)
// GetGroupMembers 获取群成员列表
// groupWxId: 群ID
// isRefresh: 是否刷新 false-从缓存中获取,true-重新遍历二叉树并刷新缓存
// return: []*User, error
GetGroupMembers(groupWxId string, isRefresh bool) ([]*User, error)
// GetMPs 获取公众号订阅列表
// isRefresh: 是否刷新 false-从缓存中获取,true-重新遍历二叉树并刷新缓存
// return: []*User, error
GetMPs(isRefresh bool) ([]*User, error)
}
已有插件
🎁 已有插件 👇
- 百度百科-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/baidubaike"
- ChatGPT聊天-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/chatgpt"
- KFC疯狂星期四骚话-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/crazykfc"
- 获取表情原图-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/memepicture"
- 摸鱼办-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/moyuban"
- 查拼音缩写-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/pinyinsuoxie"
- 获取美女图片-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/plmm"
- 查天气-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/weather"
- 获取每日早报-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/zaobao"
- 管理相关-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/manager"
- 公众号监控转发-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/ghmonitor"
- 聊天热词云-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/wordcloud"
- 查ID-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/chaid"
- 有道翻译-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/youdaofanyi"
- 自动通过好友添加请求-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/friendadd"
- 选择困难症帮手-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/choose"
- 读取本地图片-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/localimage"
- 爬取图片到本地-点击查看使用说明
import _ "github.com/yqchilde/wxbot/plugins/localimagespider"
指令大全
如何使用?
本地运行
- 克隆代码
git clone https://github.com/yqchilde/wxbot.git
配置
config.yaml调试运行或编译
- 调试运行执行
go run main.go - 编译执行
make release
- 调试运行执行
Releases包
- 去Releases下载对应系统的编译包,解压后执行二进制文件即可
Docker运行
- 方式一:一键脚本启动
bash -c "$(curl -fsSL https://raw.fastgit.org/yqchilde/wxbot/hook/docker/run.sh)"
- 方式二:命令启动,注意提前配置
config.yaml,否则会报错
docker run -d \
--name="wxbot" \
-p 9528:9528 \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/data:/app/data \
yqchilde/wxbot:latest
Actions编译
- 先
fork本项目 - 在 https://github.com/settings/tokens 这里获取一个token用于给actions使用
- 给项目添加一个秘钥,名字为
WXBOT_TOKEN,值为上面获取的token - 自行创建一个tag,如
v1.0.0,然后等待actions编译完成,编译完成后会在release中生成对应的wxbot文件
如何开发?
制作插件或接入其他框架
🤔如果您想要扩展自己的插件,可以参考plugins目录下的插件
🤔如果您想要扩展其他框架,可以参考frameworks目录下的框架
🤔如果您需要增减插件,可编辑 plugins.yaml 中代码中去掉对应插件的导入或者添加对应插件的导入,照猫画虎即可
🔴修改完plugins.yaml后需要执行一次make plugins或go generate -tags plugins ./engine/plugins生成对应的plugins.go文件再去编译
- "github.com/yqchilde/wxbot/plugins/baidubaike" # 百度百科
- "github.com/yqchilde/wxbot/plugins/chatgpt" # GPT聊天
- "github.com/yqchilde/wxbot/plugins/crazykfc" # 肯德基疯狂星期四骚话
- "github.com/yqchilde/wxbot/plugins/ghmonitor" # 公众号消息监控转发
- "github.com/yqchilde/wxbot/plugins/manager" # 群组管理相关
- "github.com/yqchilde/wxbot/plugins/memepicture" # 表情包原图
- "github.com/yqchilde/wxbot/plugins/moyuban" # 摸鱼办
- "github.com/yqchilde/wxbot/plugins/pinyinsuoxie" # 拼音缩写翻译
- "github.com/yqchilde/wxbot/plugins/plmm" # 漂亮妹妹
- "github.com/yqchilde/wxbot/plugins/weather" # 天气查询
- "github.com/yqchilde/wxbot/plugins/zaobao" # 每日早报
- "github.com/yqchilde/wxbot/plugins/wordcloud" # 聊天热词
- "github.com/yqchilde/wxbot/plugins/chaid" # 查wxId
- "github.com/yqchilde/wxbot/plugins/youdaofanyi" # 有道翻译
参考案例
调试-环境变量
| 环境变量名 | 变量类型 | 说明 |
|---|---|---|
| DEBUG | bool | 优先级大于其他DEBUG_开头的变量,开启后开启所有DEBUG模式用于调试HTTP请求和调用日志文件名和行号 |
| DEBUG_LOG | bool | 用于调试调用日志文件名和行号 |
提交Pr注意项
- import包时顺序要规范,先import标准库,再import第三方库,最后import自己的库,例如:
import (
"errors"
"fmt"
"strings"
"sync"
"time"
"github.com/PullRequestInc/go-gpt3.
"github.com/yqchilde/wxbot/engine/control.
"github.com/yqchilde/wxbot/engine/pkg/log.
"github.com/yqchilde/wxbot/engine/pkg/sqlite.
"github.com/yqchilde/wxbot/engine/robot.
)
- 若提交的是
插件,请在plugins.yaml中添加对应的插件 - 若提交的是
插件,请在README.md中已有插件部分添加对应的插件 - 若提交的是
插件,请在plugins/README.md中添加对应的插件 - 提交代码请先
make plugins或go generate -tags plugins ./engine/plugins生成对应的plugins.go文件
Feature
开发计划:🕒 开发计划
如果您感觉这个项目有意思,麻烦帮我点一下star
这个项目待(不)补(完)充(善)很多东西,由于工作关系会抽出时间弄,感谢您发现并使用此仓库
如果您有疑惑可以加Q群讨论
打个广告
Thanks
JetBrains 开源证书支持
yqchilde/wxbot 项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 free JetBrains Open Source license(s) 正版免费授权,在此表达我的谢意。
开源项目
非Hook版机器人核心由 openwechat SDK实现,在
nohook分支,已暂停维护Hook版机器人框架我使用的是
《我的框架》已跑路,现在用的是千寻,Dean DLL,为hook分支hook分支大量借鉴了一个十分优秀的项目
ZeroBot-Plugin的设计方案 👍🏻,其中很多基础代码来自ZeroBot-Plugin,在此基础上扩展了支持wechat的方式,非常感谢,Thanks♪(・ω・)ノ
License
AGPL-3.0 license. See the LICENSE file for details.
版本历史
v1.7.22023/07/10v1.7.12023/07/10v1.7.02023/06/01v1.6.102023/03/21v1.6.92023/03/20v1.6.82023/03/19v1.6.72023/03/13v1.6.62023/03/13v1.6.52023/03/13v1.6.42023/03/12v1.6.32023/03/10v1.6.22023/03/09v1.6.12023/03/09v1.6.02023/03/09v1.5.42023/03/08v1.5.32023/03/06v1.5.22023/03/06v1.5.12023/03/06v1.5.02023/03/03v1.4.82023/03/03常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。


