跳到主要内容

开发概述

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 调用核心。

数据流

  1. 连接。OAuth 进入集成。后端存储 token;核心永远不会以明文形式看到它。
  2. 自动抓取。每二十分钟调度器遍历每个活动连接并请求每个本机提供商同步。
  3. 规范化。提供商输出(邮件页面、GitHub diff、Slack 频道转储)被规范化为带出处的 Markdown。
  4. 分块。Markdown 被分割成 ≤3k-token 的确定性块。
  5. 存储。块进入 SQLite(<workspace>/memory_tree/chunks.db)并作为 .md 文件进入 <workspace>/wiki/
  6. 评分。后台工作线程运行嵌入、实体提取、热评分。
  7. 摘要。源/主题/全局摘要树从块池构建和刷新。
  8. 检索。当您提问时,agent 查询记忆树(搜索/钻取/主题/全局/获取)。
  9. 压缩。工具输出和大型源数据在进入 LLM 上下文之前通过 TokenJuice 处理。
  10. 路由路由器为任务提示选择正确的提供商+模型。

隐私边界

保留在您机器上:

  • 记忆树 SQLite 数据库
  • Obsidian Markdown 保险库
  • 音频捕获缓冲区和任何本地模型状态

通过 OpenHuman 后端(在一个订阅下):

  • LLM 调用(模型提供商)
  • 网页搜索代理
  • 集成 OAuth 和工具代理
  • TTS 流

开源

下一步