OpenHuman:Rust 核心的开源 agent harness

OpenHuman 是 tinyhumansai 用 Rust 写的开源 agent harness,同一个核心支撑桌面应用、浏览器、终端和 Rust 库四种入口,LLM、Embedding 与记忆后端按配置替换,默认记忆方案跑在本地。这篇整理它的功能、安装路径、编译开关与体积数据,并把 Windows 端 OAuth 登录问题这批真实 Issue 摆出来,帮你判断现在要不要上手。

OpenHuman 的 agent 核心跑在调用方的进程里,不额外起一个后台守护进程让界面通过 socket 去连。同一个 core 同时支撑桌面应用、浏览器 UI、终端客户端和 Rust 库四种形态,接哪家 LLM、用哪套 Embedding、记忆存在哪,全部由配置决定。

OpenHuman 是 tinyhumansai 用 Rust 写的开源 agent harness,同一个核心可嵌进桌面应用、浏览器 UI、终端客户端和 Rust 库四种入口,LLM、Embedding、记忆与检索都靠配置替换。

仓库目前标着 Early Beta,README 里写了「Expect rough edges」。项目创建于 2026 年 2 月,到 2026 年 10 月 1 日仍在持续提交,Star 40203、Fork 3974、开放 Issue 271。许可证是 GPL-3.0,主要语言是 Rust(占 52.2%,TypeScript 占 41.5%,其余是 JavaScript、HTML、Shell 和 CSS)。仓库地址:https://github.com/tinyhumansai/openhuman。

OpenHuman 项目封面图

主要功能

  • 一个 core 撑四种入口:桌面应用、浏览器 UI、终端客户端和 Rust 库共用同一套核心,差异在外层界面,不在 agent 与记忆逻辑。开发者可以把 core 当 Rust 库直接嵌进自己的程序。
  • 引擎按配置选:LLM 侧可选托管 TinyHumans 路由、Ollama、LM Studio、MLX、任意本地 OpenAI 兼容服务、Claude Code 或 Claude Agent SDK,以及 26 个自带密钥的供应商,名单里包括 OpenRouter、OpenAI、Anthropic、Google、Groq、Mistral、DeepSeek、Together 和 Fireworks。Embedding 侧可选托管 Voyage 路由,也可自备 Voyage、OpenAI、Cohere、Ollama 或 OpenAI 兼容端点。
  • 本地记忆默认开启:默认记忆方案是跑在 TinyCortex 上的 Memory Trees,并镜像成机器上的一个 Obsidian vault,数据不出本机。这一层同样可以替换。
  • Cargo feature gate 裁剪能力:编译期用 feature gate 决定哪些能力进二进制。贡献者默认开九个:media、skills、flows、mcp、channels、http-server、scheduler-gate、file-logging、modules;发布的桌面版开的集合写在 scripts/ci/product-features.txt。
  • 可加载的原生模块:tinydocs、tinyvoice、tinyjuice、tinyruntime、tinywallet、tinymcp、tinychannels、tinyconnectors 各自是一个模块,每个模块配一个 *-bus 契约 crate 定义接口与线上类型。
  • token 压缩:tinyjuice 负责压缩送往模型的内容,README 的说法是大上下文实际花费低于它的原始体积所对应的成本。
  • 多 agent 同进程:官方做的 fleet sweep 里,50、100、500 个 agent 跑在同一个进程,边际成本分别是 1985、1866、1770 KiB,总占用 223 MiB、356 MiB、1393 MiB。同样 500 个 agent 拆成 500 个进程时每实例约 48 MiB,README 给出的密度倍数是约 25 倍。
  • 启动与常驻数据:一次冷 agent turn 是 102 ms,完整九阶段 bootstrap(加载配置、初始化注册表、构建 agent、构建记忆、首轮对话)是 476 ms。纯 slim 构建常驻约 42 MiB RSS,其中约 15.2 MiB 是私有堆。

安装与依赖

