码桶
发现社区成员的开源项目
版本历史
5 次提交提交详情
f18b103提交编号
f18b103be8d8545c2f1cc345cdaf3be041f5ebf1提交作者奶狗<codebucket@localhost>
提交时间2026-07-28 21:32:30 +0800
更新说明更新 README.md
文件变更 1 个文件
文件新增删除
README.md+267-54文件差异 逐行查看本次提交的修改
README.md+267-54
@@ -1,39 +1,49 @@1
-# 开源说明1
+# 奶狗 WeBot2
-感谢你关注 **奶狗 WeBot**(个人版)。本文件说明本项目的开源许可、开源范围、与商业版的关系,以及如何参与共建。2
+> 一个跑在你自己服务器上的 **微信智能机器人**。基于微信 **iLink 开放平台**,内置 AI 智能助手、插件系统、技能 / MCP 工具、超级记忆、知识库、定时提醒等能力。**单用户、本地优先、数据自持**,开箱即用。3
-4
-## 1. 开源许可3
+[](https://opensource.org/licenses/MIT)4
+[](https://nodejs.org)5
+[]()5
-奶狗 WeBot 个人版以 **MIT 许可证** 开源,详见仓库根目录 [LICENSE](./LICENSE) 文件。6
+---6
-在遵守 MIT 条款的前提下,你可以:7
-- ✅ 自由使用、复制、修改、分发本软件;8
-- ✅ 用于个人学习与自用;9
-- ✅ 基于源码进行二次开发;10
-- ❌ 但**不提供任何担保**(见 LICENSE 原文)。7
+## 💡 这是什么8
+奶狗 WeBot 是 [WeBot Plus](https://www.naigou.cn/contact/)(商业版)面向个人用户开源发布的精简版本,专注于「一个人 + 自己的微信号」的单机使用场景,未包含多用户、会员、积分、卡密售卖、后台管理等商业运营能力。11
-## 2. 开源范围9
+你可以用它:12
-开源内容包含:13
-- 完整的后端源码(`server.js` / `lib/` / `routes/` / `services/` / `plugins/`);14
-- 前端源码与构建产物(`web/`);15
-- 文档(`docs/`、本说明、使用手册、README)。10
+- 把微信机器人接上大模型(OpenAI / 通义 / DeepSeek / 任意 OpenAI 兼容接口),让它替你聊天、查资料、写文案;11
+- 让 AI **自动记住你说过的账号、地址、纪念日、卡证**等(可随时查看 / 编辑 / 删除);12
+- 一句话**设置提醒、订阅 RSS、生成图片、转写语音、检索你的知识库**;13
+- 安装社区 / 自己写的**插件**扩展能力;连接 **MCP 服务器**、安装**技能包**;14
+- 所有数据存在本地 SQLite,不依赖任何外部服务,**隐私可控**。16
-开源版本即「**个人版**」:17
-- 单管理员、本地优先、数据自持;18
-- 所有高级能力(MCP / 技能 / 插件)**全部免费开放**,无会员门槛。15
+> 本版本所有高级能力(MCP / 技能 / 插件)**全部免费开放**,无会员门槛。1916
---20
-## 3. 与商业版(WeBot Plus)的关系17
+## ✨ 功能特性21
-奶狗 WeBot 个人版是 **WeBot Plus(商业版 / 多人版)** 的开源精简版本,专注于「一个人 + 自己的微信号」的单机使用场景。18
+### 核心19
+- **微信机器人绑定** — 控制台扫码即绑,自带聊天控制台(可收发图文 / 语音 / 文件)20
+- **AI 智能助手(smart)** — 自然语言交互,无需指令前缀,自动识别意图21
+- **插件系统** — 官方插件一键安装 / 启用 / 禁用;支持上传自己的插件22
+- **技能 & MCP** — 安装技能包、连接 MCP 服务器,扩展 AI 工具调用(均免费)23
+- **用户记忆(Memory)** — 自动沉淀重要信息,Markdown 可读写,隐私优先、可关闭24
+- **知识库 / IMA** — 检索与写入知识库、笔记,智能问答25
+- **定时提醒 / RSS / 每日简报 / 关键词回复** — 消息自动化26
+- **AI 图片生成、语音转文字、邮件** 等实用工具22
-两者的主要区别:27
+### AI 智能助手细节28
+- 支持任意 **OpenAI 兼容** API(可自定义 endpoint、模型、Key)29
+- **Function Calling** 自动工具调用 + 多轮对话上下文(内存缓存 30 分钟)30
+- **微信语音自动转文字**:本地 Whisper(默认)或云端转写,识别后由 AI 理解回复31
+- **AI 图片生成**:独立图片接口(非对话接口),支持 base64 内联返回,国内服务器友好32
+- Token 用量统计与限额33
+34
+### 与 WeBot Plus(商业版,需商业授权)的区别2335
| 能力 | 奶狗 WeBot(个人版) | WeBot Plus(商业版,需商业授权) |2436
|------|------|------|@@ -46,61 +56,264 @@4656
| 智能助手模型 | 统一「AI 配置」全局模型 | 可逐机器人自定义 |4757
| 数据存储 | 内置 SQLite(零配置) | 可选 MySQL |48
-> 开源版与商业版**同源不同形态**:商业版面向团队运营与企业场景,提供多用户、会员、后台等能力,需商业授权。58
+---59
+60
+## 🧱 技术栈61
+62
+| 层级 | 技术 |63
+|------|------|64
+| 运行时 | Node.js ≥ 20 |65
+| Web 框架 | Express 4 |66
+| 数据库 | SQLite(`node:sqlite`,无需额外安装) |67
+| 消息通道 | 微信 iLink OpenAPI |68
+| 前端 | React 18 + Vite 5 + TypeScript + Tailwind CSS + shadcn/ui + Radix + sonner |69
+| 本地推理 | `@huggingface/transformers` + `onnxruntime-node`(Whisper 语音识别) |70
+| 配置 | dotenv |71
+72
+---73
+74
+## 🚀 快速开始75
+76
+### 环境要求77
+- **Node.js ≥ 20**(推荐 20 LTS 或 22)78
+- 一台能联网的普通机器(iLink 走云端通道,**无需公网 IP 或独立服务器**)79
+- 一台已安装 **微信** 的手机(用于扫码绑定机器人)80
+- (可选)一个 OpenAI 兼容的 AI 接口地址与 Key81
+82
+### 1. 获取代码83
+```bash84
+git clone https://github.com/你的用户名/ngbot-open.git85
+cd ngbot-open86
+```87
+88
+### 2. 安装依赖89
+```bash90
+npm install91
+```92
+> 仅服务端依赖。前端源码在 `web/`,已提供构建产物;如需自行改前端见下文「开发模式」。93
+94
+### 3. 配置(可选但推荐)95
+复制 `.env.example` 为 `.env` 并按需修改:96
+```bash97
+cp .env.example .env98
+```99
+最简配置只需改两项(详见「配置说明」):100
+```env101
+PORT=3000102
+SESSION_SECRET=请改成一段随机字符串103
+```104
+105
+### 4. 启动106
+```bash107
+node server.js108
+```109
+看到日志输出监听端口即启动成功。浏览器访问 `http://你的服务器IP:3000`。110
+111
+> 💡 生产环境可用 `pm2`:`pm2 start ecosystem.config.js`,项目已附带 `ecosystem.config.js`。112
+113
+### 5. 登录114
+首次打开会跳到登录页。默认账号:115
+- **账号**:`admin`116
+- **密码**:`admin123`117
+118
+登录后请到「个人中心」修改密码。119
+120
+### 6. 绑定你的微信机器人121
+1. 左侧进入「控制台」;122
+2. 点击「创建机器人」,会生成一张二维码;123
+3. 用**手机微信**扫码(需微信内已具备 iLink 通道)完成绑定;124
+4. 状态变为「已绑定」后,即可在微信里给机器人发消息,或直接在控制台聊天框测试。49125
---50
-## 4. 商业授权126
+## ⚙️ 配置说明51
-如果你需要:52
-- 多用户 / 团队运营;53
-- 会员、积分、卡密售卖等商业化能力;54
-- 独立管理后台;55
-- 商业部署支持与定制;127
+配置文件为项目根目录 `.env`(不存在则使用默认值)。常用项:56
-请使用 **WeBot Plus(商业版)** 并获取商业授权:👉 https://www.naigou.cn/contact/128
+| 变量 | 默认 | 说明 |129
+|------|------|------|130
+| `PORT` | `3000` | 服务端口 |131
+| `SESSION_SECRET` | `change-me-to-random-string` | **务必改成随机串**,否则会话可被伪造 |132
+| `WORKER_KEY` | `ilink_worker_2024` | `/worker?key=` 轮询密钥;仅本地轮询用,暴露在公网时请修改 |133
+| `ILINK_BASE` | `https://ilinkai.weixin.qq.com` | iLink 通道地址,一般无需改 |134
+| `ILINK_CDN` | `https://novac2c.cdn.weixin.qq.com/c2c` | 媒体 CDN 地址 |135
+| `CHANNEL_VERSION` | `2.0.0` | 通道版本 |136
+| `BASE_URL` | 空 | 公网可访问的基础地址(用于回调 / webhook),本地可留空 |137
+| `SQLITE_PATH` | `data/app.db` | SQLite 数据库文件路径 |57
-开源个人版**不可**用于未经授权的商业售卖或再分发收费;若你有商业诉求,请先取得商业授权。138
+> 数据目录 `data/` 与日志目录 `logs/` 会在运行时自动创建,建议备份 `data/`。58139
---59
-## 5. 贡献指南140
+## 🧭 使用指南141
+142
+### AI 配置(最重要)143
+左侧「**AI 配置**」是**全局唯一的 AI 入口**,智能助手直接复用它:144
+- **对话接口**:填写 OpenAI 兼容的 `API Base` / `API Key` / 模型名;145
+- **图片生成**:独立接口(与对话分开),填图片接口 Base / Key / 模型 / 尺寸;146
+- **语音识别**:选择本地 Whisper 或云端转写;147
+- 保存后即时生效,无需重启。60
-欢迎参与共建!你可以:148
+### 智能助手(smart)149
+装好机器人后,直接在微信里对机器人说话即可,**不用加任何前缀**:150
+- 「帮我记一下我的快递单号是 SF123456」→ 写入记忆151
+- 「明天上午 9 点提醒我开会」→ 定时提醒152
+- 「今天有什么新闻 / 来份早报」→ 每日简报153
+- 「画一只在月亮上睡觉的猫」→ AI 图片生成154
+- 「我的记忆 / 导出记忆 / 关闭记忆」→ 记忆管理61
-1. **提交 Issue**:报告 Bug、提出功能建议;62
-2. **提交 Pull Request**:修复问题或增强功能;63
-3. **开发插件**:编写自己的插件并分享(见 `docs/插件开发指南.md`);64
-4. **完善文档**:修正说明、补充使用示例。155
+### 插件156
+左侧「**插件市场**」→「系统插件」一键安装 / 启用;「用户插件」可上传自己的 `.js` 插件(仅你自己可用)。每个插件可调独立配置。65
-提交 PR 前请确保:66
-- 代码可运行、无明显语法错误;67
-- 不引入未声明依赖;68
-- 改动与个人版定位一致(单用户、本地优先)。157
+### 技能 & MCP158
+- **技能**:安装技能包(系统提示扩展 / 自定义工具 / 对话模板),增强 AI 行为。159
+- **MCP**:填写 MCP 服务器地址,工具会被自动发现并暴露给 AI 调用。160
+161
+### 用户记忆(Memory)162
+「用户记忆」页可查看 / 在线编辑 / 下载 / 清除 AI 为你沉淀的信息。默认开启、隐私优先,可随时关闭。163
+164
+### 控制台165
+「控制台」即聊天面板:可像微信一样收发消息,支持发送图片 / 文件 / 语音 / 视频,并实时显示插件处理事件日志,方便调试。166
+167
+### 个人中心168
+修改登录密码、查看账号信息。69169
---70
-## 6. 免责声明170
+## 🔌 插件开发(简述)171
+172
+插件是 `plugins/<id>/index.js`,导出 `meta` 与 `onMessage(msg, ctx)`:71
-- 本软件按「**现状**」提供,**不提供任何明示或暗示的担保**,包括但不限于适销性、特定用途适用性的担保。72
-- 使用本软件所产生的任何风险(如账号安全、消息内容、第三方接口费用等)由使用者自行承担。73
-- 请遵守微信 iLink 开放平台及相关服务条款,合理使用,避免骚扰或违规操作。74
-- 本项目与腾讯公司无官方关联;「微信」「iLink」等为相关权利人的商标。173
+```js174
+module.exports = {175
+ meta: {176
+ id: 'hello',177
+ name: '示例插件',178
+ description: '收到 hi 回复你好',179
+ version: '1.0.0',180
+ builtin: true,181
+ },182
+ async onMessage(msg, ctx) {183
+ if (msg.content === 'hi') await ctx.sendText('你好呀!')184
+ },185
+}186
+```187
+188
+- `ctx.sendText(text)` / `ctx.sendMedia(path, mediaType, filename, playtime)` 发送消息;189
+- 用户配置通过 `meta.settingsSchema` 声明,前端自动生成表单;190
+- 改完插件需重启 `server.js` 生效。191
+192
+完整文档见 `docs/插件开发指南.md`(控制台「文档」可在线查看)。75193
---76
-## 7. 商标与品牌194
+## 🗂️ 目录结构195
+196
+```197
+ngbot-open/198
+├── server.js # 后端入口(Express + 静态托管 + SPA fallback)199
+├── config/ # 配置加载(合并 .env)200
+├── lib/ # 核心库:auth / db / plugins / stt ...201
+├── routes/ # HTTP 路由(api / skill / market ...)202
+├── plugins/ # 内置插件(smart / mcp / skill / memory / ima-knowledge ...)203
+├── services/ # worker 轮询、消息处理204
+├── web/ # 前端(React + Vite),构建产物在 web/dist205
+│ ├── src/ # 源码206
+│ └── dist/ # 构建产物(已由 npm run build 生成)207
+├── docs/ # 使用 / 插件开发文档208
+├── data/ # SQLite 数据库(运行时生成,建议备份)209
+├── logs/ # 运行日志(运行时生成)210
+├── .env.example # 配置样例211
+└── package.json212
+```77
-「**奶狗 WeBot**」为个人版品牌,「**WeBot Plus**」为商业版品牌。在开源使用与二次分发时,请保留原始版权与许可声明,勿冒用品牌进行误导性宣传。213
+---214
+215
+## 🛠️ 开发模式216
+217
+改前端时需要重新构建:218
+```bash219
+cd web220
+npm install221
+npm run dev # 本地开发服务器 :5173,代理到后端222
+# 或仅构建产物:223
+npm run build # 输出到 web/dist,由 server.js 托管224
+```225
+> ⚠️ 改了 `web/src` 后**必须** `npm run build`,否则 `server.js` 仍提供旧的 `web/dist`。78226
---79
-## 8. 联系我们227
+## 🚢 部署建议80
-- 商业授权 / 合作:https://www.naigou.cn/contact/81
-- 问题反馈:仓库 Issues82
-- 赞助支持:见 [README.md](./README.md) 末尾赞助二维码228
+- **反向代理**:用 Nginx / Caddy 将域名反代到 `http://127.0.0.1:3000`,并配置 HTTPS;此时设 `BASE_URL=https://你的域名`。229
+- **进程守护**:`pm2 start ecosystem.config.js`(name `naigou-webot`)。230
+- **安全**:务必修改 `SESSION_SECRET`、登录密码;如对外暴露 `WORKER_KEY` 请一并修改。231
+- **备份**:定期备份 `data/app.db`。83232
---84
-*本项目基于 WeBot Plus(商业版)裁剪而来,感谢所有插件 / 技能的贡献者。*233
+## ❓ 常见问题234
+235
+**Q:机器人收不到消息 / 消息不回复?**236
+A:确认控制台机器人状态为「已绑定」;检查服务端日志 `logs/` 是否有 iLink 拉取错误。237
+238
+**Q:改了 AI Key 不生效?**239
+A:在「AI 配置」保存即生效(智能助手复用全局配置)。若仍无效,确认接口为 OpenAI 兼容且模型名正确。240
+241
+**Q:语音消息没反应?**242
+A:默认本地 Whisper 首次会下载模型(缓存于 `data/stt-models`,可能较慢);也可在「AI 配置」切到云端转写(需接口支持 `/v1/audio/transcriptions`)。243
+244
+**Q:能多用户吗?**245
+A:奶狗 WeBot 为单管理员设计,无多用户 / 会员体系。需要多人或商业授权,请使用 WeBot Plus(商业版)。246
+247
+---248
+249
+## 📄 许可证250
+251
+[MIT](LICENSE) — 可自由使用、修改、分发,但**不提供任何担保**。252
+253
+---254
+255
+## ☕ 致谢256
+257
+本项目基于 WeBot Plus(商业版)裁剪而来,感谢所有插件 / 技能的贡献者。258
+259
+---260
+261
+## 💖 赞助支持262
+263
+如果这个项目对你有帮助,欢迎扫码赞助我们 ☕ 你的支持是项目持续维护与迭代的动力!264
+265
+266
+267
+> 赞助后可在 Issues 留言,或加入交流群获取优先支持。268
+269
+---270
+271
+## 📦 主要依赖272
+273
+**后端(Node.js)**274
+- `express` · `express-session` · `session-file-store` — Web 服务与会话管理275
+- `cors` · `dotenv` · `multer` · `adm-zip` — 基础设施276
+- `axios` · `http-proxy-agent` · `socks-proxy-agent` — HTTP 请求与代理277
+- `bcryptjs` — 密码哈希278
+- `nodemailer` · `imapflow` · `mailparser` — 邮件收发与解析279
+- `silk-wasm` — 微信语音 silk 格式转码280
+- `@huggingface/transformers` · `onnxruntime-node` — 本地 Whisper 语音识别281
+282
+**前端**:React 18 · Vite 5 · TypeScript · Tailwind CSS · shadcn/ui · Radix UI · sonner(详见上文「🧱 技术栈」)283
+284
+## 🔗 参考项目与致谢285
+286
+- [微信 iLink 开放平台](https://ilinkai.weixin.qq.com) — 机器人绑定与消息通道能力来源287
+- **WeBot Plus(商业版 / 多人版)** — 本项目的完整版前身,个人版由其裁剪而来([商业授权](https://www.naigou.cn/contact/))288
+- 前端基于 [shadcn/ui](https://ui.shadcn.com) · [Radix UI](https://www.radix-ui.com) · [Tailwind CSS](https://tailwindcss.com) · [Vite](https://vitejs.dev) 等开源生态构建289
+- 本地语音识别基于 [Hugging Face transformers.js](https://huggingface.co/docs/transformers.js) 与 [ONNX Runtime](https://onnxruntime.ai)290
+291
+---292
+293
+## 📚 更多文档294
+295
+- [使用手册](./使用手册.md) — 从安装部署到各功能上手的逐步指南296
+- [开源说明](./开源说明.md) — 许可、开源范围、与商业版关系、贡献与免责297
+- 插件开发:`docs/插件开发指南.md`(控制台「文档」可在线查看)