AIセットアップ
7ステップで、自分だけの private AI。
Hermes Desktop と Venice を使い、Telegram の会話を安全に取り込みます。
画面を見ながら、自分だけのプライベートAIを設定しましょう。画像を押すと拡大できます。
Venice で API キーを作る
Veniceのprivateモデル、または自分のMacで動かすローカルLLMを使えます。ローカルLLMを使う場合、VeniceのAPIキーは不要です。
ローカルLLMを使う場合はVeniceのキー作成を飛ばして手順2へ進み、手順3・5のローカル向け案内に従ってください。Veniceの利用にはAPI残高が必要です。クレジットを購入する場合は、HermesではなくVeniceで購入してください。Testに失敗した場合は、VeniceのAPI残高・キーの有効期限・利用上限を確認してください。 Venice APIの案内
privateモデル専用のキーを作る
画像を拡大- VeniceにログインしてAPI設定を開き、「New API Key」を押します。
- 名前を入力し、権限は「Inference」のまま、「Model privacy」を「Private models only」にします。
- このデモでは名前を「Mordred Demo」、「Expiration」を「30 days」にしています。有効期限は用途に合わせて選んでください。
- 下にある有効期限・利用上限を確認して「Generate key」を押します。表示されたキーをコピーし、手順3でHermesにVeniceを設定するときに使えるよう控えます。

Hermes Desktop をインストール
Mac用のアプリをダウンロード
画像を拡大- 公式サイトで「Download for macOS」を押し、ダウンロードしたインストーラーを開きます。
- インストーラーの案内に沿って進め、Hermes Desktopを起動します。

「I'll choose a provider later」を選ぶ
画像を拡大- Hermesの初回起動時にAIの接続先を選ぶ画面が出たら、左下の「I'll choose a provider later」を押します。
- Veniceへの接続は、次の手順3で設定します。