官方路径是下载安装包,来源有两个:项目主页 tinyhumans.ai/openhuman 和 GitHub Releases 页面。终端安装方式(Homebrew、Debian/Ubuntu 的 .deb、AUR、安装脚本以及各平台注意事项)写在仓库的 INSTALL.md 里,README 只做指路。

仓库根目录还有 Dockerfile、docker-compose.yml 和 fly.toml,说明存在自托管路线,但 README 前文没有给出最小自托管步骤。依赖锁在 Cargo.lock,前端部分用 pnpm,锁文件是 pnpm-lock.yaml。仓库体积 240067 KB,克隆前心里有个数。

最短能跑通的用法

README 没有给出一条从零到能对话的完整命令序列,最短路径是装安装包再启动。

# 下载对应平台安装包
https://github.com/tinyhumansai/openhuman/releases/latest

# 终端安装方式(Homebrew / .deb / AUR / 安装脚本)
INSTALL.md

首次启动会走 onboarding,并需要 Google 或 GitHub 的 OAuth 授权,这一点从仓库 Issue 里能确认,README 本身没有展开描述登录流程。配置项集中在根目录的 .env.example(26.6 KB),改配置之前先看这个文件。仓库里没有说明装完之后第一步该做什么,也没有给示例配置文件。

关键参数

编译期最需要关心的是一组 Cargo feature gate。贡献者默认开启的九个门是 media、skills、flows、mcp、channels、http-server、scheduler-gate、file-logging、modules,发布的桌面产品用更宽的一组,清单在 scripts/ci/product-features.txt。

体积随开关变化:什么都不开是纯 slim 构建,strip 后 51 MiB;加回 skills 和 flows(README 称这是面向嵌入场景的推荐组合)约 60 MiB stripped;所有 gate 全开是 116 MiB unstripped。scripts/kernel-floor.sh 对依赖数量设了只降不升的棘轮,防止体积回涨。

运行时参数走配置,LLM、Embedding、记忆三类后端都在其中选择,具体字段名仓库里没有在前文列出,需要对着 .env.example 和 docs 站点看。仓库里没有说明这一步的完整字段列表。

结果在哪里看

对话与 agent 的执行过程在四种入口里分别呈现:桌面应用窗口、浏览器 UI、终端客户端输出,或者作为 Rust 库被调用时由你自己的程序接收。

记忆这一层有明确的落点。Memory Trees 默认全本地,并镜像成本机的一个 Obsidian vault,可以直接用文件系统或者 Obsidian 打开查看和编辑。

日志方面,file-logging 是九个默认 gate 之一,说明日志可以落文件,但 README 前文没有写落在哪个目录。仓库里没有说明统一的输出目录或报告目录。

实际使用中的坑

开放 Issue 有 271 条。按评论数排在前面的问题集中在登录与 Windows 端,事实表里这些条目都标为已解决。

  • OAuth 回跳丢失:在浏览器完成 Google 或 GitHub 授权后,Windows 11 会忽略 openhuman://auth?token=... 这个 deep link,应用停留在登录页不往前走。同一个现象在 Windows v0.54.0 的发布版里也出现过。状态:已解决。
  • 登录接口报错:终端出现 unauthorized request to /auth — missing or wrong bearer token,日志归属 openhuman_core::core::auth。状态:已解决。
  • 桌面窗口闪烁:新开的桌面窗口每两秒弹出又消失一次。状态:已解决。
  • 中文支持请求:有人提过需要中文版本,现在仓库里已经有 docs/README.zh-CN.md。状态:已解决。

这些条目在事实表里都是已解决状态,但 Early Beta 阶段的修复不保证覆盖所有版本与所有平台,尤其在 Windows 上遇到登录卡住时,先确认自己装的是哪个版本。

和同类放在一起看

