GuaDa——智能 AI 对话系统,支持 ReAct Agent、多模型适配、RAG 知识库检索、MCP 工具调用与 Skills 技能框架。目标是打造一个可用、易用、好用的个人智能助理。目前处于早期开发阶段,部分功能正在持续快速迭代中。
遇到问题、意见建议、技术交流请加QQ群:1047993501
系统概览
GuaDa 是一个功能完备的 AI 对话和工作辅助平台,集成了浏览器自动化、 RAG 知识库、MCP 协议 和 Skills 技能框架,支持多种模型提供商,可作为企业内部 AI 中台、聊天机器人后端或个人智能助理使用。
架构特点:
产品截图:
整体架构

架构层次介绍
| 前端入口 | ||
| 入口层 | ||
| 核心服务层 | ||
| 数据层 |
核心引擎
Agent 对话引擎
GuaDa 的核心是一个实现了 ReAct (Reasoning + Acting) 模式 的多轮自治循环引擎:
关键设计:
| 会话锁 (Session Lock) | |
| 流式传输 (SSE) | |
| ReAct 循环 | |
| 中断处理 | AbortSignal |
| 再生模式 | overwrite(覆盖)和 multi_version(多版本并存)两种消息重生策略 |
| 思考追踪 |
上下文管理与压缩
系统采用 两级压缩策略 管理长对话的上下文窗口,在 Token 限制与信息保真之间取得平衡。
架构层次

核心特性:
@huggingface/tokenizers 进行精准 Token 计数,避免字符预估的不准确性SessionContextState 表,重启/中断后从检查点恢复三种压缩模式:
系统定义了三种摘要生成策略:
| 丢弃 | disabled | |
| 快速压缩 | fast | |
| 迭代压缩 | iterative | write_summary 提交草稿,自我审查后调用 confirm_submit 确认最终版本,质量最高但耗时较长 |
压缩模式可通过角色级 summaryMode 或全局 enableSummary 配置项切换,默认使用 iterative;若迭代未产出结果则自动回退到 fast。
工具调用系统
工具系统采用 命名空间隔离 + Provider 插件 架构,支持内置工具和外部动态工具的混合编排。
当前内置的 Provider
knowledge_base | ||
memory | ||
time | ||
shell | ||
image_recognition | ||
mcp | ||
skill |
知识库 (RAG)
知识库模块实现了完整的 检索增强生成 (RAG) 流程,支持 Agent 自助多轮搜索与文档写入。
核心亮点
Agent 自助知识库管理 — 这是本系统区别于常规 RAG 的关键能力:
add_document 将其解析、分块、向量化并存入知识库,全程无需用户手动操作文档处理管线
文件上传后依次经过格式解析(PDF/DOCX/TXT 等 40+ 格式,多编码自动检测)、基于 Token 的智能分块(句子边界切割 + 可配置重叠)、向量嵌入(兼容 OpenAI Embeddings API 的任意模型),最终双写至 sqlite-vec 向量库与 FTS5 全文索引。后台异步处理全程追踪百分比进度,启动时自动恢复中断任务并清理孤儿数据。
混合检索
系统融合 语义搜索 和 关键词搜索,加权计算最终得分:
最终得分 = semanticWeight × 语义分数 + keywordWeight × 关键词分数文件树
知识库支持层级目录结构,支持创建文件夹、批量上传、移动、重命名。
Skills 技能框架
Skills 模块基于 Anthropic Skills 协议 设计,以文件系统为存储,支持热插拔和渐进式加载。
核心能力
| SkillDiscoveryService | |
| SkillLoaderService | |
| SkillRegistry | |
| SkillOrchestrator | |
| SkillToolBridgeService | skill__ 命名空间工具 |
| SkillVersionManager |
与 Agent 的集成
skill__call({skillName: "xxx"}) 获取 L2 指令Bot 网关
Bot 网关将 AI 对话能力扩展到即时通讯平台,通过统一的适配接口实现多平台无缝接入。

