AskaEth ccd59db5b8 fix: DevTools auto npm install for frontend on Windows
Two-part fix for frontend startup failure:
1. Check .package-lock.json as install-complete marker instead of
   just node_modules directory existence, and delete corrupt
   node_modules before reinstalling
2. Bypass npm.cmd batch file on Windows — use node with full path
   to npm-cli.js to avoid module resolution conflicts when cwd
   contains a node_modules directory

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 21:18:08 +08:00
2026-05-15 20:10:35 +08:00
2026-05-15 20:14:47 +08:00

Cyrene - 昔涟

昔涟 (本项目) 是一个开源的基于 LLM 平台的智能体,提供多人格对话、IoT 设备操控、记忆管理、自动化规则、知识库、语音交互等功能。

架构

┌─────────────────────────────────────────────────────────┐
│                      Frontend (React + Vite)             │
│                      localhost:5173                      │
└─────────────────────┬───────────────────────────────────┘
                      │ HTTP + WebSocket
┌─────────────────────▼───────────────────────────────────┐
│                   Gateway (Go/Gin)                       │
│                   localhost:8080                         │
│   JWT Auth · Rate Limit · WS Hub · API 路由              │
└──┬────────┬────────┬────────┬────────┬────────┬────────┘
   │        │        │        │        │        │
   ▼        ▼        ▼        ▼        ▼        ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐
│ AI   │ │Memory│ │Tool  │ │Voice │ │ IoT  │ │ Infra    │
│ Core │ │Svc   │ │Engine│ │Svc   │ │Debug │ │          │
│:8081 │ │:8091 │ │:8092 │ │:8093 │ │:8083 │ │ PG:5432  │
│      │ │      │ │      │ │      │ │      │ │ Redis    │
│ LLM  │ │CRUD  │ │执行  │ │STT/  │ │模拟  │ │  :6379   │
│ 编排 │ │检索  │ │工具  │ │TTS   │ │设备  │ │ Qdrant   │
│ 人设 │ │      │ │调用  │ │      │ │管理  │ │  :6333   │
│ 工具 │ │      │ │      │ │      │ │      │ │ MinIO    │
│ 后台 │ │      │ │      │ │      │ │      │ │  :9000   │
│ 思考 │ │      │ │      │ │      │ │      │ │ NATS     │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────────┘

功能

  • 多人格对话 — 可配置的角色扮演系统,带上下文构建和子会话路由
  • IoT 操控 — 模拟智能家居设备(灯、空调、窗帘、传感器、门锁),支持语音/文本控制
  • 记忆管理 — LLM 驱动的长期记忆提取、存储和检索(PostgreSQL + pgvector
  • 自动化 — 规则引擎 + 场景执行(定时、条件触发、Webhook)
  • 每日简报 — 定时生成当日汇总
  • 提醒 — 创建/管理定时提醒,到期 WebSocket 推送
  • 知识库 — 文档管理 + 向量检索
  • 文件管理 — 上传、下载、缩略图、图片 AI 分析
  • 语音交互 — 浏览器端 STTWeb Speech API+ TTS,服务端支持 Whisper
  • WebSocket — 实时消息推送、IoT 状态广播、通知
  • PWA — 可安装为桌面/移动应用,离线支持
  • 后台思考 — AI 在对话间隙自主进行反思和记忆整理
  • Webhook 接入 — 支持 Discord、通用 Webhook 第三方平台接入

项目结构

Cyrene/
├── frontend/
│   ├── web/              # React 前端 (Vite + TypeScript + Tailwind)
│   └── packages/shared/  # 共享类型/工具
├── backend/
│   ├── ai-core/          # AI 推理核心 (LLM 编排、人设注入、工具调用、后台思考)
│   ├── gateway/          # API 网关 (JWT 认证、路由、限流、WebSocket Hub)
│   ├── memory-service/   # 记忆服务 (CRUD、检索、LLM 提取)
│   ├── tool-engine/      # 工具引擎 (计算器、HTTP、IoT、文件操作等)
│   ├── voice-service/    # 语音服务 (TTS/STT,基于 Edge-TTS + Whisper)
│   ├── iot-debug-service/# IoT 调试服务 (模拟智能家居设备)
│   └── proto/            # Protobuf 定义 (预留)
├── devtools/             # 开发管理面板 (Express,服务管理/日志/性能)
├── scripts/              # 辅助脚本 (Whisper 安装、SSH 隧道、数据迁移)
├── test/                 # E2E 测试脚本 (CDP/Chromium)
├── docs/                 # 项目文档与调试记录
├── debug/                # 诊断与缓存脚本
├── docker-compose.dev.db.yml   # 开发环境基础设施 (仅 DB)
├── docker-compose.dev.yml      # 开发环境一键启动
├── docker-compose.yml          # 生产环境 (含 Caddy)
└── Caddyfile             # 反向代理配置

快速开始

前提条件

  • Go 1.21+
  • Node.js 20+
  • Docker & Docker Compose

1. 启动基础设施

docker compose -f docker-compose.dev.db.yml up -d

启动 PostgreSQL (pgvector)、Redis、Qdrant、MinIO、NATS。

2. 启动后端服务

使用 DevTools 一键管理:

# Linux / macOS
./devtools.sh start all    # 编译并启动所有后端 + 前端
./devtools.sh status       # 查看服务状态
./devtools.sh logs ai-core # 查看 AI-Core 日志

# Windows
devtools.bat               # 启动 DevTools Web 面板
# 浏览器打开 http://localhost:9090,点击「一键启动」

或手动逐个启动:

# 编译并运行各服务
cd backend/memory-service && go run ./cmd/main.go &
cd backend/tool-engine    && go run ./cmd/main.go &
cd backend/iot-debug-service && go run ./cmd/main.go &
cd backend/voice-service  && go run ./cmd/main.go &
cd backend/ai-core        && go run ./cmd/main.go &
cd backend/gateway        && go run ./cmd/main.go &

3. 启动前端

cd frontend/web && npm install && npm run dev

访问 http://localhost:5173,默认管理员账户 admin / cyrene-dev-admin

4. 配置环境变量

cp backend/.env.example backend/.env
# 编辑 backend/.env,填入 LLM API Key 等必要配置

服务端口

端口 服务
5173 前端 (Vite dev server)
8080 Gateway API
8081 AI-Core (LLM 推理)
8083 IoT 调试服务
8091 记忆服务
8092 工具引擎
8093 语音服务
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
反向代理 Caddy (生产环境)
语音 Edge-TTS / Whisper.cpp

部署

  • 开发环境:docker compose -f docker-compose.dev.yml up -d
  • 生产环境:docker compose up -d(含 Caddy 反向代理 + 自动 TLS

详见 Deploy.mdMigration.mdLinux → Windows 迁移指南)。

License

Apache-2.0

S
Description
昔涟 - 将记忆命途的少女带入现实
Readme Apache-2.0 96 MiB
2026-05-30 17:56:50 +08:00
Languages
Go 54.2%
TypeScript 41.3%
Shell 4.5%