# 架构图

## 整体架构

```
┌─────────────────────────────────────────────────────────────────────┐
│                        EventBus (事件总线)                          │
│                     松耦合通信中枢 · 发布/订阅                      │
└─────────────────────────────────────────────────────────────────────┘
           ▲                    ▲                    ▲
           │                    │                    │
    ┌──────┴──────┐     ┌──────┴──────┐     ┌──────┴──────┐
    │   STT 组件   │     │   LLM 组件   │     │   TTS 组件   │
    │             │     │             │     │             │
    │  FunASR     │     │  Agnes AI   │     │  EdgeTTS    │
    │  SenseVoice │     │  OpenAI     │     │  Azure TTS  │
    │  (备选)     │     │  (备选)     │     │  (备选)     │
    └──────┬──────┘     └──────┬──────┘     └──────┬──────┘
           │                    │                    │
           └────────────────────┼────────────────────┘
                                ▼
                     ┌────────────────────┐
                     │   Memory 组件      │
                     │  ProfileManager    │
                     │  · 事实提取        │
                     │  · 矛盾检测        │
                     │  · SQLite 持久化   │
                     └────────────────────┘
                                │
                                ▼
                     ┌────────────────────┐
                     │   Agent Worker     │
                     │     主控制器        │
                     │  · 组件协调        │
                     │  · 对话管理        │
                     │  · 统计上报        │
                     └────────────────────┘
```

## 数据流

```
用户语音 ──▶ STT ──▶ 文本 ──▶ LLM ──▶ 回复 ──▶ TTS ──▶ 音频 ──▶ 播放
                   │                          │
                   └──────────────────────────┘
                            同时提取事实
                                   │
                                   ▼
                          Memory 存储 (SQLite)
```

## 组件依赖

| 组件 | 依赖 | 优先级 |
|------|------|--------|
| Agent Worker | EventBus | 0 |
| STT | EventBus | 1 |
| LLM | EventBus | 2 |
| TTS | EventBus | 3 |
| Memory | STT, LLM | 5 |

## 外部服务

| 类型 | 服务 | 状态 |
|------|------|------|
| STT | FunASR / SenseVoice | 已集成 |
| LLM | Agnes AI (agnes-2.5-flash) | 已接入 |
| TTS | EdgeTTS | 已集成 |
| 记忆 | SQLite | 已实现 |
| WeMM | GPU 多模态服务 | 待接入 |
| RAG | Wiki / 向量库 | 待实现 |

## 关键特性

### 1. 松耦合
- 组件间不直接调用
- 通过 EventBus 发布/订阅
- 新增组件只需注册事件

### 2. 工厂模式
```python
stt = create_stt_component(config, event_bus)
llm = create_llm_component(config, event_bus)
tts = create_tts_component(config, event_bus)
```

### 3. 错误隔离
```
STT 失败 → 发布 system_error → 继续流程
LLM 失败 → 发布 system_error → 返回默认回复
TTS 失败 → 发布 system_error → 跳过播放
```

### 4. 统一生命周期
```
initialize() → start() → [运行中] → stop()
```

## 文件结构

```
livekit-agents/
├── event_bus.py          # 事件总线
├── components/
│   ├── __init__.py
│   ├── base.py          # 组件基类
│   ├── stt.py           # STT 组件
│   ├── llm.py           # LLM 组件
│   ├── tts.py           # TTS 组件
│   ├── memory.py        # 记忆组件
│   └── agent_worker.py  # Agent 主控制器
├── profile_manager.py    # 记忆存储
├── test_modules.py       # 测试脚本
└── architecture.html     # 架构图 HTML
```

## 测试结果

```
✅ 事件总线: 通过
✅ STT 组件: 通过  
✅ LLM 组件: 通过
✅ TTS 组件: 通过
✅ 记忆组件: 通过（提取 2 条事实）
✅ Agent Worker: 通过

总计: 6/6 通过
```