Linux / Ubuntu のトラブルシューティング
新規インストールした Ubuntu 24.04 で確認した対処法です。画面に出ているエラーを開いてください。他の Linux ディストリビューションではパッケージ名が異なる場合があります。
「Building or probing the TPM helper failed」と表示される
Rust や TPM の開発ライブラリが不足しているか、現在のデスクトップセッションに TPM へのアクセス権がない可能性があります。Linux の KeyVault には動作する TPM 2.0 が必要です。ソフトウェアの鍵への代替はありません。
ビルドに必要なパッケージをインストールします。
sudo apt-get updatesudo apt-get install -y build-essential pkg-config libtss2-dev clang libclang-dev公式の rustup インストーラーで Rust を導入します。ヘルパーには Rust 1.85 以上が必要です。Ubuntu 24.04 の標準パッケージでは古い場合があります。対応する Rust が導入済みなら、環境の読み込みとバージョン確認だけ行ってください。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/mordred-rustup-init.shsh /tmp/mordred-rustup-init.sh -y --profile minimal. "$HOME/.cargo/env"rustc --versioncargo --versionTPM デバイスと自分の所属グループを確認します。/dev/tpmrm0 がない場合は、先にマシンや VM の TPM 対応・設定を確認してください。ライブラリの導入だけでは TPM は作られません。
ls -l /dev/tpmrm0idデバイスのグループが tss で、自分がそのグループに入っていない場合だけ、次を実行します。誰でもデバイスに書き込める権限には変更しないでください。
sudo usermod -aG tss "$(id -un)"Linux のデスクトップからサインアウトし、再ログインします。VNC ビューアーの再接続だけでは、起動済みプロセスのグループは更新されません。新しいターミナルでアクセス権を確認し、ヘルパーをビルドします。
. "$HOME/.cargo/env"test -r /dev/tpmrm0 && test -w /dev/tpmrm0 && echo 'TPM device access OK'hermes-mordred keyvault enable-tpmTPM の接続確認に成功したら、Rust の環境を引き継ぐため、同じターミナルから Desktop を開きます。
hermes desktop --skip-build
解決の確認
「TPM 2.0 helper installed and hardware probe succeeded.」と表示され、Mordred の画面で「✓ TPM 2.0」を確認できれば完了です。メモリ暗号化と Telegram ログインは別の設定手順です。
Desktop のビルドが node-gyp で失敗する:make がない
最小構成の Ubuntu には、Hermes Desktop のビルドに必要な開発ツールが入っていない場合があります。
必要なツールを導入してビルドを再実行します。初回は数分かかることがあるため、ターミナルを閉じずに待ってください。
sudo apt-get install -y build-essential pkg-confighermes desktop --build-onlyパッケージの作成が終わったら Desktop を起動します。
hermes desktop --skip-build
解決の確認
ビルドが完了し、Hermes Desktop の画面が開くことを確認します。処理が強制終了したり極端に遅くなる場合は、空きメモリと VM の CPU リソースを確認してから再実行してください。
Desktop が起動しない:libasound.so.2 がない
スピーカーがないマシンでも、Desktop の実行には ALSA のライブラリが必要です。
Ubuntu 24.04 では libasound2t64 を導入し、ビルド済みのアプリを起動します。
sudo apt-get install -y libasound2t64hermes desktop --skip-build
解決の確認
ライブラリ不足のエラーが消え、Desktop のメイン画面が開くことを確認します。
libatomic.so.1 の確認中に sudo のパスワードを求められる
Hermes のインストーラーが libatomic1 を必要としています。EC2 の Ubuntu では SSH 鍵でログインするため、sudo をパスワードなしで実行できても、ログイン用パスワード自体がない場合があります。
ターミナルで不足ライブラリを導入してから、Hermes のインストーラーを再実行します。sudo に認証が必要な環境では、Linux アカウントのパスワードを使用するか管理者に相談してください。API キーや VNC のパスワードは入力しません。
sudo apt-get install -y libatomic1
解決の確認
Node.js のライブラリ確認を通過し、インストールが先へ進むことを確認します。
Desktop を開きたいだけなのに Nous Portal の承認待ちになる
インストールの失敗ではなく、モデル提供元の設定画面です。モデルの接続前でも Desktop は開けます。
Ctrl+C でログイン待ちを終了します。対話式セットアップが続く場合はその設定も終了し、インストーラーの完了を待ちます。Hermes の導入後に hermes desktop を実行し、Desktop の接続先選択画面で「I'll choose a provider later」を選んでください。
解決の確認
Desktop のメイン画面が開けば完了です。チャットを利用する際には、後からモデル提供元の設定が必要です。
Telegram で「Enter the phone number in international format」と表示される
Telegram には国番号を含む電話番号を入力します。国内向けの表記とは異なります。この対処は Linux 以外にも共通です。
Telegram の API 設定にある api_id・api_hash と、電話番号を入力します。たとえば日本の 090-1234-5678 は +819012345678 と入力します。「Send login code」を押した後は、Telegram アプリに届いたコードを入力してください。コード欄に電話番号は入力しません。
解決の確認
ログインコードの入力画面に進めば、電話番号の入力段階は通過しています。まだログイン完了ではないため、Telegram の認証手順を最後まで進めてください。
Hermes に AI を設定
Veniceの代わりにローカルLLMを使う場合
このMacのOllamaで、ツール呼び出しに対応したダウンロード済みモデルを起動します。クラウドモデルは選ばず、利用中はサーバーを起動したままにします。
Settings → Providers → Custom Endpointsで、Name:Local LLM、Provider ID:local-llm、Endpoint URL:http://127.0.0.1:11434/v1、API Mode:Auto-detect、API Key:ollama(仮の値)、Default Model:ダウンロードしたモデルの正確な名前を入力します。
Test → Saveの順に押します。Settings → Model → Main modelで登録した接続先とモデルを選び、Applyを押して新しいチャットを開きます。下のVeniceの入力例は飛ばして手順4へ進んでください。
Ollamaのローカルサーバー設定右上の設定ボタンを開く
画像を拡大- 右上の赤枠で囲まれた歯車ボタンを押して、Settingsを開きます。
Settings Providers Custom EndpointsSettings → Providers → Custom Endpointsを開く
画像を拡大- Settingsの左メニューで「Providers」を開き、「Custom Endpoints」を選びます。
- 画像は未入力の「Add Endpoint」フォームです。下にあるVeniceのEndpoint URLと、自分のAPIキーを入力します。「Test」で接続を確認し、成功したら「Save」で保存します。

