はじめに
"プライベートで、シンプルで、そして非常に強力。"
こちらは「毎日1つのオープンソース・プロジェクト」シリーズの第65回の記事です。今日はOpenHumanを取り上げます。
ほとんどのAIアシスタントには、根本的な制限があります。それはメモリがないことです。会話はすべてゼロから始まります。あなたがどんなプロジェクトに取り組んでいるのか、Gmailの受信箱に何が入っているのか、あるいは先週GitHubリポジトリで何が起きたのかを知りません。
OpenHumanは、まさにそこを解決するために存在します。より良いチャットボットを作ることが目的ではなく、AIをあなたの日常生活に本当に統合する「AIスーパー・インテリジェンス」を作ることが目標です。20分ごとに接続しているすべてのアプリから新しいデータを取り込み、それをローカルのSQLiteの知識ツリーに圧縮し、AIが常にあなたの完全で最新の業務コンテキストにアクセスできるようにします。5.6k Stars、Rust + Tauriで開発、GPL-3.0ライセンス。早期ベータですが、すでに明確に独自の技術的方向性を示しています。
学べること
- OpenHumanのメモリツリーが、単なる会話履歴ではなく「真の永続メモリ」をどう実現しているか
- 118+のOAuth連携 + 20分ごとの自動同期が、実際にはどう動いているのか
- TokenJuiceによる圧縮が、LLM APIコストを最大80%削減する仕組み
- モデル・ルーティングが、推論(reasoning)、高速(fast)、またはビジョン(vision)モデルへタスクをどう賢く振り分けるか
- デスクトップのマスコットが、単なる小手先のギミックではなく意味のあるプロダクト設計上の選択である理由
- ElectronではなくRust + Tauriを選ぶことが、大きなアーキテクチャ上の判断である理由
前提条件
- AIアシスタントおよびエージェントに関する基本的な理解
- 概念としてのOAuth認可の理解
- 技術設計を理解する助けにはなるため、Rust開発の経験があると望ましいが必須ではない
プロジェクトの背景
プロジェクト紹介
OpenHumanは、オープンソースの個人向けAIエージェント・アシスタントであり、「パーソナルAIスーパー・インテリジェンス」として位置づけています。その中核となる差別化は、3つのキーワードに集約されます。
- プライベート(Private): ワークフローのデータはすべてローカルに保存され、暗号化されます。クラウドにアップロードされることはありません
- シンプル(Simple): インストールから動作するエージェントまで数クリックで完了。ターミナル設定は不要です
- 強力(Powerful): 118+のアプリ連携 + 永続メモリ + インテリジェントな圧縮 + マルチモデル・ルーティング
単なるチャット画面ではありません。常駐で動作するバックグラウンドのエージェントです。スケジュールに従ってデータを取得し、知識ツリーを継続的に更新し、必要なときにはいつでも完全なコンテキストを提供できる状態になっています。
著者/チーム紹介
- 組織(Organization): tinyhumansai
- 作成者(Creator): @senamakel
- プロジェクト状況(Project Status): 早期ベータで、積極的に開発中
- 技術選択(Technology choice): デスクトップアプリは主流のElectronではなくRust(69.7%)+ TypeScript(26.1%)+ Tauriで構築。パフォーマンスとメモリのオーバーヘッドを最優先するという意図を明確に示した選択です
プロジェクトデータ
- ⭐ GitHub Stars: 5,600+
- Forks: 459
- 主な言語: Rust 69.7% + TypeScript 26.1%
- ライセンス: GPL-3.0
- ️ 対応プラットフォーム: macOS, Linux(x64), Windows
- リポジトリ: tinyhumansai/openhuman
- Webサイト: tinyhumans.ai/openhuman
主な機能
コアユーティリティ
OpenHumanの本質: あなたの業務コンテキストを能動的に「認識」するAIエージェントであり、何か聞かれるのを受け身で待つチャットボットではありません。
従来型のAIアシスタントとの根本的な違い:
従来型のAIアシスタント:
ユーザーが質問する → AIが学習データから回答 → 会話終了(メモリがリセットされる)
OpenHuman:
バックグラウンドで20分ごとに:
Gmail / GitHub / Notion / Slack / ... から最新データを取得
↓
メモリツリー: ローカルの知識ツリー(SQLite + Obsidian Vault)へ圧縮してアーカイブ
↓
ユーザーが質問: AIはあなたの完全で現在の業務コンテキストに基づいて回答
↓
会話終了: コンテキストは保持され、次回に引き継がれる
ユースケース
-
複数アプリ横断のプロジェクト・コンテキスト
- 「このGitHub PRの進捗を要約して、関連するLinearのissueに対する最新コメントと比較して」—AIはすでに両方を取得しており、直接答えます。
-
メールとタスクの相関
- 「今日、このプロジェクトに関するメールを受け取った?」—AIは同期済みのGmailデータをスキャンし、要約と重要なメッセージの一覧を提示します。
-
ミーティング・アシスタント
- デスクトップのマスコットがGoogle Meetに参加者として加わり、議論をリアルタイムに記録し、関連する背景情報を提示します。
-
コードとドキュメントのQ&A
- 同期済みのGitHubリポジトリデータに基づいて、コードのロジック、過去の変更履歴、PRコメントについての質問に答えます。
-
Obsidianの知識ベース強化
- 同期されたすべてのデータは、同時にObsidian対応のVaultへ書き込まれます。これにより、ユーザーは馴染みのあるメモ作成インターフェースで、AIが管理する知識を閲覧・編集できます。
クイックスタート
方法1: インストーラをダウンロード(推奨)
# 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
# もしくはWebサイトから直接ダウンロード:
# https://tinyhumans.ai/openhuman
インストール後、UIウィザードを完了します:
- AIモデルプロバイダを選択(OpenAI / Anthropic / ローカルOllama)
- OAuth連携を追加(利用したいものを118種類の中から選択)
- 使い始める
方法2: 開発者向けソース構築
# 要件:
# - 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で完全オフライン実行:
# Ollamaをインストールして起動
ollama serve
ollama pull llama3.2 # もしくは別のモデル
# OpenHumanの設定で、モデルプロバイダとして「Ollama」を選択
# ローカルのエンドポイントを指定: http://localhost:11434
コアとなる特性
1. メモリツリー — 永続メモリのための技術エンジン
返却形式: {"translated": "翻訳されたHTML"}これはOpenHumanの最も中核的な技術革新です。単に会話履歴を保存するだけではありません。実際の知識ツリーを構築します:
生データ(Gmailメッセージ / GitHub PR / Notionページ / Slackメッセージ / ...)
↓
コンテンツ正規化(HTML → Markdown、URL短縮、非ASCII文字の削除)
↓
チャンク分割(各チャンク ≤ 3k トークン)
↓
重要度スコアリング(最新性、関連性、頻度に基づく)
↓
階層型サマリー・ツリー(親ノード=子ノードのサマリーの要約)
↓
デュアル書き込み:
→ 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に「何が起きたか」を手動で伝える必要がありません。AIが自分で取りに行きます。
3. TokenJuice — LLMコスト圧縮技術
TokenJuiceは、コンテンツがLLMに届く前にすべてを圧縮する社内モジュールです:
生のツール出力 / ウェブスクレイピング / APIレスポンス
↓
TokenJuice処理パイプライン:
1. HTML → プレーンMarkdown(すべてのHTMLタグを除去)
2. URL短縮(長いURLを短い識別子に置き換える)
3. 非ASCII文字の削除(絵文字、特殊記号)
4. 冗長なコンテンツの重複排除(ナビバー、フッター、広告)
5. 重要情報の抽出(見出し、本文テキスト、メタデータ)
↓
結果:コストとレイテンシが最大80%削減
LLMを頻繁に呼び出すエージェントにとって、この圧縮レイヤーの重要性は非常に大きいです。月次のAPIコストは簡単に半分、あるいはそれ以上に削減できます。
4. インテリジェントなモデルルーティング
タスクによって適したモデルは異なります。OpenHumanは自動で振り分けます:
| タスク種類 | ルート先 | 理由 |
|---|---|---|
| 複雑な推論(コード解析、アーキテクチャ設計) | 推論モデル(o3、Claude Opus) | 正確性を最優先 |
| 単純な参照(データを探す、フォーマット変換) | 高速モデル(GPT-4o-mini、Haiku) | コストと速度を最優先 |
| 画像 / スクリーンショット解析 | ビジョンモデル(GPT-4V、Claude Vision) | マルチモーダル要件 |
| 完全オフラインのシナリオ | ローカルのOllamaモデル | プライバシーを最優先 |
5. デスクトップのマスコット
これは単なるUI上の小技ではなく、機能するバックグラウンド・エージェントのインターフェースです:
- 会議への参加:Google Meetに参加者として入り、議論をリアルタイムで記録
- バックグラウンド処理:作業中も継続的にスケジュールされた同期タスクを実行
- 主導的なリマインド:カレンダーとタスクデータに基づいて、迫る締切を提示
- パーソナライズされた対話:性格と記憶を持つ—ステートレスな「ヘルプボット」ではありません
6. ローカルファーストのプライバシー・アーキテクチャ
すべてのワークフローデータ → ローカルSQLite(AES暗号化)
AI推論 → 任意のローカルOllama(完全オフライン)
OAuthトークン → ローカルで暗号化され、OpenHumanサーバーにはルーティングされない
サードパーティのデータ → あなたのデバイス上にのみ存在
これは、インデックスのためにあなたのデータをクラウドへ送る多くのAIアシスタントとは根本的に異なります。
プロジェクトの利点
| 機能 | OpenHuman | Notion AI / Copilot | ChatGPT / Claude.ai | Mem.ai |
|---|---|---|---|---|
| 永続的なメモリ | ✅ メモリツリー | プラットフォームのコンテンツのみ | ❌ 会話ごとにリセット | ✅ ただしクラウドストレージ |
| クロスアプリ連携 | ✅ 118+ OAuthアプリ | 限定的 | ❌ | 限定的 |
| ローカル / プライバシー | ✅ ローカルSQLite、暗号化 | ❌ クラウド | ❌ クラウド | ❌ クラウド |
| 自動同期 | ✅ 20分ごと | なし | なし | はい |
| オープンソース | ✅ GPL-3.0 | ❌ | ❌ | ❌ |
| ネイティブのデスクトップ | ✅ Rust + Tauri | Webプラグイン | Web | Web |
| ローカルAIモデル | ✅ Ollama対応 | ❌ | ❌ | ❌ |
詳細な分析
1. ElectronではなくRust + Tauriを選ぶ理由?
これは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. メモリツリー vs ベクトル取得:2つのメモリ思想
メモリを使う多くのAIツールはベクトルデータベースを採用しています。コンテンツをチャンク化し、ベクトル化し、クエリ時に最も近いチャンクを取得します。OpenHumanは別の道を選びました—階層型サマリー・ツリーです:
ベクトル取得アプローチ:
クエリ:「プロジェクトXの現在の状況は?」
→ ベクトル検索が、さまざまな時点・視点のTop-Kの類似チャンクを見つける
→ コンテキストとして連結 → LLMが回答
問題:断片的で、全体像が欠ける
メモリツリー・アプローチ:
クエリ:「プロジェクトXの現在の状況は?」
→ 「プロジェクトX」の高レベルサマリーノードを直接読み取る
→ 必要に応じて、詳細のためのサブノードへ掘り下げる
→ 階層と整合性のある回答になる
どちらのアプローチにもそれぞれ適した用途があります。OpenHumanの選択は、「長期にわたるプロジェクト全体の状況を理解する」といった質問により適しています——まさにそれを対象としているユースケースです。
プロジェクトリンク & リソース
公式リソース
想定対象ユーザー
- ナレッジワーカー: 複数のSaaSツールを同時に使う(Gmail + Notion + GitHub + Slack)人で、すべてをまたいだ文脈をAIに理解させる必要がある方
- ソロ開発者 / 一人企業: プロジェクト・コード・メールを一人で管理しており、自分のプロジェクト状況を本当に理解するAIアシスタントが欲しい方
- プライバシー重視のユーザー: 仕事データをAI企業のクラウドにアップロードしたくない方
- AIツール研究者: ローカルファーストのAIアシスタントのアーキテクチャ設計に関心がある方
概要
要点
- メモリツリー: 階層型の要約ツリー + ローカルSQLiteストレージ——セッションをまたいだ真の永続メモリ
- 118+ OAuth + 20分ごとの自動同期: AIが「伝えられるのを待つ」のではなく、あなたの作業文脈を能動的に認識する
- TokenJuice: インテリジェントな事前LLM圧縮で、最大80%のコスト削減
- Rust + Tauri: ネイティブデスクトップ構成で、バックグラウンドのリソース使用を最小限に
- ローカルファーストのプライバシー: すべてのデータをデバイス上で暗号化し、完全オフラインのOllamaローカルモデルにも対応
ひとことでレビュー
OpenHumanは、AIアシスタント設計における最も難しい課題に取り組んでいます。つまり、AIを「あなたに教えたから」ではなく「あなたの作業世界を能動的に観察するから」こそ、本当に知っている状態にすることです。
私のホームページで、役立つ知識や面白いプロダクトをもっと見つけてください