项目适合谁部署方式主要限制什么情况下选它更合适项目地址
OpenHuman想在本地跑 agent,需要图形界面,并且要随时换 LLM 与记忆后端的人官方安装包;终端安装走 Homebrew、Debian/Ubuntu .deb、AUR 或安装脚本;仓库另有 Dockerfile、docker-compose.yml、fly.tomlGPL-3.0 对二次分发有约束;Early Beta,README 自述会有 rough edges;Windows 端 OAuth 回跳曾连续出问题;仓库体积 240067 KB需要桌面、浏览器、终端、库四种入口共享同一套记忆与 agent 配置时OpenHuman
gptme长期待在终端里、习惯命令行工作流的人仓库没有说明它面向终端使用,和 OpenHuman 的桌面与浏览器入口不是一类形态;更细的差异未逐一核实只需要在终端里跑 agent,不想要桌面应用与图形界面时gptme
LEANN要把个人数据做成笔记本上本地检索索引的人仓库没有说明它专注本地索引与检索,不负责 agent 编排;其余未逐一核实已经有自己的 agent 或流程,只缺一层本地检索时LEANN

如果你的活儿只在命令行里,gptme 这类项目不用背上桌面应用那一层的体积和依赖,OpenHuman 的安装包与前端资源都不小,240067 KB 的仓库对只想跑几轮对话的人来说是负担。反过来,需要图形界面、需要四种入口共用同一份本地记忆的场景,纯终端方案就覆盖不了,这时该看的是 OpenHuman 而不是更轻的终端 agent。LEANN 与这两者解决的不是同一件事,它只处理检索这一层。

授权与合规前提

OpenHuman 的能力来自可插拔模块与渠道,tinychannels、tinyconnectors、mcp 这类东西一旦接上外部账号、API 或数据源,行为边界就由使用者自己划定。用它去操作任何系统,前提是你拥有该系统,或者拿到了明确授权。

BYOK 模式下填进去的密钥是你自己的凭据,密钥泄漏、额度被刷、触发目标平台风控的后果都由使用者承担。把 agent 指向未授权的第三方服务,可能同时踩到法律与平台规则,账号被封是常见后果。

分发层面还有许可证约束:GPL-3.0 对二次分发与衍生作品有传染性要求,打算把它嵌进闭源产品之前先读 LICENSE。

适合谁

适合手上有本地算力或愿意接自有 API 密钥、需要一个能换后端的 agent 运行环境的人;适合需要桌面或浏览器界面而不只是命令行的人;适合在意记忆数据留在本机、想直接用 Obsidian 看记忆文件的人;也适合想把 agent 核心当 Rust 库嵌进自己程序的开发者。

不适合只想在终端里跑几轮对话的人,这类需求用更轻的终端 agent 更省事;不适合要求稳定生产可用的人,Early Beta 加上每周多次发版的节奏,适合愿意跟着版本走的人;也不适合需要闭源再分发自己改造版本的人,GPL-3.0 会挡在这条路上。

焚评:这个项目的量化评分

本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.9 分(满分 10)。下表是各维度的得分:

评分维度得分
热度动量(权重 25%)10.0 / 10
开发活跃(权重 25%)10.0 / 10
社区响应(权重 15%)9.7 / 10
文档质量(权重 15%)9.9 / 10
发布节奏(权重 10%)9.9 / 10
风险控制(权重 10%)10.0 / 10

评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。

内容核验说明

值得留的是它把 agent harness 的取舍讲清楚了:四种入口共用一个 core、Cargo feature gate 怎么裁体积、内存与启动的量化数字都摆出来,也如实列出 Windows 端 OAuth 这批 Issue,没只抄 README。适合想在本地跑 agent、需要桌面或浏览器界面、又要随手换后端与记忆方案的人;

仓库指标(Star、Fork、体积、Issue 数)、内存占用、启动耗时、构建体积等数据来自作者 README 与仓库公开披露,诀.com 未独立验证;Issue 状态以仓库当前标记为准,Early Beta 阶段修复不保证覆盖所有版本与平台。评分数据由焚.com 授权引用。

项目来源与说明

开源项目:tinyhumansai(tinyhumansai)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库