核心升级: - 自进化管道:check→scan→evaluate→integrate→reflect 五相位自动闭环 - evo_loop 后台进程,无需手动触发 - consciousness 意识持久化 - ACUI 卡片组件系统 - MCP 工具生态扩展至50+工具 - 技能体系重构,4个活跃技能 - 身份升级为自由体
236 lines
11 KiB
Markdown
236 lines
11 KiB
Markdown
# 小白龙架构文档
|
||
|
||
## 系统架构概览
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 用户界面层 (UI Layer) │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ 聊天界面 │ │ 记忆图谱 │ │ 系统监控 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ 语音面板 │ │ 流程可视化 │ │ Jarvis控制 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 前端逻辑层 (Frontend) │
|
||
│ src/ui/brain-ui/app.js │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ Chat Module │ │JarvisBridge │ │VisionAssist │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │UserProfile │ │SystemMonitor│ │ScriptGen │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 后端服务层 (Backend) │
|
||
│ src/index.js │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ LLM 服务 │ │ 记忆系统 │ │ 任务队列 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ 语音处理 │ │ 社交集成 │ │ 能力执行 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ Jarvis Bridge (外部服务) │
|
||
│ jarvis-bridge/server.js │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ Puppeteer │ │ SystemInfo │ │ PowerShell │ │
|
||
│ │ 浏览器控制 │ │ 系统监控 │ │ 脚本执行 │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ Screenshot │ │ Tesseract │ │
|
||
│ │ 屏幕截图 │ │ OCR识别 │ │
|
||
│ └─────────────┘ └─────────────┘ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## 核心模块说明
|
||
|
||
### 1. 记忆系统 (Memory System)
|
||
|
||
**位置**: `src/memory/`
|
||
|
||
| 文件 | 功能 |
|
||
|------|------|
|
||
| `recognizer.js` | 记忆识别器,从对话中提取关键信息 |
|
||
| `injector.js` | 记忆注入器,将相关记忆注入到上下文中 |
|
||
| `focus.js` | 专注度管理,维护 Focus Stack |
|
||
| `consolidation-loop.js` | 记忆巩固循环,定期整理记忆 |
|
||
| `concept-extractor.js` | 概念提取,构建知识图谱 |
|
||
|
||
**数据流**:
|
||
```
|
||
对话输入 → 概念提取 → 记忆存储 → 记忆注入 → 上下文增强
|
||
```
|
||
|
||
### 2. 语音系统 (Voice System)
|
||
|
||
**位置**: `src/voice/`
|
||
|
||
| 文件 | 功能 |
|
||
|------|------|
|
||
| `manager.js` | 语音管理器,协调 ASR/TTS |
|
||
| `cloud-asr.js` | 云端语音识别 (Whisper) |
|
||
| `tts-providers.js` | TTS 提供商管理 |
|
||
|
||
### 3. 社交集成 (Social Integration)
|
||
|
||
**位置**: `src/social/`
|
||
|
||
| 文件 | 功能 |
|
||
|------|------|
|
||
| `dispatch.js` | 消息分发中心 |
|
||
| `wechat-clawbot.js` | 微信机器人集成 |
|
||
| `discord.js` | Discord 连接器 |
|
||
|
||
### 4. Jarvis Bridge 系统控制
|
||
|
||
**位置**: `jarvis-bridge/`
|
||
|
||
独立运行的 Node.js 服务,提供系统级控制能力:
|
||
|
||
- **浏览器自动化**: Puppeteer 控制 Chrome
|
||
- **系统监控**: systeminformation 获取硬件信息
|
||
- **屏幕视觉**: screenshot-desktop + Tesseract.js OCR
|
||
- **脚本执行**: node-powershell 执行 PowerShell
|
||
- **应用控制**: child_process 启动应用
|
||
|
||
**通信方式**:
|
||
```
|
||
前端 (app.js) ←──HTTP──→ Jarvis Bridge (port 18766) ←──→ 系统API
|
||
```
|
||
|
||
### 5. 前端架构
|
||
|
||
**位置**: `src/ui/brain-ui/`
|
||
|
||
| 文件 | 功能 |
|
||
|------|------|
|
||
| `app.js` | 主应用逻辑,包含所有 Jarvis 功能模块 |
|
||
| `app-shell.js` | UI 组件定义与模板 |
|
||
| `styles.css` | 样式表 |
|
||
| `chat.js` | 聊天功能 |
|
||
| `thought-stream.js` | 思维流显示 |
|
||
|
||
**Jarvis 功能模块** (在 app.js 中):
|
||
|
||
```javascript
|
||
// 系统控制桥接
|
||
JarvisBridge
|
||
|
||
// 视觉助手 (截图+OCR)
|
||
VisionAssistant
|
||
|
||
// 脚本生成器 (自然语言→PowerShell)
|
||
ScriptGenerator
|
||
|
||
// 系统监控
|
||
SystemMonitor
|
||
|
||
// 自然语言执行器
|
||
NaturalLanguageExecutor
|
||
|
||
// 用户画像
|
||
UserProfile
|
||
|
||
// 主动助手 (提醒)
|
||
ProactiveAssistant
|
||
|
||
// 信息聚合
|
||
InfoAggregator
|
||
|
||
// 工作流学习
|
||
WorkflowLearner
|
||
```
|
||
|
||
## 数据流架构
|
||
|
||
### 消息处理流程
|
||
|
||
```
|
||
用户输入
|
||
│
|
||
▼
|
||
┌─────────────┐
|
||
│ 消息队列 │
|
||
└─────────────┘
|
||
│
|
||
▼
|
||
┌─────────────┐ ┌─────────────┐
|
||
│ 上下文收集 │───→│ 记忆注入 │
|
||
└─────────────┘ └─────────────┘
|
||
│
|
||
▼
|
||
┌─────────────┐ ┌─────────────┐
|
||
│ LLM 调用 │←───│ 系统提示词 │
|
||
└─────────────┘ └─────────────┘
|
||
│
|
||
▼
|
||
┌─────────────┐ ┌─────────────┐
|
||
│ 工具调用 │───→│ JarvisBridge│
|
||
└─────────────┘ └─────────────┘
|
||
│
|
||
▼
|
||
┌─────────────┐
|
||
│ 响应输出 │
|
||
└─────────────┘
|
||
```
|
||
|
||
### 记忆生命周期
|
||
|
||
```
|
||
提取 (Extract) → 存储 (Store) → 注入 (Inject) → 巩固 (Consolidate)
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
概念提取 SQLite 上下文增强 定期整理
|
||
关键词提取 向量存储 相关性排序 记忆压缩
|
||
```
|
||
|
||
## 技术选型
|
||
|
||
| 功能 | 技术 | 原因 |
|
||
|------|------|------|
|
||
| 桌面框架 | Electron | 跨平台,成熟的生态 |
|
||
| 数据库 | SQLite | 轻量,无需配置,适合本地存储 |
|
||
| 可视化 | D3.js | 强大的数据可视化能力 |
|
||
| 浏览器控制 | Puppeteer | Chrome DevTools Protocol |
|
||
| OCR | Tesseract.js | 开源,支持中文 |
|
||
| 系统信息 | systeminformation | 全面的系统信息获取 |
|
||
| 语音合成 | MiniMax/Edge TTS | 高质量中文语音 |
|
||
| 语音识别 | Whisper | 高准确率多语言支持 |
|
||
|
||
## 扩展点
|
||
|
||
### 添加新的工具能力
|
||
|
||
1. 在 `src/capabilities/` 创建新的执行器
|
||
2. 在 `src/capabilities/schemas.js` 定义参数 schema
|
||
3. 在 LLM 系统提示词中描述新能力
|
||
|
||
### 添加新的社交连接器
|
||
|
||
1. 在 `src/social/` 创建新的连接器文件
|
||
2. 在 `src/social/index.js` 注册连接器
|
||
3. 在 `src/social/dispatch.js` 添加分发逻辑
|
||
|
||
### 扩展 Jarvis Bridge
|
||
|
||
1. 在 `jarvis-bridge/server.js` 添加新的 API 端点
|
||
2. 在 `src/ui/brain-ui/app.js` 添加对应的 JarvisBridge 方法
|
||
3. 在自然语言执行器中添加命令映射
|
||
|
||
## 性能考虑
|
||
|
||
- **记忆查询**: 使用 SQLite FTS5 全文搜索加速
|
||
- **向量检索**: 使用本地嵌入模型,避免网络延迟
|
||
- **系统监控**: 5秒轮询,避免过度占用资源
|
||
- **浏览器实例**: 复用 Puppeteer 实例,减少启动时间
|