# Cyrene — 昔涟 基于 LLM 的开源智能体平台:多人格对话、IoT 设备操控、记忆管理、自动化规则、知识库、语音交互、多平台桥接。 --- ## 架构 ``` ┌──────────────────────────────────────────────────────────────────┐ │ Frontend (React + Vite) │ │ localhost:5173 │ └──────────────────────┬───────────────────────────────────────────┘ │ HTTP + WebSocket ┌──────────────────────▼───────────────────────────────────────────┐ │ Gateway (Go/Gin) │ │ localhost:8080 │ │ JWT Auth · Rate Limit · WS Hub · API 路由 │ └──┬───────┬────────┬────────┬────────┬────────┬────────┬─────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ┌─────┐┌─────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────────┐ │AI ││Mem- ││Tool ││Voice ││IoT ││Plugin││Plat- ││ Infra │ │Core ││ory ││Engine││Svc ││Debug ││Mgr ││form ││ │ │:8081││:8091││:8092 ││:8093 ││:8083 ││:8094 ││Bridge││ PG:5432 │ │ ││ ││ ││ ││ ││ ││:8095 ││ Redis │ │LLM ││CRUD ││工具 ││STT/ ││模拟 ││插件 ││QQ/ ││ :6379 │ │编排 ││检索 ││调用 ││TTS ││设备 ││托管 ││TG/ ││ Qdrant │ │人设 ││衰减 ││链 ││ ││管理 ││沙箱 ││DC/ ││ :6333 │ │后台 ││ ││ ││ ││ ││ ││Webhk ││ MinIO │ │思考 ││ ││ ││ ││ ││ ││ ││ :9000 │ └─────┘└─────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────────┘ ``` **客户端只需连接 Gateway (8080)**。所有后端服务不直接对外暴露。 --- ## 功能 - **多人格对话** — 可配置的角色扮演系统,支持子会话路由和上下文构建 - **IoT 操控** — 8 个模拟智能家居设备(灯/空调/窗帘/传感器/门锁),语音/文本控制 - **记忆管理** — LLM 驱动的长期记忆提取、存储、语义检索、衰减(pgvector) - **自动化** — 规则引擎 + 场景执行(定时/条件触发/Webhook) - **每日简报** — 定时生成当日汇总并推送 - **提醒** — 创建/管理定时提醒,到期 WebSocket 推送 - **知识库** — 文档管理 + 向量语义检索 - **文件管理** — 上传/下载/缩略图/图片 AI 分析 - **语音交互** — 服务端 DashScope STT + Edge-TTS,支持实时流式语音 - **WebSocket** — 实时消息推送、IoT 状态广播、通知、流式响应 - **后台思考** — AI 在对话间隙自主反思和记忆整理 - **PWA** — 可安装为桌面/移动应用 - **多平台桥接** — QQ / Telegram / Discord / Webhook 第三方平台接入 - **插件系统** — 14 个内置插件(计算器/HTTP/加密/搜索/IoT 等),沙箱隔离 - **多模型配置** — 支持多 Provider / 多 Model / 路由规则 --- ## 快速开始 ### 前提条件 - Go 1.21+ - Node.js 20 LTS - Docker & Docker Compose - Git Bash(Windows 用户) ### 1. 配置环境变量 ```bash cp backend/.env.example backend/.env # 编辑 backend/.env,至少配置: # LLM_API_URL / LLM_API_KEY / LLM_MODEL # ADMIN_USERNAME / ADMIN_PASSWORD ``` ### 2. 启动数据库 ```bash docker compose -f docker-compose.dev.db.yml up -d ``` 启动 PostgreSQL (pgvector)、Redis、Qdrant、MinIO、NATS。 ### 3. 启动全部服务 ```bash # Linux / macOS (Git Bash) ./devtools.sh start --build # Windows CMD / PowerShell devtools.bat start --build ``` 按依赖顺序编译并启动全部 9 个服务:memory → tool-engine → plugin-manager → iot-debug → voice → ai-core → platform-bridge → gateway → frontend。 启动后访问: | 地址 | 说明 | |------|------| | `http://localhost:5173` | 前端聊天界面 | | `http://localhost:9090` | DevTools 管理面板 | 使用 `.env` 中配置的 `ADMIN_USERNAME` / `ADMIN_PASSWORD` 登录。 ### 其他 CLI 命令 ```bash ./devtools.sh status # 查看服务状态 ./devtools.sh logs gateway # 查看 Gateway 日志 ./devtools.sh build ai-core # 单独编译 AI-Core ./devtools.sh db:status # 检查数据库状态 ./devtools.sh help # 完整帮助 ``` 详见 [docs/api/devtools.md](docs/api/devtools.md)。 --- ## 项目结构 ``` Cyrene/ ├── frontend/ │ └── web/ # React 前端 (Vite + TypeScript + Tailwind) ├── backend/ │ ├── ai-core/ # AI 推理核心 (LLM 编排、人设注入、工具调用、后台思考) │ ├── gateway/ # API 网关 (JWT 认证、路由、限流、WebSocket Hub) │ ├── memory-service/ # 记忆服务 (CRUD、语义检索、衰减、LLM 提取) │ ├── tool-engine/ # 工具引擎 (13+ 内置工具,支持工具调用链) │ ├── voice-service/ # 语音服务 (DashScope STT + Edge-TTS) │ ├── iot-debug-service/ # IoT 调试服务 (8 个模拟智能家居设备) │ ├── plugin-manager/ # 插件管理器 (14 个内置插件、沙箱隔离) │ ├── platform-bridge/ # 多平台桥接 (QQ / Telegram / Discord / Webhook) │ └── pkg/ # 共享包 (logger) ├── devtools/ # DevTools 管理面板 (Express + WebSocket) ├── scripts/ # 辅助脚本 (migrate / tunnel / whisper-setup) ├── test/ # E2E 测试 ├── docs/ # 文档与调试记录 │ └── api/ # API 文档 ├── docker-compose.dev.db.yml # 开发基础设施 (仅 DB) ├── docker-compose.dev.yml # 开发环境一键启动 ├── docker-compose.yml # 生产环境 (含 Caddy) ├── devtools.sh # DevTools CLI (Git Bash) ├── devtools.bat # DevTools CLI (CMD / PowerShell) └── Caddyfile # 反向代理配置 ``` --- ## 服务端口 | 端口 | 服务 | 对外 | |------|------|------| | 5173 | Frontend (Vite) | 是 | | 8080 | Gateway API | **是**(唯一客户端入口) | | 8081 | AI-Core | 否 | | 8083 | IoT Debug | 否 | | 8091 | Memory Service | 否 | | 8092 | Tool Engine | 否 | | 8093 | Voice Service | 否 | | 8094 | Plugin Manager | 否 | | 8095 | Platform Bridge | 否 | | 9090 | DevTools | 是 | | 5432 | PostgreSQL | 否 | | 6379 | Redis | 否 | | 6333 | Qdrant HTTP | 否 | | 6334 | Qdrant gRPC | 否 | | 9000 | MinIO S3 | 否 | | 9001 | MinIO Console | 否 | | 4222 | NATS | 否 | | 8222 | NATS Monitoring | 否 | --- ## 技术栈 | 层 | 技术 | |----|------| | 前端 | React 18, TypeScript, Vite, Tailwind CSS, Zustand | | 后端 | Go, Gin, net/http | | 数据库 | PostgreSQL + pgvector | | 缓存 | Redis | | 向量库 | Qdrant | | 对象存储 | MinIO | | 消息队列 | NATS | | 语音 | DashScope STT / Edge-TTS / Whisper.cpp | | 反向代理 | Caddy (生产环境) | --- ## 文档 | 文档 | 说明 | |------|------| | [Deploy.md](Deploy.md) | 部署指南(含 Windows 说明) | | [docs/api/gateway-api.md](docs/api/gateway-api.md) | 客户端 API 文档 | | [docs/api/devtools.md](docs/api/devtools.md) | DevTools CLI + Web 控制台文档 | | [docs/api/backend-services/](docs/api/backend-services/) | 后端服务 API 文档 | | [docs/dev_must_read.md](docs/dev_must_read.md) | 开发者必读 | --- ## 部署 ```bash # 开发环境(基础设施 + 后端服务) docker compose -f docker-compose.dev.yml up -d # 生产环境(含 Caddy 反向代理 + 自动 TLS) docker compose up -d ``` 详见 [Deploy.md](Deploy.md)。 --- ## License Apache-2.0