Hotdry.

Article

Rust 私人超级智能体架构:OpenHuman 本地推理管道与隐私边界

解析 TinyHumans AI 开源的 OpenHuman 系统,聚焦 Rust 核心如何通过内存隔离、可选本地推理与工作区作用域工具实现数据主权。

2026-05-13ai-systems

OpenHuman 是 TinyHumans AI 于 2026 年开源的个人超级智能体项目,采用 React + Tauri v2 构建桌面外壳,Rust 核心承担所有业务逻辑。与主流 Agent 框架依赖云端上下文不同,OpenHuman 将记忆、压缩与路由全部收敛在本地 Rust 进程内,外部只透传经过处理的 LLM 调用。本文从隐私架构与本地推理管道两个维度,解构其工程实现。

本地优先的记忆管道

OpenHuman 的记忆系统名为 Memory Tree,遵循「采集 → 规范化 → 分块 → 存储 → 评分 → 摘要」的闭环,数据始终在本地流转。

数据入口。Auto-fetch 模块以 20 分钟为周期轮询 118 个第三方集成(Gmail、GitHub、Notion、Slack 等),通过 OAuth 建立连接后拉取原始内容。后端持有 OAuth 令牌,Rust 核心始终不接触明文凭证 —— 这切断了敏感数据从设备侧泄露的第一条链路。

规范化与分块。Provider 返回的原始页面(邮件正文、代码 diff、频道记录)统一转换为带来源标签的 Markdown 块。每个块固定 ≤3k token,超长内容被确定性切分,保证嵌入向量的一致性粒度。

双副本存储。分块后同时写入两处:SQLite 数据库 <workspace>/memory_tree/chunks.db 与 Obsidian 兼容的 Markdown 保险库 <workspace>/wiki/。前者服务向量搜索与热评分,后者赋予用户对自身数据的直接读写权限 —— 任何时候可以用 Obsidian 打开、编辑或导出记忆内容。

后台评分与摘要。嵌入向量由 OpenAI text-embedding-3-small 生成(可选替换为本地 Ollama),热评分系统跟踪每块的访问频率与时间衰减。基于分块池,系统构建源级、主题级与全局三级摘要树,供 Agent 在推理时检索。整个评分 - 摘要链路运行在 Rust 核心的后台 worker 内,无任何数据离开本地进程。

可选本地推理:Ollama 与隐私边界

OpenHuman 的 Local AI 模块是隐私架构的核心落地。用户显式 opt-in 后,以下工作负载可跑在本地:

工作负载 本地模型(默认) 替代云端 Hint
向量嵌入 gemma3:1b-it-qat (~700 MB) hint:reasoning
摘要树构建 gemma3:1b-it-qat hint:summarize
心跳循环(后台反思) gemma3:1b-it-qat hint:medium
学习反思(经验整合) gemma3:1b-it-qat hint:medium
潜意识循环(后台评估) gemma3:1b-it-qat hint:reaction

架构层面,Rust 通过 OpenAiCompatibleProvider 封装 Ollama 的 OpenAI 兼容 /v1 接口,与远程模型使用同一套 provider 抽象。Router 在解析 hint 时检查 Ollama 可达性:若本地服务可用,优先路由到本地;若离线,透明降级至云端 provider——Agent 无感知,无中断。

本地推理的配置通过两个 flag 控制:local_ai.enabled(总开关)与 local_ai.usage.*(逐功能 opt-in)。桌面应用的 Settings → AI & Skills → Local AI 提供预设组合:「仅嵌入」「记忆 + 反思」「全量本地」,对应不同硬件配置需求(推荐 16 GB+ RAM)。

沙箱技能与工作区隔离

OpenHuman 的可扩展性通过 QuickJS 沙箱运行时实现。每个 Skill 运行在独立 QuickJS 实例中,内存上限 64 MB,栈大小 512 KB,与其他 Skill 完全隔离。Rust 层通过 MPSC channel 与 Skill 通信,无共享可变状态。

Skill 的文件系统工具遵循工作区作用域原则:工具只能在用户当前打开的工作区内读写,不能访问工作区外部的任意路径。OAuth 连接撤销后,对应的 Skill 同步停止,但已写入本地 Memory Tree 的分块保留 —— 因为那是用户的数据,用户保留完全控制权。

传输层安全与密钥管理

所有 Rust 核心与外部服务的通信均走 rustls TLS 实现,不依赖平台 OpenSSL。OAuth 令牌存储在操作系统密钥链中(macOS Keychain、Windows Credential Manager、Linux Secret Service),不在磁盘明文落盘。内存加密使用 AES-256-GCM,密钥通过 Argon2id 从用户凭证派生,确保离线状态下的记忆文件不可读。

认证令牌(Web ↔ Desktop 通信)使用 5 分钟 TTL 的单次令牌,防止会话劫持持久化。

TokenJuice:本地压缩的经济学

TokenJuice 是 OpenHuman 在工具输出进入 LLM 上下文前运行的规则压缩层。其核心价值在于:Auto-fetch 拉取的邮件、代码 diff、Slack 记录在进入本地摘要流程前已被压缩 60–80%,使得大规模记忆构建在成本上可行。具体而言,近六个月邮件的完整摄入通过 TokenJuice + 摘要模型,单次成本降至个位数美元量级。

规则以 JSON 文件分层覆盖:系统默认 → 用户全局 ~/.config/tokenjuice/rules/ → 仓库级 .tokenjuice/rules/。新增工具规则无需重编译,只需在对应目录放置 JSON 配置文件。

小结

OpenHuman 的隐私架构本质上是「数据边界最小化」:OAuth 代理解决令牌泄露,Memory Tree 本地化解决上下文泄露,Ollama 可选路由解决嵌入泄露,TokenJuice 解决 token 成本泄露,QuickJS 沙箱解决技能间数据泄露。Rust 核心作为所有业务逻辑的权威宿主,确保任何数据在离开本地进程前都经过有意设计的状态转换。对于需要在设备端运行隐私敏感 AI 工作负载的开发者,OpenHuman 的模块化本地推理管道提供了可直接参照的工程样本。

资料来源:OpenHuman GitHub 仓库及官方文档(Architecture / Privacy & Security / Local AI / TokenJuice / Model Routing)。

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com