[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81556":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":29,"discoverSource":30},81556,"guada","donggua-zen\u002Fguada","donggua-zen","A powerful knowledge base management and work-study system. It supports a range of advanced AI features, including multi-role conversations, autonomous multi-turn KB search by Agents, browser automation, session compression, MCP, SKILLS, and bots. The project adopts a decoupled front-end and back-end architecture","",null,"TypeScript",32,9,1,0,2,5,7,6,3,"MIT License",false,"develop",true,[],"2026-06-12 02:04:16","# GuaDa — 桌面 AI 工作站\n\n> 看得见、摸得着、能动手的桌面 AI 工作站。基于 ReAct Agent，集成浏览器自动化、RAG 知识库、IM 机器人、MCP 工具与 Skills 技能框架，一个引擎统一服务 Web \u002F 桌面 \u002F IM 三大入口。**目前处于早期开发阶段，部分功能正在持续快速迭代中。**\n\n[![NestJS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNestJS-11.x-red.svg)](https:\u002F\u002Fnestjs.com)\n[![Vue](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVue-3.x-4FC08D?logo=vue.js&logoColor=white)](https:\u002F\u002Fvuejs.org)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-6.x-blue.svg)](https:\u002F\u002Fwww.typescriptlang.org)\n[![Prisma](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPrisma-7.x-2D3748?logo=prisma&logoColor=white)](https:\u002F\u002Fwww.prisma.io)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE)\n\n---\n\n## 项目仓库\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fdonggua-zen\u002Fguada\n- **Gitee**: https:\u002F\u002Fgitee.com\u002Fzhendongdong\u002Fguada_ai\n\n---\n\n遇到问题、意见建议、技术交流或者下载预编译的客户端请加：\n- QQ群：1047993501\n- 公众号：冬瓜编程实验室\n\n## 目录\n\n- [适用人群 & 为什么选择 GuaDa](#适用人群--为什么选择-guada)\n- [核心优势](#核心优势)\n- [整体架构](#整体架构)\n- [核心引擎](#核心引擎)\n  - [Agent 对话引擎](#agent-对话引擎)\n  - [上下文管理与压缩](#上下文管理与压缩)\n- [知识库 (RAG)](#知识库-rag)\n- [Skills 技能框架](#skills-技能框架)\n- [Bot 网关](#bot-网关)\n- [定时任务](#定时任务)\n- [浏览器自动化](#浏览器自动化)\n- [多模型管理](#多模型管理)\n- [技术栈](#技术栈)\n- [开发计划](#开发计划)\n- [快速开始](#快速开始)\n- [项目结构](#项目结构)\n- [许可证](#许可证)\n\n---\n\n## 适用人群 & 为什么选择 GuaDa\n\n### 适合谁用？\n\n| 人群 | 典型场景 |\n|------|---------|\n| **个人开发者 \u002F 极客** | 本地部署私人 AI 助手，自定义技能和知识库，数据不出本机 |\n| **企业团队** | 搭建内部 AI 中台，对接 IM 做智能客服，私有化部署保障数据安全 |\n| **AI 产品爱好者** | 一站式体验 Agent 自治循环、RAG 检索、MCP 协议、Skills 框架等前沿技术 |\n\n> **一句话总结**：桌面 AI 工作站。浏览器自动化 + 知识库 + IM 机器⼈ + 技能框架，一个引擎统一服务 Web \u002F 桌面 \u002F IM 三大入口，轻量私有，开箱即用。\n\n---\n\n## 核心优势\n\n| 能力 | 核心亮点 |\n|------|---------|\n| **智能体（Agent）** | 基于 ReAct 模式的多轮自治循环，可自主调度知识检索、工具执行、技能调用，支持会话锁、流式传输、中断处理与再生模式 |\n| **知识库** | 语义+关键词双重匹配搜索（sqlite-vec + FTS5 + jieba + BM25），目录层级管理，Agent 自主多轮搜索与自助添加文档 |\n| **机器人** | 支持 QQ、企业微信等 IM 平台统一接入，配合知识库搭建智能客服，支持自动重连、消息合并与会话映射 |\n| **长期记忆** | 对话记忆持久化，两级压缩策略（优先裁剪工具结果再语义压缩），检查点持久化与压缩回退，最近 5 条\u002F最新 3 条保护机制 |\n| **技能管理** | 基于 Anthropic Skills 协议，文件系统存储，支持热插拔与渐进式加载，通过 `skill__` 命名空间注册为工具 |\n| **多部署方式** | 支持 Electron 桌面端、Web 应用、Docker 容器化三种部署方式 |\n| **企业级数据支持** | 默认 SQLite，通过 Prisma ORM 可无缝切换 MySQL、PostgreSQL |\n| **定时任务** | Agent 按周期自动执行，支持 Cron 表达式与固定间隔，角色继承与会话隔离，完整执行记录 |\n| **浏览器自动化** | Electron 内嵌 Chromium，Agent 可直接操控浏览器进行页面交互、数据采集 |\n| **多模型管理** | 统一接入 OpenAI、Anthropic、Azure、Google 等主流 LLM，支持动态切换与层级模型配置 |\n\n### 产品截图\n\n| ![产品截图1](.\u002Fimages\u002F1.png) | ![产品截图2](.\u002Fimages\u002F2.png) |\n|:---:|:---:|\n| ![产品截图3](.\u002Fimages\u002F3.png) | ![产品截图4](.\u002Fimages\u002F4.png) |\n| ![知识库截图](.\u002Fimages\u002F知识库截图.png) | ![浏览器自动化](.\u002Fimages\u002F浏览器自动化.png) |\n| ![机器人添加知识库](.\u002Fimages\u002F机器人添加知识库.png) | ![定时任务](.\u002Fimages\u002F定时任务.png) |\n\n---\n\n## 整体架构\n\n![系统架构](.\u002Fimages\u002Fsystem-architecture.png)\n\n### 架构层次介绍\n\n| 层级 | 职责 | 核心组件 |\n|------|------|----------|\n| **前端入口** | 用户交互层,提供三种访问方式:Web 应用、Electron 桌面应用、IM 平台客户端 | Vue 3 Web 端、Electron 桌面应用、QQ\u002F飞书\u002F企业微信等 IM 平台 |\n| **入口层** | 请求处理与路由分发,将不同来源的请求统一转换为内部协议 | REST + SSE API(面向 Web\u002FElectron)、Bot Gateway(面向 IM 平台) |\n| **核心服务层** | 业务逻辑中枢,由 Agent Engine 统一调度对话、知识检索、工具调用等能力 | Agent Engine、上下文压缩、知识库 RAG、工具与 MCP、Skills 框架、LLM 适配器 |\n| **数据层** | 持久化存储基础设施,管理关系型数据、向量索引和文件资源 | SQLite(Prisma)、sqlite-vec + FTS5、文件系统存储 |\n\n---\n\n## 核心引擎\n\n### Agent 对话引擎\n\nGuaDa 的核心是一个实现了 **ReAct (Reasoning + Acting) 模式** 的多轮自治循环引擎：\n\n**关键设计**：\n\n| 机制 | 说明 |\n|------|------|\n| **会话锁 (Session Lock)** | 基于内存 Map 的排他锁，同一会话同时仅处理一个请求，防止并发冲突 |\n| **流式传输 (SSE)** | 异步生成器逐块产出事件，前端实时渲染文本、思维链、工具调用进度 |\n| **ReAct 循环** | LLM 推理 → 工具调用 → 结果注入 → 再度推理 |\n| **中断处理** | `AbortSignal` 传递至 LLM 请求层，客户端断开时自动中止，节省 Token 成本 |\n| **再生模式** | 支持 `overwrite`（覆盖）和 `multi_version`（多版本并存）两种消息重生策略 |\n| **思考追踪** | 记录推理开始\u002F结束时间戳，计算思维链耗时，存储于消息元数据中 |\n\n---\n\n### 上下文管理与压缩\n\n采用 **两级压缩策略**（优先裁剪工具结果→再语义压缩），在 Token 限制与信息保真之间取得平衡。\n\n与传统方案不同，GuaDa 的压缩**非破坏性、可逆**：\n\n- **可编辑**：AI 生成的摘要不准确时，可手动修改内容\n- **可回退**：删除任意压缩记录，自动还原对应历史消息，对话回到压缩前状态\n- **有历史**：所有压缩记录可见，支持回溯查看每次压缩详情\n- **保护机制**：最近 5 条消息强制保留，最新 3 条工具结果免于裁剪\n\n| 模式 | 说明 |\n|------|------|\n| **丢弃** | 直接丢弃旧消息，最快但丢失历史 |\n| **快速压缩** | 单次 LLM 调用生成摘要，效率优先 |\n| **迭代压缩** | Agent 自检优化（最多 3 轮），质量最高，默认使用 |\n\n默认 `iterative`，失败自动回退到 `fast`。\n\n---\n\n## 知识库 (RAG)\n\n完整的 **检索增强生成 (RAG)** 流程。→ [详细文档](docs\u002Fknowledge-base.md)\n\n**核心亮点 — Agent 自助管理**（区别于常规 RAG）：\n\n- **自助多轮搜索**：Agent 自主决定搜索策略、轮次和文件组合，而非系统预先排序\n- **自助写入**：Agent 读取本地文件后自动解析、分块、向量化并存入知识库\n\n**文档处理**：PDF\u002FDOCX\u002FTXT 等 40+ 格式 → Token 智能分块 → 向量嵌入，异步处理自动恢复中断\n\n**混合检索**：语义搜索（sqlite-vec）+ 关键词搜索（FTS5 + jieba + BM25）加权融合，权重可配置，支持文件过滤与分区存储\n\n**文件管理**：层级目录结构，支持创建文件夹、批量上传、移动、重命名\n\n---\n\n## Skills 技能框架\n\n基于 **Anthropic Skills 协议** 设计，以文件系统为存储。技能就是一个 Markdown 文件 + 可选脚本，人人都能编写和分享。\n\n**核心优势**：\n\n- **渐进式加载**：L1 元数据注入 System Prompt，Agent 按需激活完整指令，避免一次性消耗大量 Token\n- **热插拔**：新增、修改或删除技能即时生效，无需重启系统\n- **Agent 原生调度**：技能注册为 `skill__` 命名空间工具，Agent 在 ReAct 循环中按需调用\n\n---\n\n## Bot 网关\n\nBot 网关将 AI 对话能力扩展到即时通讯平台，通过统一的适配接口实现多平台无缝接入。\n\n![Bot 架构](.\u002Fimages\u002Fbot-architecture.png)\n\n- **统一适配接口 (`IBotPlatform`)**：策略模式设计，新平台接入只需实现接口\n- **自动重连**：WebSocket 断连后指数退避重试\n- **消息合并**：1.5 秒窗口内多条消息合并为一条处理\n- **会话映射**：通过 `(platform, type, nativeId)` 三元组建立外部用户到内部 Session 的映射\n- **生命周期管理**：支持动态启动、停止、重启机器人实例\n\n---\n\n## 定时任务\n\n系统内置定时任务调度能力，Agent 可按配置周期自动执行对话任务：\n\n- **周期配置**：支持 Cron 表达式与固定间隔两种调度方式\n- **角色继承**：定时任务可绑定特定角色，复用已有会话配置与模型参数\n- **会话隔离**：每个定时任务拥有独立会话上下文，避免与人工对话冲突\n- **执行记录**：完整记录每次执行结果与日志，便于审计与排查\n\n---\n\n## 浏览器自动化\n\nElectron 桌面端内嵌 Chromium 浏览器引擎，Agent 可直接操控浏览器：\n\n- **页面操控**：点击、输入、滚动、截图等常见操作\n- **数据采集**：提取页面元素、表格、文本内容\n- **多标签管理**：支持同时打开多个标签页并切换上下文\n- **与 Agent 集成**：浏览器操作作为工具调用链路的一环，结果直接注入对话上下文\n\n---\n\n## 多模型管理\n\n统一 LLM 适配层，灵活接入多种模型供应商：\n\n- **供应商抽象**：通过 `LLMProvider` 接口统一封装不同供应商的 API 差异\n- **动态切换**：角色级、会话级、全局级多层级模型配置\n- **Thinking 配置**：支持推理强度控制与专用压缩模型配置\n- **Token 精准计数**：使用 `@huggingface\u002Ftokenizers` 进行精准 Token 计数，避免字符预估误差\n\n\n## 技术栈\n\n| 层级 | 技术选型 |\n|------|---------|\n| **后端框架** | NestJS 11 + TypeScript |\n| **前端框架** | Vue 3 + TypeScript |\n| **桌面端** | Electron |\n| **数据库** | SQLite（默认，Prisma ORM），可切换 MySQL \u002F PostgreSQL |\n| **向量检索** | sqlite-vec + FTS5 全文检索 + jieba 分词 + BM25 重排序 |\n| **AI 模型** | OpenAI \u002F Anthropic \u002F Azure \u002F Google 等主流 LLM |\n| **容器化** | Docker + Docker Compose |\n| **反向代理** | Nginx |\n\n---\n\n## 快速开始\n\n### 环境要求\n\n- Node.js ≥ 18.x （推荐 20.x LTS）\n- npm ≥ 9.x\n\n### 启动后端\n\n```bash\ncd backend-ts\nnpm install              # 自动执行 prisma generate\nnpm run db:seed:force    # 初始化种子数据（默认账户 guada \u002F guada）\nnpm run start:dev        # 开发模式启动 → http:\u002F\u002Flocalhost:3000\n```\n\n### 启动前端\n\n```bash\ncd frontend\nnpm install\nnpm run dev              # 开发模式启动 → http:\u002F\u002Flocalhost:5173\n```\n\n### 生产环境部署\n\n#### Docker 部署（推荐）\n详细的 Docker 容器化部署指南请查看：[Docker 部署文档](docs\u002FDOCKER_DEPLOYMENT.md)\n\n快速开始：\n```bash\n# 1. 配置环境变量（文件位于 backend-ts 目录下）\ncp backend-ts\u002F.env.example backend-ts\u002F.env\n# 编辑 backend-ts\u002F.env 文件，修改 JWT_SECRET\n\n# 2. 一键部署\nchmod +x deploy.sh\n.\u002Fdeploy.sh\n\n# 3. 访问应用\n# 前端: http:\u002F\u002Flocalhost:8787 （如无法访问，尝试 http:\u002F\u002F127.0.0.1:8787）\n# 后端 API: http:\u002F\u002Flocalhost:8787\u002Fapi\u002Fv1 （通过 Nginx 代理）\n# 注意：默认配置下后端端口不暴露，如需调试请参考 Docker 部署文档\n```\n\n优势：\n- ✅ 一键部署，无需手动安装依赖\n- ✅ 环境隔离，避免依赖冲突\n- ✅ 自动健康检查和重启\n- ✅ 数据持久化，升级不丢失\n- ✅ 资源限制，防止内存泄漏\n\n#### Web 版本（传统部署）\n详细的生产环境部署指南请查看：[生产环境部署文档](docs\u002FPRODUCTION_DEPLOYMENT.md)\n\n主要步骤包括：\n1. 配置环境变量（复制 `.env.example` 为 `.env`）\n2. 构建生产版本（`npm run build`）\n3. 使用 PM2 进程守护\n4. 配置 Nginx 反向代理\n5. 设置 HTTPS 证书\n\n#### Electron 版本\n详细的 Electron 部署指南请查看：[Electron 部署文档](docs\u002FELECTRON_DEPLOYMENT.md)\n\n主要内容包括：\n1. 开发环境搭建\n2. 生产构建与打包\n3. 数据持久化与备份\n4. 故障排查与日志查看\n5. 更新与升级\n\n### 常见问题\n\n遇到问题请查看：[故障排查指南](docs\u002FTROUBLESHOOTING.md)\n\n常见问题包括：\n- 数据库表不存在\n- Prisma Client 未生成\n- 端口冲突\n- 环境变量配置错误\n- 权限问题\n\n---\n\n## 项目结构\n\n```\nai_chat\u002F\n├── backend-ts\u002F                  # NestJS 后端\n│   ├── prisma\u002F\n│   │   └── schema.prisma        # 数据库 Schema\n│   ├── src\u002F\n│   │   ├── common\u002F              # 基础设施 (database, vector-db, mcp, utils 等)\n│   │   ├── modules\u002F\n│   │   │   ├── chat\u002F            # 核心对话模块 (Agent引擎、压缩、上下文、消息)\n│   │   │   ├── tools\u002F           # 工具调用系统\n│   │   │   ├── skills\u002F          # Skills 技能框架\n│   │   │   ├── knowledge-base\u002F  # 知识库模块 (RAG)\n│   │   │   ├── llm-core\u002F        # LLM 适配层\n│   │   │   ├── bot-gateway\u002F     # 多平台机器人网关\n│   │   │   ├── characters\u002F      # 角色管理\n│   │   │   ├── files\u002F           # 文件管理\n│   │   │   ├── mcp-servers\u002F     # MCP 服务器管理\n│   │   │   ├── auth\u002F            # JWT 认证\n│   │   │   ├── models\u002F          # 模型管理\n│   │   │   ├── settings\u002F        # 系统设置\n│   │   │   └── users\u002F           # 用户管理\n│   │   └── main.ts              # 应用入口\n│   └── skills\u002F                  # Skills 技能目录\n├── frontend\u002F                    # Vue 3 前端\n│   ├── src\u002F\n│   │   ├── components\u002F          # 组件 (chat, knowledge-base, plugins, bot, setting 等)\n│   │   ├── composables\u002F         # 组合式函数\n│   │   ├── stores\u002F              # Pinia 状态管理\n│   │   ├── services\u002F            # API 服务层\n│   │   ├── types\u002F               # TypeScript 类型定义\n│   │   └── utils\u002F               # 工具函数\n│   └── package.json\n├── electron\u002F                    # Electron 桌面端\n├── docs\u002F                        # 项目文档\n└── LICENSE\n```\n\n---\n\n## 开发计划\n\n| 功能 | 状态 | 说明 |\n|------|------|------|\n| **Agent 工作流** | 📝 规划中 | 多步骤 Agent 编排与子 Agent 协作 |\n| **子 Agent** | 📝 规划中 | 分层 Agent 体系，复杂任务拆解分发 |\n| **沙箱** | 📝 规划中 | 安全的代码执行环境，Agent 可编写并运行脚本 |\n| **子账户** | 🔧 后端已完成 | 数据隔离、配置共享，适合家庭 \u002F 团队共享使用 |\n\n---\n\n## 许可证\n\n本项目基于 [MIT License](LICENSE) 开源。\n\n---\n","GuaDa 是一个强大的知识库管理和工作学习系统，集成了多角色对话、自主多轮知识检索、浏览器自动化等高级AI功能。项目采用前后端分离架构，基于NestJS和Vue 3构建，并使用TypeScript编写，确保了系统的高效性和可维护性。其核心功能包括基于ReAct模式的Agent对话引擎、语义+关键词双重匹配的知识库搜索、IM机器人接入及统一管理、以及支持多种主流LLM模型的多模型管理等。GuaDa特别适用于个人开发者自定义私有AI助手、企业内部搭建智能客服平台或AI产品爱好者探索前沿技术的应用场景中。","2026-06-11 04:05:30","CREATED_QUERY"]