# Hermes

セッションチェックポイント、自動キャプチャ、永続的なプロジェクトメモリを備えた PyPI のネイティブメモリプラグインを通じて Hermes Agent を接続します。

- Canonical: https://docs.xmemo.dev/ja/docs/connect/hermes
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: bc9df4e1a62a317f42328c5fb35b354a1666ef85ea9f18ff6c96dbf5dccbdd9f
- Edition-Digest: 3c969618116230a79ac80e778022b5948e7b0d1edadabb27ed1b6ee6b89802da
- Source-Revision: sha256:c1c2001f12dcea28dab430debe91620cc57ef3d7fced5162a27e2afa3fe87072

## 対象読者と具体的なインターフェース

このガイドでは、Hermes Agent を XMemo 永続メモリに接続します。Hermes は PyPI 上のメンテナンスされているネイティブメモリプラグインパッケージ hermes-xmemo（バージョン 1.1.3）を通じて統合され、アクティブなリポジトリ yonro/hermes-xmemo-plugin @ 30fe1bc20a (https://github.com/yonro/hermes-xmemo-plugin/blob/30fe1bc20a/README.md) に固定されています。アーカイブされたリポジトリ yonro/xmemo-hermes-plugin @ eb47797a08 はレガシー移行のリファレンスにすぎない点に注意してください。すべての新規インストールには hermes-xmemo を使用します。

## 前提条件

接続する前に、以下のランタイム依存関係とツールが存在することを確認してください：

- Hermes Agent CLI およびランタイムがインストールされていること (Python 3.10+)。
- Python パッケージインストーラー (pip)。
- https://xmemo.dev の有効な XMemo アカウント。
- HTTPS 経由での https://xmemo.dev/mcp へのネットワークアクセス。

## インストール

公式の Hermes プラグインマーケットから Hermes XMemo プロバイダーをインストールします。お使いの Hermes バージョンでプラグインマーケットコマンドが公開されていない場合は、固定された PyPI フォールバックを使用してください。

```bash
hermes plugins install xmemo

# Fallback for older Hermes versions
pip install hermes-xmemo
hermes memory setup xmemo
```

## 認証と認証情報の構成

環境変数または Hermes 構成を使用して認証を設定します。生のベアラートークンをバージョン管理にチェックインしないでください：

- 環境変数（推奨）：Hermes を起動するシェルまたは環境で XMEMO_KEY を設定します (export XMEMO_KEY='<your-xmemo-token>')。
- Hermes セットアップウィザード：hermes memory setup xmemo を実行すると認証情報が求められ、~/.hermes/config.yaml が構成されます。
- 構成チェック：~/.hermes/config.yaml に memory.provider が xmemo に設定されていることを確認します。

## 読み込みと再起動の動作

デーモンの再起動またはセッションの再読み込み手順は、hermes-xmemo プラグインの README (https://github.com/yonro/hermes-xmemo-plugin/blob/30fe1bc20a/README.md) に明示的には記載されていません。Hermes Agent ホストのドキュメントを参照するか、アクティブな Hermes ターミナルセッションを再起動してください。

## 接続確認（読み取り専用）

永続データを書き込む前に、読み取り専用のリコールリクエストで接続を確認します。このチェックはメモリ状態を変更しません：

- 確認：テスト用 Hermes セッションを開始し、既存のプロジェクトコンテキストに対して読み取り専用のアクティブリコールクエリを発行します。
- 成功の合図：Hermes が、承認されたワークスペースからの有効な Reference および Location フィールドを含む構造化されたメモリ結果を返します。

## 最初の有用なタスク：合成メモリライフサイクル

メモリの永続化、ステートレスなセッション移行、出所が帰属されたリコール、および修正を確認します：

- 1. 合成事実の保存：プロジェクト規則 ("Hermes demo conventions: UTC logging with ISO 8601 timestamps.") を "projects/demo-hermes/conventions" に保存します。
- 2. ステートレス移行：現在の Hermes 会話を終了し、新しいセッションを開始します。
- 3. 出所帰属付きリコール："demo conventions timestamp format" をクエリします。返された Reference と Location を確認します。
- 4. メモリの修正：更新された書式設定ルールを指定して、update_memory を使用して記憶された規則を更新します。
- 5. オプションのクリーンアップ：オンボーディング検証が完了したら、デモ規則を論理削除 (forget) します。

## 自動キャプチャと重複防止

Hermes Agent は、実行境界を越えて自動的なコンテキストキャプチャを提供します：

- セッションチェックポイント：~/.hermes/config.yaml で有効になっている場合、Hermes はセッション境界のマイルストーンでセッションの概要と主要な決定事項をキャプチャします。
- 重複防止：組み込みのコンテンツハッシュ重複排除により、反復的な実行ループ中に同一の事実や決定事項が繰り返し書き込まれないようにします。
- スコープ境界：キャプチャされたすべてのメモリは、認証されたユーザーのワークスペースとアクティブなプロジェクトスコープに厳格に分離されます。

## プロバイダーの競合とストレージの境界

ランタイムの分離とストレージの所有権を理解します：

- プロバイダーの競合：~/.hermes/config.yaml で複数のメモリプロバイダーを同時に有効にしないでください。重複するプロバイダーを実行すると、スプリットブレインリコールが発生します。
- ストレージの所有権：すべての耐久性のあるメモリは、ユーザーが所有する XMemo クラウドバックエンドに存在します。Hermes はセッションの応答性のために短命なローカルキャッシュのみを維持します。
- オフラインと再生の制限：一時的なネットワークの中断は制限付きのローカル書き込みバッファによって処理されます。バッファ制限またはトークンの期限切れに達するとオフライン書き込みは失敗し、コミットされていないアクションは再接続されるまで他のエージェントに複製されません。

## 復旧、更新、および削除

Hermes のトラブルシューティング、更新、および削除手順：

- 復旧 (401 invalid_token)：現在のシェル環境または Hermes 構成で XMEMO_KEY が設定されていることを確認します。
- 更新：プラグインの更新コマンドは hermes-xmemo プラグインの README (https://github.com/yonro/hermes-xmemo-plugin/blob/30fe1bc20a/README.md) に記載されていません。pip install --upgrade hermes-xmemo を実行するか、Hermes ホストのドキュメントを参照してください。
- 削除（README 292 行目）：Hermes でメモリプロバイダーを無効にするには、記載されている削除コマンドを実行します：hermes config set memory.provider ""。
- 削除とリモート削除の比較：ローカルプロバイダーを無効にしても、保存されたリモートメモリは削除されず、API 認証情報も取り消されません。メモリの削除やキーの取り消しは https://xmemo.dev/me で行ってください。

```bash
hermes config set memory.provider ""
```

