本文へ移動

AIセットアップ

7ステップで、自分だけの private AI。

Hermes Desktop と Venice を使い、Telegram の会話を安全に取り込みます。

画面を見ながら、自分だけのプライベートAIを設定しましょう。画像を押すと拡大できます。

  1. Venice で API キーを作る

    Veniceのprivateモデル、または自分のMacで動かすローカルLLMを使えます。ローカルLLMを使う場合、VeniceのAPIキーは不要です。

    ローカルLLMを使う場合はVeniceのキー作成を飛ばして手順2へ進み、手順3・5のローカル向け案内に従ってください。

    Veniceの利用にはAPI残高が必要です。クレジットを購入する場合は、HermesではなくVeniceで購入してください。Testに失敗した場合は、VeniceのAPI残高・キーの有効期限・利用上限を確認してください。 Venice APIの案内

    privateモデル専用のキーを作る

    画像を拡大
    1. VeniceにログインしてAPI設定を開き、「New API Key」を押します。
    2. 名前を入力し、権限は「Inference」のまま、「Model privacy」を「Private models only」にします。
    3. このデモでは名前を「Mordred Demo」、「Expiration」を「30 days」にしています。有効期限は用途に合わせて選んでください。
    4. 下にある有効期限・利用上限を確認して「Generate key」を押します。表示されたキーをコピーし、手順3でHermesにVeniceを設定するときに使えるよう控えます。
    VeniceのAPIキー作成画面。名前は「Mordred Demo」、権限は「Inference」、モデルは「Private models only」、有効期限は「30 days」。キー自体は表示していない。
  2. Hermes Desktop をインストール

    Mac用のアプリをダウンロード

    画像を拡大
    1. 公式サイトで「Download for macOS」を押し、ダウンロードしたインストーラーを開きます。
    2. インストーラーの案内に沿って進め、Hermes Desktopを起動します。
    Hermes Desktop公式サイトの「Download for macOS」ボタン。

    「I'll choose a provider later」を選ぶ

    画像を拡大
    1. Hermesの初回起動時にAIの接続先を選ぶ画面が出たら、左下の「I'll choose a provider later」を押します。
    2. Veniceへの接続は、次の手順3で設定します。
    Hermesの初回起動画面。左下に「I'll choose a provider later」が表示されている。
    Linux / Ubuntu のトラブルシューティング

    新規インストールした Ubuntu 24.04 で確認した対処法です。画面に出ているエラーを開いてください。他の Linux ディストリビューションではパッケージ名が異なる場合があります。

    「Building or probing the TPM helper failed」と表示される

    Rust や TPM の開発ライブラリが不足しているか、現在のデスクトップセッションに TPM へのアクセス権がない可能性があります。Linux の KeyVault には動作する TPM 2.0 が必要です。ソフトウェアの鍵への代替はありません。

    1. ビルドに必要なパッケージをインストールします。

      sudo apt-get update
      sudo apt-get install -y build-essential pkg-config libtss2-dev clang libclang-dev
    2. 公式の rustup インストーラーで Rust を導入します。ヘルパーには Rust 1.85 以上が必要です。Ubuntu 24.04 の標準パッケージでは古い場合があります。対応する Rust が導入済みなら、環境の読み込みとバージョン確認だけ行ってください。

      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/mordred-rustup-init.sh
      sh /tmp/mordred-rustup-init.sh -y --profile minimal
      . "$HOME/.cargo/env"
      rustc --version
      cargo --version
    3. TPM デバイスと自分の所属グループを確認します。/dev/tpmrm0 がない場合は、先にマシンや VM の TPM 対応・設定を確認してください。ライブラリの導入だけでは TPM は作られません。

      ls -l /dev/tpmrm0
      id
    4. デバイスのグループが tss で、自分がそのグループに入っていない場合だけ、次を実行します。誰でもデバイスに書き込める権限には変更しないでください。

      sudo usermod -aG tss "$(id -un)"
    5. Linux のデスクトップからサインアウトし、再ログインします。VNC ビューアーの再接続だけでは、起動済みプロセスのグループは更新されません。新しいターミナルでアクセス権を確認し、ヘルパーをビルドします。

      . "$HOME/.cargo/env"
      test -r /dev/tpmrm0 && test -w /dev/tpmrm0 && echo 'TPM device access OK'
      hermes-mordred keyvault enable-tpm
    6. TPM の接続確認に成功したら、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 のビルドに必要な開発ツールが入っていない場合があります。

    1. 必要なツールを導入してビルドを再実行します。初回は数分かかることがあるため、ターミナルを閉じずに待ってください。

      sudo apt-get install -y build-essential pkg-config
      hermes desktop --build-only
    2. パッケージの作成が終わったら Desktop を起動します。

      hermes desktop --skip-build

    解決の確認

    ビルドが完了し、Hermes Desktop の画面が開くことを確認します。処理が強制終了したり極端に遅くなる場合は、空きメモリと VM の CPU リソースを確認してから再実行してください。

    Desktop が起動しない:libasound.so.2 がない

    スピーカーがないマシンでも、Desktop の実行には ALSA のライブラリが必要です。

    1. Ubuntu 24.04 では libasound2t64 を導入し、ビルド済みのアプリを起動します。

      sudo apt-get install -y libasound2t64
      hermes desktop --skip-build

    解決の確認

    ライブラリ不足のエラーが消え、Desktop のメイン画面が開くことを確認します。

    libatomic.so.1 の確認中に sudo のパスワードを求められる

    Hermes のインストーラーが libatomic1 を必要としています。EC2 の Ubuntu では SSH 鍵でログインするため、sudo をパスワードなしで実行できても、ログイン用パスワード自体がない場合があります。

    1. ターミナルで不足ライブラリを導入してから、Hermes のインストーラーを再実行します。sudo に認証が必要な環境では、Linux アカウントのパスワードを使用するか管理者に相談してください。API キーや VNC のパスワードは入力しません。

      sudo apt-get install -y libatomic1

    解決の確認

    Node.js のライブラリ確認を通過し、インストールが先へ進むことを確認します。

    Desktop を開きたいだけなのに Nous Portal の承認待ちになる

    インストールの失敗ではなく、モデル提供元の設定画面です。モデルの接続前でも Desktop は開けます。

    1. Ctrl+C でログイン待ちを終了します。対話式セットアップが続く場合はその設定も終了し、インストーラーの完了を待ちます。Hermes の導入後に hermes desktop を実行し、Desktop の接続先選択画面で「I'll choose a provider later」を選んでください。

    解決の確認

    Desktop のメイン画面が開けば完了です。チャットを利用する際には、後からモデル提供元の設定が必要です。

    Telegram で「Enter the phone number in international format」と表示される

    Telegram には国番号を含む電話番号を入力します。国内向けの表記とは異なります。この対処は Linux 以外にも共通です。

    1. Telegram の API 設定にある api_id・api_hash と、電話番号を入力します。たとえば日本の 090-1234-5678 は +819012345678 と入力します。「Send login code」を押した後は、Telegram アプリに届いたコードを入力してください。コード欄に電話番号は入力しません。

    解決の確認

    ログインコードの入力画面に進めば、電話番号の入力段階は通過しています。まだログイン完了ではないため、Telegram の認証手順を最後まで進めてください。

  3. 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のローカルサーバー設定

    右上の設定ボタンを開く

    画像を拡大
    1. 右上の赤枠で囲まれた歯車ボタンを押して、Settingsを開きます。
    Hermesのホーム画面。右上の歯車型の設定ボタンが赤枠で囲まれている。
    Settings Providers Custom Endpoints

    Settings → Providers → Custom Endpointsを開く

    画像を拡大
    1. Settingsの左メニューで「Providers」を開き、「Custom Endpoints」を選びます。
    2. 画像は未入力の「Add Endpoint」フォームです。下にあるVeniceのEndpoint URLと、自分のAPIキーを入力します。「Test」で接続を確認し、成功したら「Save」で保存します。
    HermesのSettings画面。左側のProvidersが展開され、Custom Endpointsが選択されている。Add Endpointは未入力で、入力例が表示されている。
    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の接続情報を入力する

    画像を拡大
    1. Nameの「Mordred Demo」とProvider IDの「mordred-demo」は参考例です。別の名前・IDを付けても構いません。
    2. API Modeは「Auto-detect」にします。Default Modelは任意です。画像ではモデルが入っていますが、空欄でも構いません。
    3. API Keyには、手順1でVeniceで作成したAPIキーを入力します。画像ではキーが伏せ字になっています。
    4. 「Test」ボタンを押して接続が正常に動作することを確認します。テストが成功したら、「Save」ボタンを押して保存します。
    Edit Endpointの入力例。NameはMordred Demo、Provider IDはmordred-demo、Endpoint URLはVenice、API ModeはAuto-detect。Default Modelは任意の入力例で、APIキーは伏せ字になっている。

    チャット用モデルを選ぶ

    画像を拡大
    1. Settings → Model → Main modelを開き、登録したカスタムプロバイダーと「e2ee-」で始まる利用可能なモデルを選んで「Apply」を押します。
    2. 画像のモデル名は一例です。設定後は新しいチャットを開くと、選んだモデルが使われます。
    HermesのSettings → Model → Main model画面。「Custom」と「e2ee-deepseek-v4-flash」、その下に「Apply」ボタンが表示されている。
  4. 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」が表示されたら再起動する

    画像を拡大
    1. 上の文章をHermesのチャットに貼り付け、インストールの案内に沿って進めます。
    2. 文章を貼り付けたセッションのチャットが完了するまで待ちます。完了すると、左のサイドバーに「Mordred」が表示されます。
    3. 「Mordred」が表示されたことを確認してから、Hermes Desktopを再起動します。ここでの「再起動」は、アプリを一度終了(⌘Q)し、開き直すことです。左上の赤い閉じるボタンを押すだけでは、アプリは終了しません。
    4. Hermes Desktopを開き直したら、左サイドバーの「Mordred」を押して次に進みます。
    5. Mordredをアンインストールするときは、同じ画面の「Uninstall Mordred…」を使います。
    Hermesの左サイドバー。「Scheduled jobs」の下に「Mordred」が表示されている。
  5. 画面の案内どおりに暗号化

    1. Secure Enclave を準備
    2. メモリ暗号化をオン Touch ID

      パスフレーズは一度しか表示されません

      表示されたら、その場で必ず控えてください。

      移行先の別のMacで、暗号化したHermesのメモリ(記憶)や、暗号化保管庫に保存したAPIキーなどを復元するには、このパスフレーズが必要です。パスフレーズがないと、バックアップがあっても移行先で復元できません。

      復元には、暗号化保管庫とメモリファイルのバックアップも必要です。パスフレーズだけでは、失われたファイルは復元できません。

      パスフレーズを控え、「I have written it down」にチェックして「Continue」を押します。続けて⌘QでHermesを終了し、開き直してから質問用モデルを設定してください。ウィンドウを閉じるだけでは不十分です。

    3. 質問用モデル Hermes の Venice キーを使う

      ローカルLLMの場合は、Question modelに手順3と同じ接続先URLとモデル名を入力し、「Use local model」を押します。

    バックアップ・別のMacへの移行

    Hermesを終了し、~/.hermes/mordred/vault と ~/.hermes/memories をフォルダごとバックアップ先へコピーします。取り込んだ会話も残す場合は ~/.hermes/mordred/telegram もコピーし、パスフレーズは別に保管してください。

    別のMacで保管庫を復元する手順

    暗号化の設定が完了したことを確認

    画像を拡大
    1. Secure Enclave、メモリ暗号化、質問用モデルの順に、画面の案内に沿って設定します。
    2. 画像は設定完了後の例です。完了した項目にはチェックが付きます。初回は各項目に設定用の操作が表示されます。
    設定済みのMordred画面。Secure Enclave、Encrypt Hermes memory、Question modelにチェックが付いている。

    Mordredの画面では、この下にTelegramの設定が表示されます。ここではまだ入力せず、上の暗号化設定を終えてから、次の手順6に沿って設定してください。

    手順6:Telegramの設定へ進む
  6. 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公式のセッション管理の案内
    1. my.telegram.org/apps の「API development tools」でアプリを作る

      Telegramのアプリ管理ページにログイン

      画像を拡大
      1. 国番号付きの電話番号を入力して「Next」を押します。確認コードはSMSではなくTelegramに届きます。
      2. ログイン後、「API development tools」でアプリを作ります。次の手順で使うapi_idとapi_hashをコピーしてください。
      my.telegram.orgのログイン画面。「Your Phone Number」欄と「Next」ボタン。表示されている番号は入力例。
      入力例の図(実際のスクリーンショットではありません) 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を使えます。

    2. Hermesの画面に戻って api_id api_hash を貼る

      Hermesの画面に戻ってTelegramアプリの情報を貼り付ける

      画像を拡大
      1. HermesのMordredページに戻り、「Connect Telegram」を開きます。
      2. 作成したアプリのapi_idとapi_hashを、それぞれ同じ名前の欄に貼り付けます。
      MordredのConnect Telegram。空のapi_id・api_hash・電話番号の入力欄とSend login codeボタン。
    3. 電話番号 ログインコード パスワード (2段階認証を設定している方のみ)
      入力例の図(実際のスクリーンショットではありません) Hermesでログインコードを入力

      上のフォームに国番号付きの電話番号を入力し、「Send login code」を押します。新しく届いたコードを「Telegram login code」に入力し、「Continue」を押します。my.telegram.orgへのログインに使ったコードとは別です。

      Telegram login code

      Telegramに届いたコード
      Continue

      Hermesの画面でTelegramにログインする

      画像を拡大
      1. 2段階認証を設定している方のみ、そのパスワードを入力して「Continue」を押します。MacのパスワードやMordredのパスフレーズではなく、Telegramで設定したパスワードです。
      2. 画像はパスワード入力の段階です。2段階認証を設定していない場合、パスワードの入力は不要です。
      MordredでTelegramの2段階認証パスワードを入力する画面。空のパスワード欄とContinueボタン。
    4. 取り込み を押す

      取り込む日数を指定して「Import」を押す

      画像を拡大
      1. 「Connect Telegram」にチェックが付いたら、その下の「Import messages」へ進みます。
      2. このガイドでは「Last」を3日間のままにして「Import」を押します。取り込みが終わってからチャットで質問します。
      MordredのConnect Telegramにチェックが付き、Import messagesに「Last 3 days」と「Import」ボタンが表示されている。

      取り込むもの

      • 直近3日分(日数は変更可)
      • ピン留めしたチャットを優先

      この設定では取り込めないもの

      • アーカイブ済みのチャット
      • 100人を超えるグループ(初期設定)

      アーカイブ済みチャット・大人数グループはCLIで取り込み対象にできます。シークレットチャットは取り込めず、画像・動画などのファイルはダウンロードされません。 取り込みオプション

  7. あとは、なんでも聞くだけ。

    Hermesで新しいチャットを開き、取り込んだ会話について質問します。Touch IDが表示されたら承認してください。

    Telegramの直近3日間の会話から、私の未対応事項をまとめて。

    新しい会話を追加するには、Mordred → Import messagesで再びImportを押します。Lastで日数を変更でき、取り込み済みのメッセージは重複しません。

    すべて private のまま