- Name
- 例:Mordred Demo(自分が分かりやすい名前で構いません)
- Provider ID
- 例:mordred-demo(この接続を識別するIDを付けます)
- Endpoint URL
- https://api.venice.ai/api/v1
- API Mode
- Auto-detect
- API Key
- 手順1でVeniceで作成したAPIキーを入力します。
- Default Model
- 任意です。ここは空欄でも構いません。後でSettings → Model → Main modelから「e2ee-」で始まるモデルを選べます。
Veniceの接続情報を入力する
画像を拡大- Nameの「Mordred Demo」とProvider IDの「mordred-demo」は参考例です。別の名前・IDを付けても構いません。
- API Modeは「Auto-detect」にします。Default Modelは任意です。画像ではモデルが入っていますが、空欄でも構いません。
- API Keyには、手順1でVeniceで作成したAPIキーを入力します。画像ではキーが伏せ字になっています。
- 「Test」ボタンを押して接続が正常に動作することを確認します。テストが成功したら、「Save」ボタンを押して保存します。

チャット用モデルを選ぶ
画像を拡大- Settings → Model → Main modelを開き、登録したカスタムプロバイダーと「e2ee-」で始まる利用可能なモデルを選んで「Apply」を押します。
- 画像のモデル名は一例です。設定後は新しいチャットを開くと、選んだモデルが使われます。

Hermes のチャットで Mordred を入れる
何がインストールされる?なぜ許可が必要?
Mordredは、Hermesにプライバシー保護機能を追加するソフトウェアです。下の指示文を送ると、HermesがMordred本体と動作に必要なソフトウェアをMacにダウンロードしてインストールします。Telegramの会話を取り込むための機能も含まれます。
Macにソフトウェアをインストールするため、Hermesから許可を求められる場合があります。許可を求める画面が出たら、今送ったMordredのインストールコマンドに対する確認であることを確かめてから、許可して進めてください。
インストールしただけでは、暗号化やTelegramの会話の取り込みは始まりません。手順5で暗号化を設定し、手順6でTelegramに接続して取り込む範囲を選びます。
次のコマンドを実行して、Telegram 対応の hermes-mordred をインストールして: curl -fsSL https://raw.githubusercontent.com/mordredagent/hermes-mordred/main/scripts/install.sh | bash -s -- --with-telegramチャットが完了すると、左側に「Mordred」が表示されます その後、Hermes Desktopを終了して開き直す左側に「Mordred」が表示されたら再起動する
画像を拡大- 上の文章をHermesのチャットに貼り付け、インストールの案内に沿って進めます。
- 文章を貼り付けたセッションのチャットが完了するまで待ちます。完了すると、左のサイドバーに「Mordred」が表示されます。
- 「Mordred」が表示されたことを確認してから、Hermes Desktopを再起動します。ここでの「再起動」は、アプリを一度終了(⌘Q)し、開き直すことです。左上の赤い閉じるボタンを押すだけでは、アプリは終了しません。
- Hermes Desktopを開き直したら、左サイドバーの「Mordred」を押して次に進みます。
- Mordredをアンインストールするときは、同じ画面の「Uninstall Mordred…」を使います。

画面の案内どおりに暗号化
- Secure Enclave を準備
- メモリ暗号化をオン Touch ID
パスフレーズは一度しか表示されません
表示されたら、その場で必ず控えてください。
移行先の別のMacで、暗号化したHermesのメモリ(記憶)や、暗号化保管庫に保存したAPIキーなどを復元するには、このパスフレーズが必要です。パスフレーズがないと、バックアップがあっても移行先で復元できません。
復元には、暗号化保管庫とメモリファイルのバックアップも必要です。パスフレーズだけでは、失われたファイルは復元できません。
パスフレーズを控え、「I have written it down」にチェックして「Continue」を押します。続けて⌘QでHermesを終了し、開き直してから質問用モデルを設定してください。ウィンドウを閉じるだけでは不十分です。
- 質問用モデル Hermes の Venice キーを使う
ローカルLLMの場合は、Question modelに手順3と同じ接続先URLとモデル名を入力し、「Use local model」を押します。
バックアップ・別のMacへの移行
Hermesを終了し、~/.hermes/mordred/vault と ~/.hermes/memories をフォルダごとバックアップ先へコピーします。取り込んだ会話も残す場合は ~/.hermes/mordred/telegram もコピーし、パスフレーズは別に保管してください。
別のMacで保管庫を復元する手順暗号化の設定が完了したことを確認
画像を拡大- Secure Enclave、メモリ暗号化、質問用モデルの順に、画面の案内に沿って設定します。
- 画像は設定完了後の例です。完了した項目にはチェックが付きます。初回は各項目に設定用の操作が表示されます。