IBotPlatform):策略模式设计,新平台接入只需实现接口(platform, type, nativeId) 三元组建立外部用户到内部 Session 的映射快速开始
环境要求
启动后端
cd backend-tsnpm install # 自动执行 prisma generatenpm run db:seed:force # 初始化种子数据(默认账户 guada / guada)npm run start:dev # 开发模式启动 → http://localhost:3000启动前端
cd frontendnpm installnpm run dev # 开发模式启动 → http://localhost:5173生产环境部署
Web 版本
详细的生产环境部署指南请查看:
https://gitee.com/zhendongdong/guada_ai/blob/master/docs/PRODUCTION_DEPLOYMENT.md主要步骤包括:1. 配置环境变量(复制 .env.example 为 .env)2. 构建生产版本(npm run build)3. 使用 PM2 进程守护4. 配置 Nginx 反向代理5. 设置 HTTPS 证书
Electron 版本
详细的 Electron 部署指南请查看:
https://gitee.com/zhendongdong/guada_ai/blob/master/docs/ELECTRON_DEPLOYMENT.md主要内容包括:1. 开发环境搭建2. 生产构建与打包3. 数据持久化与备份4. 故障排查与日志查看5. 更新与升级
常见问题
遇到问题请查看:
https://gitee.com/zhendongdong/guada_ai/blob/master/docs/TROUBLESHOOTING.md常见问题包括:- 数据库表不存在- Prisma Client 未生成- 端口冲突- 环境变量配置错误- 权限问题
项目结构
ai_chat/├── backend-ts/ # NestJS 后端│ ├── prisma/│ │ └── schema.prisma # 数据库 Schema│ ├── src/│ │ ├── common/ # 基础设施│ │ │ ├── database/ # Prisma + Repository 层│ │ │ ├── vector-db/ # 向量数据库抽象 + sqlite-vec 实现│ │ │ ├── mcp/ # MCP 客户端│ │ │ └── utils/ # Tokenizer 等工具│ │ ├── modules/│ │ │ ├── chat/ # 核心对话模块│ │ │ │ ├── agent.service.ts # Agent 循环引擎│ │ │ │ ├── compression-engine.ts # 两级压缩引擎│ │ │ │ ├── conversation-context.ts # 上下文管理器│ │ │ │ └── message-store.service.ts # 消息持久化│ │ │ ├── tools/ # 工具调用系统│ │ │ │ └── providers/ # 各工具 Provider 实现│ │ │ ├── skills/ # Skills 技能框架│ │ │ │ ├── core/ # 核心服务 (发现/加载/注册/调度)│ │ │ │ ├── integration/ # Skill-Tool 桥接│ │ │ │ └── execution/ # 脚本执行引擎│ │ │ ├── knowledge-base/ # 知识库模块 (RAG)│ │ │ ├── llm-core/ # LLM 适配层│ │ │ │ └── adapters/ # OpenAI / Gemini 适配器│ │ │ ├── bot-gateway/ # 多平台机器人网关│ │ │ ├── auth/ # JWT 认证│ │ │ ├── models/ # 模型管理│ │ │ ├── settings/ # 系统设置│ │ │ └── users/ # 用户管理│ │ └── main.ts # 应用入口│ └── skills/ # Skills 技能目录├── frontend/ # Vue 3 前端│ ├── src/│ │ ├── components/│ │ │ ├── chat/ # 对话界面│ │ │ ├── knowledge-base/ # 知识库管理│ │ │ ├── plugins/ # 工具/MCP/Skills 管理│ │ │ ├── bot/ # 机器人管理│ │ │ └── setting/ # 系统设置│ │ ├── composables/ # 组合式函数│ │ ├── stores/ # Pinia 状态管理│ │ └── services/ # API 服务层│ └── package.json└── LICENSE许可证
本项目基于 MIT License 开源。
参考链接
[1]: https://nestjs.com
[2]: https://vuejs.org
[3]: https://www.typescriptlang.org
[4]: https://www.prisma.io
夜雨聆风



