02 · 架构图
系统架构 & 模块组成
OpenHuman 是 Rust + TypeScript 的 Tauri 桌面应用。Rust 承载全部业务逻辑(~65%),TypeScript/React 负责 UI(~31%),通过 Tauri IPC + Socket.IO 通信。
高层架构总览
用户界面层
🖥️ Desktop UI
React 18 + Vite
Tailwind CSS
Tailwind CSS
🎭 Mascot Overlay
React
屏幕覆盖层
屏幕覆盖层
🎙️ Voice UI
STT / TTS
Lip-sync
Lip-sync
👁️ Screen Intel
屏幕截图
内容识别
内容识别
⬇️ Tauri IPC + Socket.IO (JSON-RPC over WebSocket)
Tauri 桥接层(app/src-tauri)
🌉 Tauri Shell
窗口管理 · 系统托盘 · 文件 I/O · macOS 权限
🔌 Socket.IO Server (socketioxide)
实时双向通信 · 事件广播 · 会话管理
📡 RPC Dispatch
三层路由
Schema 校验
Schema 校验
⬇️ Internal Rust Calls (async / tokio)
核心业务层(src/openhuman — 70+ 模块)
🤖 Agent Engine
LLM 工具调用循环
子 Agent 调度
Trigger Triage
子 Agent 调度
Trigger Triage
🧠 Memory Tree
SQLite FTS5
向量表 · 知识图谱
3 层摘要树
向量表 · 知识图谱
3 层摘要树
⚡ Inference
LLM 路由
本地 / HTTP
模型选择
本地 / HTTP
模型选择
🔗 Channels
16+ 消息渠道
Slack / Email
Discord / Telegram
Slack / Email
Discord / Telegram
🛠️ Tools
文件系统 · Git
Web 搜索 · 爬虫
MCP 协议
Web 搜索 · 爬虫
MCP 协议
⬇️ SQLite (rusqlite) + 文件系统 I/O
存储层
🗄️ SQLite DB
memory.db
FTS5 · 向量表
实体关系图
FTS5 · 向量表
实体关系图
📁 Vault (Markdown)
Obsidian 兼容
~/.openhuman/vault
~/.openhuman/vault
🔐 Credentials
AES-GCM + Argon2
OAuth Tokens
OAuth Tokens
📊 JSONL Chat
对话历史
Workspace 隔离
Workspace 隔离
⬇️ HTTP / OAuth
外部服务
🤖 LLM APIs
OpenAI · Anthropic
Local (Ollama 等)
Local (Ollama 等)
🔗 118+ Integrations
Gmail · Slack · GitHub
Notion · Jira …
Notion · Jira …
🎤 ElevenLabs
TTS + Lip-sync
语音合成
语音合成
🔍 Web Search
搜索引擎
网页爬取
网页爬取
Rust 核心模块(src/openhuman)
src/openhuman 包含 70+ 子模块,按功能域组织。下面列出主要模块群。
agent
src/openhuman/agent/
LLM 工具调用循环、子 Agent 调度(orchestrator/planner/researcher/code_executor)、会话 Harness、Trigger Triage 分类
memory
src/openhuman/memory/
Memory Tree(三层:source → topic → global)、SQLite FTS5 + 向量表、知识图谱实体/关系、Obsidian Vault 同步
inference
src/openhuman/inference/
LLM 提供商路由(HTTP / 本地)、模型 ID 管理、TokenJuice 压缩(最高 80%)、情感分析、OpenAI OAuth
channels
src/openhuman/channels/
16+ 消息渠道接入(Slack / Discord / Telegram / WhatsApp / Email / iMessage / Matrix / Signal …),统一 Channel Trait
tools
src/openhuman/tools/ + tool_registry/
工具执行器 + 安全策略、工具注册表、MCP 客户端/服务端、Composio 集成、Web 搜索/爬虫、完整编程工具链
voice + audio_toolkit
src/openhuman/voice/ + audio_toolkit/
Whisper STT、ElevenLabs TTS、唇形同步、Google Meet 集成(meet_agent)、音频流处理
credentials + encryption
src/openhuman/credentials/ + encryption/
OAuth Token 安全存储、AES-GCM / ChaCha20-Poly1305 加密、Argon2 密钥派生、Linux sandboxing(landlock)
integrations + composio
src/openhuman/integrations/
118+ 第三方服务的 OAuth 流程、Backfill 任务(Gmail/Slack 历史同步)、Webhooks 接收器
vault + workspace
src/openhuman/vault/ + workspace/
Obsidian 兼容 Markdown 文件系统、Workspace 隔离(多项目/多用户)、Credential 沙箱
observability + health
src/openhuman/observability/ + health/
Prometheus 指标、OpenTelemetry 追踪、Sentry 错误上报、心跳检测、成本追踪
scheduler_gate
src/openhuman/scheduler_gate/
定时任务门控(20 分钟 autofetch 循环)、Cron 调度、市场时间过滤、任务优先级队列
desktop_companion + overlay
src/openhuman/desktop_companion/ + overlay/
桌面 Mascot 动画状态机、屏幕覆盖层管理、可访问性(accessibility)、Webview 账户面板
前端模块(app/src — React + TypeScript)
chat
app/src/chat/
对话 UI、流式消息渲染、工具调用展示、引用卡片
mascot
app/src/mascot/
桌面伴侣动画组件、情绪状态渲染、语音唇形同步 UI
features/voice
app/src/features/voice/
录音控件、STT 状态管理、TTS 播放器
features/screen-intelligence
app/src/features/screen-intelligence/
屏幕截图触发器、内容识别结果展示、上下文注入
features/meet
app/src/features/meet/
Google Meet 集成控件、会议转录显示、实时助手 UI
features/wallet
app/src/features/wallet/
Token 用量显示、费用仪表盘、TokenJuice 压缩率统计
features/privacy
app/src/features/privacy/
隐私设置 UI、数据清除控件、本地存储管理
features/daemon
app/src/features/daemon/
后台进程状态监控、Autofetch 计时器 UI、同步状态展示
features/webhooks
app/src/features/webhooks/
Webhook 配置 UI、事件日志、触发器管理
完整文件结构
📁 openhuman/ — 仓库根目录
openhuman/
src/ Rust 工作区根
package.json · pnpm-workspace.yaml
docker-compose.yml · Dockerfile
docs/ · gitbooks/ · examples/
lib.rs 库入口,导出 openhuman_core
main.rs 可执行文件入口
core/ RPC 服务端 + 通信层
rpc/ RPC 协议类型
bin/ 可执行 binaries
app/ Tauri 桌面应用
main.rs 可执行文件入口
core/ RPC 服务端 + 通信层
dispatch.rs 三层 RPC 路由
socketio.rs Socket.IO 服务器 (socketioxide)
jsonrpc.rs JSON-RPC 协议实现
auth.rs 认证中间件
cli.rs / agent_cli.rs CLI 入口
observability.rs OTel + Prometheus
event_bus/ 全局事件总线
openhuman/ 主业务模块(70+ 子模块)
socketio.rs Socket.IO 服务器 (socketioxide)
jsonrpc.rs JSON-RPC 协议实现
auth.rs 认证中间件
cli.rs / agent_cli.rs CLI 入口
observability.rs OTel + Prometheus
event_bus/ 全局事件总线
agent/ Agent 引擎
tools/ · tool_registry/ 工具执行 + 注册
voice/ · audio_toolkit/ STT/TTS/唇形
credentials/ · encryption/ 加密存储
vault/ · workspace/ Obsidian 存储
integrations/ 118+ OAuth 集成
mcp_client/ · mcp_server/ Model Context Protocol
scheduler_gate/ 定时任务门控
desktop_companion/ Mascot 状态机
overlay/ 屏幕覆盖层
observability/ 监控指标
api/ API 层(Axum handlers)
dispatcher.rs
bus.rs
agents/ 内置 Agent 角色
harness/ 会话运行时
prompts/ 系统提示词资产
triage/ 触发分类
memory/ Memory Tree 系统
bus.rs
agents/ 内置 Agent 角色
harness/ 会话运行时
prompts/ 系统提示词资产
triage/ 触发分类
traits.rs
store/ SQLite (FTS5 + 向量)
tree/ 三层摘要树
ingestion/ 文档分块 + 嵌入
conversations/ JSONL 对话历史
inference/ LLM 路由层
store/ SQLite (FTS5 + 向量)
tree/ 三层摘要树
ingestion/ 文档分块 + 嵌入
conversations/ JSONL 对话历史
provider/
http/ · local/
model_ids.rs · presets.rs
channels/ 16+ 消息渠道http/ · local/
model_ids.rs · presets.rs
tools/ · tool_registry/ 工具执行 + 注册
voice/ · audio_toolkit/ STT/TTS/唇形
credentials/ · encryption/ 加密存储
vault/ · workspace/ Obsidian 存储
integrations/ 118+ OAuth 集成
mcp_client/ · mcp_server/ Model Context Protocol
scheduler_gate/ 定时任务门控
desktop_companion/ Mascot 状态机
overlay/ 屏幕覆盖层
observability/ 监控指标
rpc/ RPC 协议类型
bin/ 可执行 binaries
src/ React 前端源码
tailwind.config.js
packages/ 分发包
App.tsx · AppRoutes.tsx · main.tsx
chat/ 对话 UI
mascot/ 桌面伴侣动画
features/ 功能模块
store/ 状态管理
hooks/ · services/ · providers/
src-tauri/ Tauri Rust Shell
chat/ 对话 UI
mascot/ 桌面伴侣动画
features/ 功能模块
voice/ · meet/ · wallet/
screen-intelligence/
privacy/ · daemon/ · webhooks/
human/ · autocomplete/
components/ 通用 React 组件screen-intelligence/
privacy/ · daemon/ · webhooks/
human/ · autocomplete/
store/ 状态管理
hooks/ · services/ · providers/
src/ Tauri 命令 + 插件
tauri.conf.json Tauri 配置
Cargo.toml Rust 依赖清单
capabilities/ 权限声明
skills_data/ 技能数据资产
vite.config.ts Vite 构建配置tauri.conf.json Tauri 配置
Cargo.toml Rust 依赖清单
capabilities/ 权限声明
skills_data/ 技能数据资产
tailwind.config.js
deb/ · homebrew/ · npm/
Cargo.toml Rust Workspace 根package.json · pnpm-workspace.yaml
docker-compose.yml · Dockerfile
docs/ · gitbooks/ · examples/
关键依赖关系
🦀 Rust 异步运行时
- ▸tokio — 异步运行时,所有 I/O 基础
- ▸axum — HTTP 服务器(健康检查、内部 API)
- ▸socketioxide — Socket.IO 服务端实现
- ▸reqwest — HTTP 客户端(LLM API 调用)
🗄️ 数据存储
- ▸rusqlite — SQLite(FTS5 + 向量 + 关系图)
- ▸serde / serde_json — 序列化/反序列化
- ▸walkdir — 文件系统遍历(Vault)
🔐 安全加密
- ▸aes-gcm — 对称加密(OAuth Tokens)
- ▸argon2 — 密钥派生(密码哈希)
- ▸ring + rustls — TLS / 密码学原语
- ▸landlock — Linux 文件系统沙箱
🤖 AI / ML
- ▸whisper-rs — Whisper STT(本地推理)
- ▸pdf-extract — PDF 文档处理(可选)
- ▸matrix-sdk — Matrix 协议客户端(可选)
🟦 前端
- ▸React 18 — UI 框架
- ▸Vite — 构建工具(HMR)
- ▸Tailwind CSS — 样式系统
- ▸socket.io-client — 实时通信客户端
📊 可观测性
- ▸tracing — 结构化日志 + 追踪
- ▸prometheus — 指标采集导出
- ▸opentelemetry — 分布式追踪
- ▸sentry — 错误监控