Mordredの画面では、この下にTelegramの設定が表示されます。ここではまだ入力せず、上の暗号化設定を終えてから、次の手順6に沿って設定してください。
手順6:Telegramの設定へ進むTelegram を取り込む
Telegramのログインコードやパスワードは「Mordred → Connect Telegram」の入力欄にだけ入力し、Hermesのチャットには貼り付けないでください。
Telegramの認証情報と会話はどう保護される?
別の端末でログインするときと同じように、Mordredを自分のTelegramアカウントに接続します。その本人確認のためにログインコードが必要です。2段階認証を有効にしている場合は、Telegramのパスワードも必要です。
- Connect Telegramのフォームは、コードやパスワードをTelegramへのログイン処理に使います。入力内容がAIモデルに送られたり、チャット履歴に追加されたりすることはありません。
- Mordredはログインコードやパスワードを保存せず、ログにも記録しません。接続を維持するための情報(セッション)は、MacのSecure Enclaveで保護し、Mac上に暗号化して保存します。
- Mordredの取り込み機能はメッセージの読み取りに限定され、送信・編集・削除をブロックします。この制限はMordred側が行います。Telegram自体が発行するのは、読み取り専用ではなくアカウントへのログイン情報です。
- 取り込んだメッセージはMac上に暗号化して保存します。会話について質問すると、関連するメッセージ本文が、選択したVeniceモデルまたはローカルモデルで処理されます。
接続はTelegramアプリの「設定 → デバイス」(または「プライバシーとセキュリティ → アクティブなセッション」)から解除できます。Mordredへの接続時に作成されたセッションを選んで終了してください。
Telegram公式のセッション管理の案内- my.telegram.org/apps の「API development tools」でアプリを作る
Telegramのアプリ管理ページにログイン
画像を拡大- 国番号付きの電話番号を入力して「Next」を押します。確認コードはSMSではなくTelegramに届きます。
- ログイン後、「API development tools」でアプリを作ります。次の手順で使うapi_idとapi_hashをコピーしてください。

入力例の図(実際のスクリーンショットではありません) Telegramアプリ作成の入力例 - App title
- Mordred Demo
- Short name
- mordreddemo
- Platform
- Desktop
- Description
- Personal Telegram import with Mordred
API development toolsでアプリ名と未使用のShort nameを入力し、PlatformはDesktopを選び、フォームを埋めて「Create application」を押します。作成済みなら既存のapi_id・api_hashを使えます。
- Hermesの画面に戻って
api_idapi_hashを貼るHermesの画面に戻ってTelegramアプリの情報を貼り付ける
画像を拡大- HermesのMordredページに戻り、「Connect Telegram」を開きます。
- 作成したアプリのapi_idとapi_hashを、それぞれ同じ名前の欄に貼り付けます。

- 電話番号 ログインコード パスワード (2段階認証を設定している方のみ)
入力例の図(実際のスクリーンショットではありません) Hermesでログインコードを入力 上のフォームに国番号付きの電話番号を入力し、「Send login code」を押します。新しく届いたコードを「Telegram login code」に入力し、「Continue」を押します。my.telegram.orgへのログインに使ったコードとは別です。
Telegram login code
Telegramに届いたコードContinueHermesの画面でTelegramにログインする
画像を拡大- 2段階認証を設定している方のみ、そのパスワードを入力して「Continue」を押します。MacのパスワードやMordredのパスフレーズではなく、Telegramで設定したパスワードです。
- 画像はパスワード入力の段階です。2段階認証を設定していない場合、パスワードの入力は不要です。

- 取り込み を押す
取り込む日数を指定して「Import」を押す
画像を拡大- 「Connect Telegram」にチェックが付いたら、その下の「Import messages」へ進みます。
- このガイドでは「Last」を3日間のままにして「Import」を押します。取り込みが終わってからチャットで質問します。

取り込むもの
- 直近3日分(日数は変更可)
- ピン留めしたチャットを優先
この設定では取り込めないもの
- アーカイブ済みのチャット
- 100人を超えるグループ(初期設定)
アーカイブ済みチャット・大人数グループはCLIで取り込み対象にできます。シークレットチャットは取り込めず、画像・動画などのファイルはダウンロードされません。 取り込みオプション
あとは、なんでも聞くだけ。
Hermesで新しいチャットを開き、取り込んだ会話について質問します。Touch IDが表示されたら承認してください。
Telegramの直近3日間の会話から、私の未対応事項をまとめて。
新しい会話を追加するには、Mordred → Import messagesで再びImportを押します。Lastで日数を変更でき、取り込み済みのメッセージは重複しません。
すべて private のまま