开发概述
OpenHuman 依据 GNU GPL3 开源。本页是系统的高级形态;深入开发者架构位于代码库中的深度架构参考。
形态
OpenHuman 是一个 React + Tauri v2 桌面应用,配备执行繁重工作的 Rust 核心。
┌──────────────────────────────────────────────────┐
│ Tauri shell (app/src-tauri/) │
│ • 窗口化、OS 集成、sidecar 生命周期 │
│ • 用于集成提供商的 CEF 子 WebViews │
└──────────────────────────────────────────────────┘
│ JSON-RPC (HTTP) ↕
┌──────────────────────────────────────────────────┐
│ Rust 核心 (`openhuman` 二进制文件, `src/`) │
│ • 记忆树流水线 │
│ • 集成适配器 + 自动抓取调度器 │
│ • 提供商路由器(模型路由) │
│ • TokenJuice 压缩 │
│ • 原生工具(搜索、抓取、fs、git…) │
│ • 语音(STT 输入、TTS 输出、会议助手) │
└──────────────────────────────────────────────────┘
│
┌──────────────────────────────────────────────────┐
│ React 前端 (app/src/) │
│ • 界面、导航 │
│ • 通过 `coreRpcClient` 与核心通信 │
│ • 无业务逻辑——仅展示 │
└──────────────────────────────────────────────────┘
逻辑所在:
- Rust 核心:所有业务逻辑。记忆树、集成、模型路由、工具、语音。权威。
- Tauri shell:窗口化、进程生命周期、IPC。交付工具,非功能所在。
- React 前端:UI 和编排。通过 JSON-RPC 调用核心。
数据流
- 连接。OAuth 进入集成。后端存储 token;核心永远不会以明文形式看到它。
- 自动抓取。每二十分钟调度器遍历每个活动连接并请求每个本机提供商同步。
- 规范化。提供商输出(邮件页面、GitHub diff、Slack 频道转储)被规范化为带出处的 Markdown。
- 分块。Markdown 被分割成 ≤3k-token 的确定性块。
- 存储。块进入 SQLite(
<workspace>/memory_tree/chunks.db)并作为.md文件进入<workspace>/wiki/。 - 评分。后台工作线程运行嵌入、实体提取、热评分。
- 摘要。源/主题/全局摘要树从块池构建和刷新。
- 检索。当您提问时,agent 查询记忆树(搜索/钻取/主题/全局/获取)。
- 压缩。工具输出和大型源数据在进入 LLM 上下文之前通过 TokenJuice 处理。
- 路由。路由器为任务提示选择正确的提供商+模型。
隐私边界
保留在您机器上:
- 记忆树 SQLite 数据库
- Obsidian Markdown 保险库
- 音频捕获缓冲区和任何本地模型状态
通过 OpenHuman 后端(在一个订阅下):
- LLM 调用(模型提供商)
- 网页搜索代理
- 集成 OAuth 和工具代理
- TTS 流
开源
- 仓库: github.com/tinyhumansai/openhuman。GNU GPL3。
- 问题和 PR 欢迎。项目处于早期测试阶段。
- 对于贡献者,规范开发者指南是深度架构参考。