引言
"Private, Simple and extremely powerful."
这是"一天一个开源项目"系列的第101篇文章。今天带你了解的项目是 OpenHuman。
大多数 AI 助手有一个根本性的局限:它们没有记忆。每次对话都从零开始,不知道你在做什么项目,不知道你的 Gmail 收件箱里有什么,不知道你的 GitHub 仓库上周发生了什么。
OpenHuman 想解决的正是这件事。它的目标不是做一个更好的聊天机器人,而是做一个真正融入你日常生活的 AI 超级智能------每 20 分钟自动拉取你所有集成应用的最新数据,把它们压缩进一个本地 SQLite 知识树,让 AI 随时能访问你的完整工作上下文。5.6k Stars,Rust + Tauri 构建,GPL-3.0 开源,早期 Beta 但已展现出独特的技术路线。
你将学到什么
- OpenHuman 的 Memory Tree 架构如何实现真正的持久记忆(而非简单的对话历史)
- 118+ OAuth 集成 + 每 20 分钟自动同步的工作原理
- TokenJuice 压缩技术如何把 LLM 调用成本降低最高 80%
- 模型路由(Model Routing)如何根据任务类型智能选择推理/快速/视觉模型
- 桌面吉祥物(Desktop Mascot)为什么是差异化的产品设计,而不是噱头
- 为什么选择 Rust + Tauri 而不是 Electron 是一个重要的架构决策
前置知识
- 对 AI 助手和 Agent 有基本了解
- 了解 OAuth 授权的基本概念
- Rust 开发背景有助于理解技术设计,但不是必需的
项目背景
项目简介
OpenHuman 是一个开源的个人 AI 代理助手,定位为"Personal AI Super Intelligence"。它的核心差异化在三个关键词:
- Private(私有):所有工作流数据本地加密存储,不上传到任何云端
- Simple(简单):从安装到运行只需几次点击,无需终端配置
- Powerful(强大):118+ 应用集成 + 持久记忆 + 智能压缩 + 多模型路由
它不只是一个对话框,而是一个主动运作的后台代理:定期拉取数据、持续更新知识树、在你需要时随时提供完整上下文。
作者/团队介绍
- 组织:tinyhumansai
- 创建者:@senamakel
- 项目状态:早期 Beta,活跃开发中
- 技术选择:选用 Rust(69.7%)+ TypeScript(26.1%)+ Tauri 构建桌面应用,而非主流的 Electron,体现了对性能和内存占用的高要求
项目数据
- ⭐ GitHub Stars: 5,600+
- 🍴 Forks: 459
- 🔧 主要语言: Rust 69.7% + TypeScript 26.1%
- 📄 License: GPL-3.0
- 🖥️ 支持平台: macOS、Linux (x64)、Windows
- 🌐 仓库: tinyhumansai/openhuman
- 🔗 官网: tinyhumans.ai/openhuman
主要功能
核心作用
OpenHuman 的本质是:一个主动感知你工作上下文的 AI 代理,而不是被动响应的聊天机器人。
它与传统 AI 助手的核心区别:
yaml
传统 AI 助手:
用户提问 → AI 用训练数据回答 → 对话结束(记忆归零)
OpenHuman:
后台每 20 分钟: 拉取 Gmail / GitHub / Notion / Slack / ... 最新数据
↓
Memory Tree: 压缩归档进本地知识树(SQLite + Obsidian Vault)
↓
用户提问: AI 基于你完整的、最新的工作上下文回答
↓
对话结束: 上下文保留,下次继续
使用场景
-
跨应用的项目上下文理解
- "把我 GitHub 上这个 PR 的进展总结一下,并对比 Linear 里相关 Issue 的最新评论"------AI 已经拉取了两边的数据,直接回答。
-
邮件与任务的自动关联
- "我今天有没有收到关于这个项目的邮件?" AI 扫描已同步的 Gmail 数据,给出摘要和重要邮件列表。
-
会议助手
- 桌面吉祥物作为参会者加入 Google Meet,实时记录、实时提供背景信息。
-
代码与文档的问答
- 基于同步的 GitHub 仓库数据,回答关于代码逻辑、历史变更、PR 评论的问题。
-
Obsidian 知识库增强
- 所有同步数据同时写入 Obsidian 兼容的 Vault,用户可以在熟悉的笔记界面浏览和编辑 AI 维护的知识。
快速开始
方法 1:直接下载安装包(推荐)
bash
# macOS / Linux(一键安装脚本)
curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/install.sh | bash
# Windows(PowerShell)
irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/install.ps1 | iex
# 或直接到官网下载安装包
# https://tinyhumans.ai/openhuman
安装后,通过 UI 向导完成:
- 选择 AI 模型提供商(OpenAI / Anthropic / Ollama 本地模型)
- 添加 OAuth 集成(从 118 个应用中选择你需要的)
- 开始使用
方法 2:开发者源码构建
bash
# 环境要求
# - Node.js 24+
# - pnpm 10.10.0
# - Rust 1.93.0(含 rustfmt + clippy)
# - CMake
git clone https://github.com/tinyhumansai/openhuman.git
cd openhuman
pnpm install
# 开发模式启动
pnpm tauri dev
# 生产构建
pnpm tauri build
配置本地 Ollama 模型(完全本地化):
bash
# 先安装并启动 Ollama
ollama serve
ollama pull llama3.2 # 或其他模型
# 在 OpenHuman 设置中选择 "Ollama" 作为模型提供商
# 指向本地端点: http://localhost:11434
核心特性
1. Memory Tree(记忆树)------持久记忆的技术实现
这是 OpenHuman 最核心的技术创新。它不只是保存对话历史,而是构建了一棵真正的知识树:
css
原始数据(Gmail 邮件 / GitHub PR / Notion 页面 / Slack 消息 ...)
↓
内容规范化(HTML → Markdown,URL 缩短,去除非 ASCII)
↓
分块处理(每块 ≤ 3k tokens)
↓
重要性评分(基于时效性、相关性、频次)
↓
层次化摘要树(父节点 = 子节点摘要的摘要)
↓
双写入:
→ SQLite 本地数据库(AI 查询用)
→ Obsidian 兼容 Vault(用户浏览用)
层次化摘要树的优势:当 AI 需要回答"关于 X 项目的总体状况"时,直接读取高层摘要节点;当需要细节时,再向下钻取具体的数据块。这比简单的向量检索更有结构感,更像人类的记忆组织方式。
2. 118+ OAuth 集成 + 自动同步
覆盖主流工作效率工具的完整生态:
| 类别 | 代表应用 |
|---|---|
| 邮件/通讯 | Gmail、Outlook、Slack |
| 项目管理 | Notion、Linear、Jira、Asana、Trello |
| 代码托管 | GitHub、GitLab、Bitbucket |
| 文档协作 | Google Drive、Dropbox、OneDrive、Confluence |
| 日历/会议 | Google Calendar、Outlook Calendar |
| CRM/营销 | Stripe、HubSpot、Salesforce |
| 其他 | Airtable、Figma、Zapier、Webhooks... |
每 20 分钟的自动同步意味着:你不需要手动"告诉"AI 发生了什么------它自己会去取。
3. TokenJuice------LLM 调用成本压缩技术
TokenJuice 是 OpenHuman 的一个内部技术模块,在所有内容送入 LLM 之前进行压缩处理:
less
原始工具输出 / 网页抓取内容 / API 响应
↓
TokenJuice 处理管道:
1. HTML → 纯 Markdown(去掉所有 HTML 标签)
2. URL 缩短(将长 URL 替换为短标识符)
3. 去除非 ASCII 字符(表情符号、特殊符号)
4. 冗余内容去重(导航栏、页脚、广告等)
5. 关键信息提取(标题、正文、元数据)
↓
压缩效果: 成本和延迟最高降低 80%
对于频繁调用 LLM 的 Agent 来说,这个压缩层的价值是显著的------一个月的 API 费用可能直接减少一半以上。
4. 智能模型路由(Model Routing)
不同的任务适合不同的模型,OpenHuman 会自动路由:
| 任务类型 | 路由目标 | 原因 |
|---|---|---|
| 复杂推理(代码分析、方案设计) | 推理模型(o3、Claude Opus) | 准确性优先 |
| 简单问答(查找数据、格式转换) | 快速模型(GPT-4o-mini、Haiku) | 成本和速度优先 |
| 图片/截图分析 | 视觉模型(GPT-4V、Claude Vision) | 多模态需求 |
| 完全离线场景 | Ollama 本地模型 | 隐私优先 |
5. 桌面吉祥物(Desktop Mascot)
这不是一个纯粹的 UI 噱头,而是一个具备实际功能的后台代理界面:
- 会议参与:作为参与者加入 Google Meet,实时记录讨论内容
- 背景处理:持续在后台运行,处理定时同步任务
- 主动提醒:基于日历和任务数据,主动提醒即将到期的事项
- 个性化交互:有个性和记忆,而非无状态的"帮助机器人"
6. 本地优先隐私架构
所有工作流数据 → 本地 SQLite(AES 加密)
AI 推理 → 可选本地 Ollama(完全离线)
OAuth Token → 本地加密存储,不经过 OpenHuman 服务器
第三方数据 → 只存在你的设备上
这与大多数 AI 助手把你的数据发送到云端进行索引的方式截然不同。
项目优势
| 对比项 | OpenHuman | Notion AI / Copilot | ChatGPT / Claude.ai | Mem.ai |
|---|---|---|---|---|
| 持久记忆 | ✅ Memory Tree(知识树) | 仅限平台内内容 | ❌ 每次对话重置 | ✅ 但云端存储 |
| 跨应用集成 | ✅ 118+ OAuth 应用 | 有限 | ❌ | 有限 |
| 本地/隐私 | ✅ 本地 SQLite 加密 | ❌ 云端 | ❌ 云端 | ❌ 云端 |
| 自动同步 | ✅ 每 20 分钟 | 无 | 无 | 有 |
| 开源 | ✅ GPL-3.0 | ❌ | ❌ | ❌ |
| 桌面原生 | ✅ Rust + Tauri | Web 插件 | Web | Web |
| 本地 AI 模型 | ✅ Ollama 支持 | ❌ | ❌ | ❌ |
项目详细剖析
1. 为什么选 Rust + Tauri,而不是 Electron?
这是 OpenHuman 最有意识的架构决策之一:
Electron 的问题:
- 每个 Electron 应用内置一个完整的 Chromium 引擎
- 基本内存占用通常在 200-500MB
- CPU 占用较高,后台运行影响电池续航
Tauri + Rust 的优势:
- Tauri 使用系统原生 WebView(macOS 用 WKWebView,Windows 用 WebView2)
- 核心逻辑用 Rust 编写:内存安全、零成本抽象、极低内存占用(通常 < 50MB)
- 构建产物更小:一个 Tauri 应用通常 3-10MB,而 Electron 通常 100MB+
对于一个需要常驻后台、每 20 分钟运行同步任务的应用,这个架构选择直接决定了用户体验:OpenHuman 的资源占用更接近一个原生系统应用,而不是一个重量级 Web 应用。
2. Memory Tree vs 向量检索:两种记忆哲学
大多数带记忆功能的 AI 工具使用向量数据库:把内容分块、向量化,检索时找最相似的块。OpenHuman 选择了不同的路径------层次化摘要树:
makefile
向量检索方式:
输入: "X 项目现在怎么样了"
→ 向量搜索找到 Top-K 相似块(可能来自不同时间、不同视角)
→ 拼接成上下文 → LLM 回答
问题: 碎片化,缺乏整体视图
Memory Tree 方式:
输入: "X 项目现在怎么样了"
→ 直接查询 "X 项目" 节点的高层摘要
→ 需要细节时向下展开子节点
→ 回答具有层次感和整体感
这两种方式各有适用场景,OpenHuman 的选择更适合"理解一个长期项目的整体状态"这类问题。
项目地址与资源
官方资源
- 🌟 GitHub : github.com/tinyhumansa...
- 🔗 官网下载 : tinyhumans.ai/openhuman
适用人群
- 知识工作者:同时使用多个 SaaS 工具(Gmail + Notion + GitHub + Slack),需要 AI 跨工具理解上下文
- 独立开发者 / 一人公司:项目管理、代码、邮件全靠自己,希望 AI 助手真正懂你的项目状态
- 隐私敏感用户:不希望工作数据上传到 AI 公司的云端
- AI 工具研究者:对本地优先 AI 助手的架构设计感兴趣
总结与展望
核心要点回顾
- Memory Tree:层次化摘要树 + SQLite 本地存储,真正的跨会话持久记忆
- 118+ OAuth + 每 20 分钟自动同步:让 AI 主动感知你的工作上下文,而不是被动等待
- TokenJuice:LLM 调用前的智能压缩,成本最高降低 80%
- Rust + Tauri:原生桌面应用架构,后台常驻占用极低
- 本地优先隐私:所有数据加密存储在本地,支持完全离线的 Ollama 本地模型
一句话评价
OpenHuman 在构建一个 AI 助手里最难做的事:让 AI 真正"了解"你------不是通过你告诉它,而是通过它主动观察你的工作世界。
欢迎来我的个人主页找到更多有用的知识和有趣的产品