码桶
发现社区成员的开源项目
版本历史
5 次提交提交详情
cabdcef提交编号
cabdcefd018a53f03ae5b568b33304775d72baa1提交作者奶狗<codebucket@localhost>
提交时间2026-07-28 21:34:59 +0800
更新说明更新项目文件
文件变更 86 个文件
文件新增删除
.env.example+31-0.gitignore+4-0LICENSE+21-0README.md+319-319ecosystem.config.js+26-0package-lock.json+3115-0package.json+30-0server.js+278-0upload-test/calc-plugin.js+101-0web/components.json+20-0web/dist/assets/index-CLwUcXvc.css+1-0web/dist/assets/index-fxOhqvHx.js+531-0web/dist/favicon.ico二进制二进制web/dist/favicon.svg+1-0web/dist/index.html+17-0web/index.html+15-0web/package-lock.json+3561-0web/package.json+47-0web/public/favicon.ico二进制二进制web/public/favicon.svg+1-0web/src/App.tsx+100-0web/src/components/DndPanel.tsx+239-0web/src/components/DocsModal.tsx+75-0web/src/components/ErrorBoundary.tsx+36-0web/src/components/Markdown.tsx+40-0web/src/components/McpConfig.tsx+146-0web/src/components/PluginConfigPanel.tsx+197-0web/src/components/PushConfig.tsx+242-0web/src/components/RssConfig.tsx+106-0web/src/components/RssFeedManager.tsx+119-0web/src/components/SkillConfig.tsx+606-0web/src/components/SupportCard.tsx+54-0web/src/components/layout/AppShell.tsx+200-0web/src/components/ui/alert-dialog.tsx+86-0web/src/components/ui/alert.tsx+39-0web/src/components/ui/avatar.tsx+37-0web/src/components/ui/badge.tsx+31-0web/src/components/ui/button.tsx+45-0web/src/components/ui/card.tsx+46-0web/src/components/ui/dialog.tsx+78-0web/src/components/ui/dropdown-menu.tsx+67-0web/src/components/ui/input.tsx+23-0web/src/components/ui/label.tsx+17-0web/src/components/ui/progress.tsx+24-0web/src/components/ui/scroll-area.tsx+39-0web/src/components/ui/select.tsx+81-0web/src/components/ui/separator.tsx+19-0web/src/components/ui/sheet.tsx+73-0web/src/components/ui/skeleton.tsx+7-0web/src/components/ui/sonner.tsx+21-0web/src/components/ui/switch.tsx+24-0web/src/components/ui/table.tsx+44-0web/src/components/ui/tabs.tsx+46-0web/src/components/ui/textarea.tsx+21-0web/src/index.css+107-0web/src/lib/api.ts+168-0web/src/lib/auth.tsx+51-0web/src/lib/logStore.ts+65-0web/src/lib/site.tsx+69-0web/src/lib/theme.tsx+61-0web/src/lib/utils.ts+6-0web/src/main.tsx+23-0web/src/pages/AutomationPage.tsx+545-0web/src/pages/Console.tsx+516-0web/src/pages/LogConsole.tsx+133-0web/src/pages/Login.tsx+91-0web/src/pages/Market.tsx+564-0web/src/pages/McpPage.tsx+125-0web/src/pages/MemoryPanel.tsx+377-0web/src/pages/NotFound.tsx+14-0web/src/pages/Privacy.tsx+70-0web/src/pages/Profile.tsx+347-0web/src/pages/ProxySettings.tsx+141-0web/src/pages/Settings.tsx+189-0web/src/pages/SkillPage.tsx+70-0web/src/pages/SmartPage.tsx+232-0web/src/pages/SystemStats.tsx+479-0web/src/pages/Terms.tsx+74-0web/src/pages/UploadPlugin.tsx+167-0web/src/vite-env.d.ts+1-0web/tsconfig.json+23-0web/tsconfig.node.json+12-0web/vite.config.ts+25-0worker.js+17-0使用手册.md+190-0开源说明.md+106-0文件差异 逐行查看本次提交的修改
README.md+319-319
@@ -1,319 +1,319 @@1
-# 奶狗 WeBot2
-3
-> 一个跑在你自己服务器上的 **微信智能机器人**。基于微信 **iLink 开放平台**,内置 AI 智能助手、插件系统、技能 / MCP 工具、超级记忆、知识库、定时提醒等能力。**单用户、本地优先、数据自持**,开箱即用。4
-5
-[](https://opensource.org/licenses/MIT)6
-[](https://nodejs.org)7
-[]()8
-9
-10
-## 💡 这是什么11
-12
-奶狗 WeBot 是 [WeBot Plus](https://www.naigou.cn/contact/)(商业版)面向个人用户开源发布的精简版本,专注于「一个人 + 自己的微信号」的单机使用场景,未包含多用户、会员、积分、卡密售卖、后台管理等商业运营能力。13
-14
-你可以用它:15
-16
-- 把微信机器人接上大模型(OpenAI / 通义 / DeepSeek / 任意 OpenAI 兼容接口),让它替你聊天、查资料、写文案;17
-- 让 AI **自动记住你说过的账号、地址、纪念日、卡证**等(可随时查看 / 编辑 / 删除);18
-- 一句话**设置提醒、订阅 RSS、生成图片、转写语音、检索你的知识库**;19
-- 安装社区 / 自己写的**插件**扩展能力;连接 **MCP 服务器**、安装**技能包**;20
-- 所有数据存在本地 SQLite,不依赖任何外部服务,**隐私可控**。21
-22
-> 本版本所有高级能力(MCP / 技能 / 插件)**全部免费开放**,无会员门槛。23
-24
-25
-## ✨ 功能特性26
-27
-### 核心28
-- **微信机器人绑定** — 控制台扫码即绑,自带聊天控制台(可收发图文 / 语音 / 文件)29
-- **AI 智能助手(smart)** — 自然语言交互,无需指令前缀,自动识别意图30
-- **插件系统** — 官方插件一键安装 / 启用 / 禁用;支持上传自己的插件31
-- **技能 & MCP** — 安装技能包、连接 MCP 服务器,扩展 AI 工具调用(均免费)32
-- **用户记忆(Memory)** — 自动沉淀重要信息,Markdown 可读写,隐私优先、可关闭33
-- **知识库 / IMA** — 检索与写入知识库、笔记,智能问答34
-- **定时提醒 / RSS / 每日简报 / 关键词回复** — 消息自动化35
-- **AI 图片生成、语音转文字、邮件** 等实用工具36
-37
-### AI 智能助手细节38
-- 支持任意 **OpenAI 兼容** API(可自定义 endpoint、模型、Key)39
-- **Function Calling** 自动工具调用 + 多轮对话上下文(内存缓存 30 分钟)40
-- **微信语音自动转文字**:本地 Whisper(默认)或云端转写,识别后由 AI 理解回复41
-- **AI 图片生成**:独立图片接口(非对话接口),支持 base64 内联返回,国内服务器友好42
-- Token 用量统计与限额43
-44
-### 与 WeBot Plus(商业版,需商业授权)的区别45
-46
-| 能力 | 奶狗 WeBot(个人版) | WeBot Plus(商业版,需商业授权) |47
-|------|------|------|48
-| 适用场景 | 个人单机自用 | 团队 / 企业多账号运营 |49
-| 多用户 / 注册 | 单一管理员 | 支持 |50
-| 会员 / 积分 / 卡密体系 | 不提供 | 支持 |51
-| 管理后台 `/admin` | 不提供 | 提供 |52
-| 插件市场分享 / 挂售 | 仅自用安装 | 支持 |53
-| 登录方式 | 单一管理员(默认 `admin`/`admin123`) | 用户名 + 密码(多账号) |54
-| 智能助手模型 | 统一「AI 配置」全局模型 | 可逐机器人自定义 |55
-| 数据存储 | 内置 SQLite(零配置) | 可选 MySQL |56
-57
-58
-## 🧱 技术栈59
-60
-| 层级 | 技术 |61
-|------|------|62
-| 运行时 | Node.js ≥ 20 |63
-| Web 框架 | Express 4 |64
-| 数据库 | SQLite(`node:sqlite`,无需额外安装) |65
-| 消息通道 | 微信 iLink OpenAPI |66
-| 前端 | React 18 + Vite 5 + TypeScript + Tailwind CSS + shadcn/ui + Radix + sonner |67
-| 本地推理 | `@huggingface/transformers` + `onnxruntime-node`(Whisper 语音识别) |68
-| 配置 | dotenv |69
-70
-71
-## 🚀 快速开始72
-73
-### 环境要求74
-- **Node.js ≥ 20**(推荐 20 LTS 或 22)75
-- 一台能联网的普通机器(iLink 走云端通道,**无需公网 IP 或独立服务器**)76
-- 一台已安装 **微信** 的手机(用于扫码绑定机器人)77
-- (可选)一个 OpenAI 兼容的 AI 接口地址与 Key78
-79
-### 1. 获取代码80
-```bash81
-git clone https://github.com/你的用户名/ngbot-open.git82
-cd ngbot-open83
-```84
-85
-### 2. 安装依赖86
-```bash87
-npm install88
-```89
-> 仅服务端依赖。前端源码在 `web/`,已提供构建产物;如需自行改前端见下文「开发模式」。90
-91
-### 3. 配置(可选但推荐)92
-复制 `.env.example` 为 `.env` 并按需修改:93
-```bash94
-cp .env.example .env95
-```96
-最简配置只需改两项(详见「配置说明」):97
-```env98
-PORT=300099
-SESSION_SECRET=请改成一段随机字符串100
-```101
-102
-### 4. 启动103
-```bash104
-node server.js105
-```106
-看到日志输出监听端口即启动成功。浏览器访问 `http://你的服务器IP:3000`。107
-108
-> 💡 生产环境可用 `pm2`:`pm2 start ecosystem.config.js`,项目已附带 `ecosystem.config.js`。109
-110
-### 5. 登录111
-首次打开会跳到登录页。默认账号:112
-- **账号**:`admin`113
-- **密码**:`admin123`114
-115
-登录后请到「个人中心」修改密码。116
-117
-### 6. 绑定你的微信机器人118
-1. 左侧进入「控制台」;119
-2. 点击「创建机器人」,会生成一张二维码;120
-3. 用**手机微信**扫码(需微信内已具备 iLink 通道)完成绑定;121
-4. 状态变为「已绑定」后,即可在微信里给机器人发消息,或直接在控制台聊天框测试。122
-123
-124
-## ⚙️ 配置说明125
-126
-配置文件为项目根目录 `.env`(不存在则使用默认值)。常用项:127
-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 数据库文件路径 |138
-139
-> 数据目录 `data/` 与日志目录 `logs/` 会在运行时自动创建,建议备份 `data/`。140
-141
-142
-## 🧭 使用指南143
-144
-### AI 配置(最重要)145
-左侧「**AI 配置**」是**全局唯一的 AI 入口**,智能助手直接复用它:146
-- **对话接口**:填写 OpenAI 兼容的 `API Base` / `API Key` / 模型名;147
-- **图片生成**:独立接口(与对话分开),填图片接口 Base / Key / 模型 / 尺寸;148
-- **语音识别**:选择本地 Whisper 或云端转写;149
-- 保存后即时生效,无需重启。150
-151
-### 智能助手(smart)152
-装好机器人后,直接在微信里对机器人说话即可,**不用加任何前缀**:153
-- 「帮我记一下我的快递单号是 SF123456」→ 写入记忆154
-- 「明天上午 9 点提醒我开会」→ 定时提醒155
-- 「今天有什么新闻 / 来份早报」→ 每日简报156
-- 「画一只在月亮上睡觉的猫」→ AI 图片生成157
-- 「我的记忆 / 导出记忆 / 关闭记忆」→ 记忆管理158
-159
-### 插件160
-左侧「**插件市场**」→「系统插件」一键安装 / 启用;「用户插件」可上传自己的 `.js` 插件(仅你自己可用)。每个插件可调独立配置。161
-162
-### 技能 & MCP163
-- **技能**:安装技能包(系统提示扩展 / 自定义工具 / 对话模板),增强 AI 行为。164
-- **MCP**:填写 MCP 服务器地址,工具会被自动发现并暴露给 AI 调用。165
-166
-### 用户记忆(Memory)167
-「用户记忆」页可查看 / 在线编辑 / 下载 / 清除 AI 为你沉淀的信息。默认开启、隐私优先,可随时关闭。168
-169
-### 控制台170
-「控制台」即聊天面板:可像微信一样收发消息,支持发送图片 / 文件 / 语音 / 视频,并实时显示插件处理事件日志,方便调试。171
-172
-### 个人中心173
-修改登录密码、查看账号信息。174
-175
-176
-## 🔌 插件开发(简述)177
-178
-插件是 `plugins/<id>/index.js`,导出 `meta` 与 `onMessage(msg, ctx)`:179
-180
-```js181
-module.exports = {182
- meta: {183
- id: 'hello',184
- name: '示例插件',185
- description: '收到 hi 回复你好',186
- version: '1.0.0',187
- builtin: true,188
- },189
- async onMessage(msg, ctx) {190
- if (msg.content === 'hi') await ctx.sendText('你好呀!')191
- },192
-}193
-```194
-195
-- `ctx.sendText(text)` / `ctx.sendMedia(path, mediaType, filename, playtime)` 发送消息;196
-- 用户配置通过 `meta.settingsSchema` 声明,前端自动生成表单;197
-- 改完插件需重启 `server.js` 生效。198
-199
-完整文档见 `docs/插件开发指南.md`(控制台「文档」可在线查看)。200
-201
-202
-## 🗂️ 目录结构203
-204
-```205
-ngbot-open/206
-├── server.js # 后端入口(Express + 静态托管 + SPA fallback)207
-├── config/ # 配置加载(合并 .env)208
-├── lib/ # 核心库:auth / db / plugins / stt ...209
-├── routes/ # HTTP 路由(api / skill / market ...)210
-├── plugins/ # 内置插件(smart / mcp / skill / memory / ima-knowledge ...)211
-├── services/ # worker 轮询、消息处理212
-├── web/ # 前端(React + Vite),构建产物在 web/dist213
-│ ├── src/ # 源码214
-│ └── dist/ # 构建产物(已由 npm run build 生成)215
-├── docs/ # 使用 / 插件开发文档216
-├── data/ # SQLite 数据库(运行时生成,建议备份)217
-├── logs/ # 运行日志(运行时生成)218
-├── .env.example # 配置样例219
-└── package.json220
-```221
-222
-223
-## 🛠️ 开发模式224
-225
-改前端时需要重新构建:226
-```bash227
-cd web228
-npm install229
-npm run dev # 本地开发服务器 :5173,代理到后端230
-# 或仅构建产物:231
-npm run build # 输出到 web/dist,由 server.js 托管232
-```233
-> ⚠️ 改了 `web/src` 后**必须** `npm run build`,否则 `server.js` 仍提供旧的 `web/dist`。234
-235
-236
-## 🚢 部署建议237
-238
-- **反向代理**:用 Nginx / Caddy 将域名反代到 `http://127.0.0.1:3000`,并配置 HTTPS;此时设 `BASE_URL=https://你的域名`。239
-- **进程守护**:`pm2 start ecosystem.config.js`(name `naigou-webot`)。240
-- **安全**:务必修改 `SESSION_SECRET`、登录密码;如对外暴露 `WORKER_KEY` 请一并修改。241
-- **备份**:定期备份 `data/app.db`。242
-243
-244
-## ❓ 常见问题245
-246
-**Q:机器人收不到消息 / 消息不回复?**247
-A:确认控制台机器人状态为「已绑定」;检查服务端日志 `logs/` 是否有 iLink 拉取错误。248
-249
-**Q:改了 AI Key 不生效?**250
-A:在「AI 配置」保存即生效(智能助手复用全局配置)。若仍无效,确认接口为 OpenAI 兼容且模型名正确。251
-252
-**Q:语音消息没反应?**253
-A:默认本地 Whisper 首次会下载模型(缓存于 `data/stt-models`,可能较慢);也可在「AI 配置」切到云端转写(需接口支持 `/v1/audio/transcriptions`)。254
-255
-**Q:能多用户吗?**256
-A:奶狗 WeBot 为单管理员设计,无多用户 / 会员体系。需要多人或商业授权,请使用 WeBot Plus(商业版)。257
-258
-259
-## 📄 许可证260
-261
-[MIT](LICENSE) — 可自由使用、修改、分发,但**不提供任何担保**。262
-263
-264
-## ☕ 致谢265
-266
-本项目基于 WeBot Plus(商业版)裁剪而来,感谢所有插件 / 技能的贡献者。267
-268
-269
-## 💖 赞助支持270
-271
-如果这个项目对你有帮助,欢迎扫码赞助我们 ☕ 你的支持是项目持续维护与迭代的动力!272
-273
-274
-275
-> 赞助后可在 Issues 留言,或加入交流群获取优先支持。276
-277
-278
-## 📦 主要依赖279
-280
-**后端(Node.js)**281
-- `express` · `express-session` · `session-file-store` — Web 服务与会话管理282
-- `cors` · `dotenv` · `multer` · `adm-zip` — 基础设施283
-- `axios` · `http-proxy-agent` · `socks-proxy-agent` — HTTP 请求与代理284
-- `bcryptjs` — 密码哈希285
-- `nodemailer` · `imapflow` · `mailparser` — 邮件收发与解析286
-- `silk-wasm` — 微信语音 silk 格式转码287
-- `@huggingface/transformers` · `onnxruntime-node` — 本地 Whisper 语音识别288
-289
-**前端**:React 18 · Vite 5 · TypeScript · Tailwind CSS · shadcn/ui · Radix UI · sonner(详见上文「🧱 技术栈」)290
-291
-## 🔗 参考项目与致谢292
-293
-- [微信 iLink 开放平台](https://ilinkai.weixin.qq.com) — 机器人绑定与消息通道能力来源294
-- **WeBot Plus(商业版 / 多人版)** — 本项目的完整版前身,个人版由其裁剪而来([商业授权](https://www.naigou.cn/contact/))295
-- 前端基于 [shadcn/ui](https://ui.shadcn.com) · [Radix UI](https://www.radix-ui.com) · [Tailwind CSS](https://tailwindcss.com) · [Vite](https://vitejs.dev) 等开源生态构建296
-- 本地语音识别基于 [Hugging Face transformers.js](https://huggingface.co/docs/transformers.js) 与 [ONNX Runtime](https://onnxruntime.ai)297
-298
-299
-## 📚 更多文档300
-301
-- [使用手册](./使用手册.md) — 从安装部署到各功能上手的逐步指南302
-- [开源说明](./开源说明.md) — 许可、开源范围、与商业版关系、贡献与免责303
-- 插件开发:`docs/插件开发指南.md`(控制台「文档」可在线查看)1
+# 奶狗 WeBot2
+3
+> 一个跑在你自己服务器上的 **微信智能机器人**。基于微信 **iLink 开放平台**,内置 AI 智能助手、插件系统、技能 / MCP 工具、超级记忆、知识库、定时提醒等能力。**单用户、本地优先、数据自持**,开箱即用。4
+5
+[](https://opensource.org/licenses/MIT)6
+[](https://nodejs.org)7
+[]()8
+9
+---10
+11
+## 💡 这是什么12
+13
+奶狗 WeBot 是 [WeBot Plus](https://www.naigou.cn/contact/)(商业版)面向个人用户开源发布的精简版本,专注于「一个人 + 自己的微信号」的单机使用场景,未包含多用户、会员、积分、卡密售卖、后台管理等商业运营能力。14
+15
+你可以用它:16
+17
+- 把微信机器人接上大模型(OpenAI / 通义 / DeepSeek / 任意 OpenAI 兼容接口),让它替你聊天、查资料、写文案;18
+- 让 AI **自动记住你说过的账号、地址、纪念日、卡证**等(可随时查看 / 编辑 / 删除);19
+- 一句话**设置提醒、订阅 RSS、生成图片、转写语音、检索你的知识库**;20
+- 安装社区 / 自己写的**插件**扩展能力;连接 **MCP 服务器**、安装**技能包**;21
+- 所有数据存在本地 SQLite,不依赖任何外部服务,**隐私可控**。22
+23
+> 本版本所有高级能力(MCP / 技能 / 插件)**全部免费开放**,无会员门槛。24
+25
+---26
+27
+## ✨ 功能特性28
+29
+### 核心30
+- **微信机器人绑定** — 控制台扫码即绑,自带聊天控制台(可收发图文 / 语音 / 文件)31
+- **AI 智能助手(smart)** — 自然语言交互,无需指令前缀,自动识别意图32
+- **插件系统** — 官方插件一键安装 / 启用 / 禁用;支持上传自己的插件33
+- **技能 & MCP** — 安装技能包、连接 MCP 服务器,扩展 AI 工具调用(均免费)34
+- **用户记忆(Memory)** — 自动沉淀重要信息,Markdown 可读写,隐私优先、可关闭35
+- **知识库 / IMA** — 检索与写入知识库、笔记,智能问答36
+- **定时提醒 / RSS / 每日简报 / 关键词回复** — 消息自动化37
+- **AI 图片生成、语音转文字、邮件** 等实用工具38
+39
+### AI 智能助手细节40
+- 支持任意 **OpenAI 兼容** API(可自定义 endpoint、模型、Key)41
+- **Function Calling** 自动工具调用 + 多轮对话上下文(内存缓存 30 分钟)42
+- **微信语音自动转文字**:本地 Whisper(默认)或云端转写,识别后由 AI 理解回复43
+- **AI 图片生成**:独立图片接口(非对话接口),支持 base64 内联返回,国内服务器友好44
+- Token 用量统计与限额45
+46
+### 与 WeBot Plus(商业版,需商业授权)的区别47
+48
+| 能力 | 奶狗 WeBot(个人版) | WeBot Plus(商业版,需商业授权) |49
+|------|------|------|50
+| 适用场景 | 个人单机自用 | 团队 / 企业多账号运营 |51
+| 多用户 / 注册 | 单一管理员 | 支持 |52
+| 会员 / 积分 / 卡密体系 | 不提供 | 支持 |53
+| 管理后台 `/admin` | 不提供 | 提供 |54
+| 插件市场分享 / 挂售 | 仅自用安装 | 支持 |55
+| 登录方式 | 单一管理员(默认 `admin`/`admin123`) | 用户名 + 密码(多账号) |56
+| 智能助手模型 | 统一「AI 配置」全局模型 | 可逐机器人自定义 |57
+| 数据存储 | 内置 SQLite(零配置) | 可选 MySQL |58
+59
+---60
+61
+## 🧱 技术栈62
+63
+| 层级 | 技术 |64
+|------|------|65
+| 运行时 | Node.js ≥ 20 |66
+| Web 框架 | Express 4 |67
+| 数据库 | SQLite(`node:sqlite`,无需额外安装) |68
+| 消息通道 | 微信 iLink OpenAPI |69
+| 前端 | React 18 + Vite 5 + TypeScript + Tailwind CSS + shadcn/ui + Radix + sonner |70
+| 本地推理 | `@huggingface/transformers` + `onnxruntime-node`(Whisper 语音识别) |71
+| 配置 | dotenv |72
+73
+---74
+75
+## 🚀 快速开始76
+77
+### 环境要求78
+- **Node.js ≥ 20**(推荐 20 LTS 或 22)79
+- 一台能联网的普通机器(iLink 走云端通道,**无需公网 IP 或独立服务器**)80
+- 一台已安装 **微信** 的手机(用于扫码绑定机器人)81
+- (可选)一个 OpenAI 兼容的 AI 接口地址与 Key82
+83
+### 1. 获取代码84
+```bash85
+git clone https://github.com/你的用户名/ngbot-open.git86
+cd ngbot-open87
+```88
+89
+### 2. 安装依赖90
+```bash91
+npm install92
+```93
+> 仅服务端依赖。前端源码在 `web/`,已提供构建产物;如需自行改前端见下文「开发模式」。94
+95
+### 3. 配置(可选但推荐)96
+复制 `.env.example` 为 `.env` 并按需修改:97
+```bash98
+cp .env.example .env99
+```100
+最简配置只需改两项(详见「配置说明」):101
+```env102
+PORT=3000103
+SESSION_SECRET=请改成一段随机字符串104
+```105
+106
+### 4. 启动107
+```bash108
+node server.js109
+```110
+看到日志输出监听端口即启动成功。浏览器访问 `http://你的服务器IP:3000`。111
+112
+> 💡 生产环境可用 `pm2`:`pm2 start ecosystem.config.js`,项目已附带 `ecosystem.config.js`。113
+114
+### 5. 登录115
+首次打开会跳到登录页。默认账号:116
+- **账号**:`admin`117
+- **密码**:`admin123`118
+119
+登录后请到「个人中心」修改密码。120
+121
+### 6. 绑定你的微信机器人122
+1. 左侧进入「控制台」;123
+2. 点击「创建机器人」,会生成一张二维码;124
+3. 用**手机微信**扫码(需微信内已具备 iLink 通道)完成绑定;125
+4. 状态变为「已绑定」后,即可在微信里给机器人发消息,或直接在控制台聊天框测试。126
+127
+---128
+129
+## ⚙️ 配置说明130
+131
+配置文件为项目根目录 `.env`(不存在则使用默认值)。常用项:132
+133
+| 变量 | 默认 | 说明 |134
+|------|------|------|135
+| `PORT` | `3000` | 服务端口 |136
+| `SESSION_SECRET` | `change-me-to-random-string` | **务必改成随机串**,否则会话可被伪造 |137
+| `WORKER_KEY` | `ilink_worker_2024` | `/worker?key=` 轮询密钥;仅本地轮询用,暴露在公网时请修改 |138
+| `ILINK_BASE` | `https://ilinkai.weixin.qq.com` | iLink 通道地址,一般无需改 |139
+| `ILINK_CDN` | `https://novac2c.cdn.weixin.qq.com/c2c` | 媒体 CDN 地址 |140
+| `CHANNEL_VERSION` | `2.0.0` | 通道版本 |141
+| `BASE_URL` | 空 | 公网可访问的基础地址(用于回调 / webhook),本地可留空 |142
+| `SQLITE_PATH` | `data/app.db` | SQLite 数据库文件路径 |143
+144
+> 数据目录 `data/` 与日志目录 `logs/` 会在运行时自动创建,建议备份 `data/`。145
+146
+---147
+148
+## 🧭 使用指南149
+150
+### AI 配置(最重要)151
+左侧「**AI 配置**」是**全局唯一的 AI 入口**,智能助手直接复用它:152
+- **对话接口**:填写 OpenAI 兼容的 `API Base` / `API Key` / 模型名;153
+- **图片生成**:独立接口(与对话分开),填图片接口 Base / Key / 模型 / 尺寸;154
+- **语音识别**:选择本地 Whisper 或云端转写;155
+- 保存后即时生效,无需重启。156
+157
+### 智能助手(smart)158
+装好机器人后,直接在微信里对机器人说话即可,**不用加任何前缀**:159
+- 「帮我记一下我的快递单号是 SF123456」→ 写入记忆160
+- 「明天上午 9 点提醒我开会」→ 定时提醒161
+- 「今天有什么新闻 / 来份早报」→ 每日简报162
+- 「画一只在月亮上睡觉的猫」→ AI 图片生成163
+- 「我的记忆 / 导出记忆 / 关闭记忆」→ 记忆管理164
+165
+### 插件166
+左侧「**插件市场**」→「系统插件」一键安装 / 启用;「用户插件」可上传自己的 `.js` 插件(仅你自己可用)。每个插件可调独立配置。167
+168
+### 技能 & MCP169
+- **技能**:安装技能包(系统提示扩展 / 自定义工具 / 对话模板),增强 AI 行为。170
+- **MCP**:填写 MCP 服务器地址,工具会被自动发现并暴露给 AI 调用。171
+172
+### 用户记忆(Memory)173
+「用户记忆」页可查看 / 在线编辑 / 下载 / 清除 AI 为你沉淀的信息。默认开启、隐私优先,可随时关闭。174
+175
+### 控制台176
+「控制台」即聊天面板:可像微信一样收发消息,支持发送图片 / 文件 / 语音 / 视频,并实时显示插件处理事件日志,方便调试。177
+178
+### 个人中心179
+修改登录密码、查看账号信息。180
+181
+---182
+183
+## 🔌 插件开发(简述)184
+185
+插件是 `plugins/<id>/index.js`,导出 `meta` 与 `onMessage(msg, ctx)`:186
+187
+```js188
+module.exports = {189
+ meta: {190
+ id: 'hello',191
+ name: '示例插件',192
+ description: '收到 hi 回复你好',193
+ version: '1.0.0',194
+ builtin: true,195
+ },196
+ async onMessage(msg, ctx) {197
+ if (msg.content === 'hi') await ctx.sendText('你好呀!')198
+ },199
+}200
+```201
+202
+- `ctx.sendText(text)` / `ctx.sendMedia(path, mediaType, filename, playtime)` 发送消息;203
+- 用户配置通过 `meta.settingsSchema` 声明,前端自动生成表单;204
+- 改完插件需重启 `server.js` 生效。205
+206
+完整文档见 `docs/插件开发指南.md`(控制台「文档」可在线查看)。207
+208
+---209
+210
+## 🗂️ 目录结构211
+212
+```213
+ngbot-open/214
+├── server.js # 后端入口(Express + 静态托管 + SPA fallback)215
+├── config/ # 配置加载(合并 .env)216
+├── lib/ # 核心库:auth / db / plugins / stt ...217
+├── routes/ # HTTP 路由(api / skill / market ...)218
+├── plugins/ # 内置插件(smart / mcp / skill / memory / ima-knowledge ...)219
+├── services/ # worker 轮询、消息处理220
+├── web/ # 前端(React + Vite),构建产物在 web/dist221
+│ ├── src/ # 源码222
+│ └── dist/ # 构建产物(已由 npm run build 生成)223
+├── docs/ # 使用 / 插件开发文档224
+├── data/ # SQLite 数据库(运行时生成,建议备份)225
+├── logs/ # 运行日志(运行时生成)226
+├── .env.example # 配置样例227
+└── package.json228
+```229
+230
+---231
+232
+## 🛠️ 开发模式233
+234
+改前端时需要重新构建:235
+```bash236
+cd web237
+npm install238
+npm run dev # 本地开发服务器 :5173,代理到后端239
+# 或仅构建产物:240
+npm run build # 输出到 web/dist,由 server.js 托管241
+```242
+> ⚠️ 改了 `web/src` 后**必须** `npm run build`,否则 `server.js` 仍提供旧的 `web/dist`。243
+244
+---245
+246
+## 🚢 部署建议247
+248
+- **反向代理**:用 Nginx / Caddy 将域名反代到 `http://127.0.0.1:3000`,并配置 HTTPS;此时设 `BASE_URL=https://你的域名`。249
+- **进程守护**:`pm2 start ecosystem.config.js`(name `naigou-webot`)。250
+- **安全**:务必修改 `SESSION_SECRET`、登录密码;如对外暴露 `WORKER_KEY` 请一并修改。251
+- **备份**:定期备份 `data/app.db`。252
+253
+---254
+255
+## ❓ 常见问题256
+257
+**Q:机器人收不到消息 / 消息不回复?**258
+A:确认控制台机器人状态为「已绑定」;检查服务端日志 `logs/` 是否有 iLink 拉取错误。259
+260
+**Q:改了 AI Key 不生效?**261
+A:在「AI 配置」保存即生效(智能助手复用全局配置)。若仍无效,确认接口为 OpenAI 兼容且模型名正确。262
+263
+**Q:语音消息没反应?**264
+A:默认本地 Whisper 首次会下载模型(缓存于 `data/stt-models`,可能较慢);也可在「AI 配置」切到云端转写(需接口支持 `/v1/audio/transcriptions`)。265
+266
+**Q:能多用户吗?**267
+A:奶狗 WeBot 为单管理员设计,无多用户 / 会员体系。需要多人或商业授权,请使用 WeBot Plus(商业版)。268
+269
+---270
+271
+## 📄 许可证272
+273
+[MIT](LICENSE) — 可自由使用、修改、分发,但**不提供任何担保**。274
+275
+---276
+277
+## ☕ 致谢278
+279
+本项目基于 WeBot Plus(商业版)裁剪而来,感谢所有插件 / 技能的贡献者。280
+281
+---282
+283
+## 💖 赞助支持284
+285
+如果这个项目对你有帮助,欢迎扫码赞助我们 ☕ 你的支持是项目持续维护与迭代的动力!286
+287
+288
+289
+> 赞助后可在 Issues 留言,或加入交流群获取优先支持。290
+291
+---292
+293
+## 📦 主要依赖294
+295
+**后端(Node.js)**296
+- `express` · `express-session` · `session-file-store` — Web 服务与会话管理297
+- `cors` · `dotenv` · `multer` · `adm-zip` — 基础设施298
+- `axios` · `http-proxy-agent` · `socks-proxy-agent` — HTTP 请求与代理299
+- `bcryptjs` — 密码哈希300
+- `nodemailer` · `imapflow` · `mailparser` — 邮件收发与解析301
+- `silk-wasm` — 微信语音 silk 格式转码302
+- `@huggingface/transformers` · `onnxruntime-node` — 本地 Whisper 语音识别303
+304
+**前端**:React 18 · Vite 5 · TypeScript · Tailwind CSS · shadcn/ui · Radix UI · sonner(详见上文「🧱 技术栈」)305
+306
+## 🔗 参考项目与致谢307
+308
+- [微信 iLink 开放平台](https://ilinkai.weixin.qq.com) — 机器人绑定与消息通道能力来源309
+- **WeBot Plus(商业版 / 多人版)** — 本项目的完整版前身,个人版由其裁剪而来([商业授权](https://www.naigou.cn/contact/))310
+- 前端基于 [shadcn/ui](https://ui.shadcn.com) · [Radix UI](https://www.radix-ui.com) · [Tailwind CSS](https://tailwindcss.com) · [Vite](https://vitejs.dev) 等开源生态构建311
+- 本地语音识别基于 [Hugging Face transformers.js](https://huggingface.co/docs/transformers.js) 与 [ONNX Runtime](https://onnxruntime.ai)312
+313
+---314
+315
+## 📚 更多文档316
+317
+- [使用手册](./使用手册.md) — 从安装部署到各功能上手的逐步指南318
+- [开源说明](./开源说明.md) — 许可、开源范围、与商业版关系、贡献与免责319
+- 插件开发:`docs/插件开发指南.md`(控制台「文档」可在线查看)