Hermes Agent
TL;DR
| Engram | Hermes Agent | |
|---|---|---|
| 哲学 | 人間所有、ファイル優先プロトコル(自動化はオプション) | 自律的で常にアクティブなメモリ |
| ストレージ | .agents/.engram/ 内の型指定された Markdown ファイル | MEMORY.md + USER.md(厳格な文字数制限) |
| 書き込みモデル | デフォルトで人間が承認(A/B/C ゲート、ルールによる自動化が可能) | エージェントが自律的に書き込む |
| 想起 | オンデマンド:engram load "<task>" が関連ファイルを注入 | 常にオン:セッションごとにコアファイルが system prompt に固定される |
| ベクトル検索 | オプションのローカル sqlite-vec(決定論的、埋め込みサポートなし) | 外部プロバイダー経由(例:agentmemory — BM25 + ベクトル) |
| クロスエージェント | ファイルを読み取れるエージェントなら誰でも Engram メモリを使用可能 | Hermes コアは単一エージェント。agentmemory プラグイン経由でクロスエージェントに対応 |
| 移植性 | Git ネイティブ、オフラインファースト、プレーン Markdown | ローカルファイル。外部プロバイダーはクラウドロックインをもたらす可能性あり |
| オーバーヘッド | デーモンなし、保存の規律が必要(自動化されていない場合) | サーバープロセス + ビューア UI、REST API、MCP サーバー |
ストレージ形式
Engram は、各メモリを YAML frontmatter、ハッシュ整合性チェック、およびオプションの依存関係グラフ(depends_on)を持つ型指定された Markdown ファイルとして保存します。JSON インデックス、グラフ、および sqlite-vec サイドカーは加速レイヤーとして機能し、Markdown が信頼できるソースです。
Hermes は、すべての永続メモリを制限された 2 つのファイルに圧縮します:
~/.hermes/memories/MEMORY.md— エージェントメモ、2,200 文字に制限~/.hermes/memories/USER.md— ユーザープロファイル、1,375 文字に制限
厳格な文字数制限により、エージェントは蓄積するのではなく整理することを強制されます。セッション履歴は SQLite FTS5 を介して検索可能です。
書き込みモデル
Engram — デフォルトで明示的な人間ゲートがあります。エージェントが候補を提案し、人間が承認しなければディスクに書き込まれません。秘密情報と prompt-injection のスキャンは保存時に行われます。ユーザーは、応答が完了したときに提案された新しいメモリ候補を自動的に保存するルールを保存することで、このプロセスを自動化できます。
Hermes — 自律的。エージェントは何をいつ書き込むかを決定し、文字数制限のみによって制御されます。コアループに人間の承認はありません。
想起モデル
Engram — オンデマンドルーティング。engram load "<task>" は、タグ、タイプ、新しさ、グラフ、およびオプションのベクトル信号によって候補を再ランク付けし、コンパクトなパック(デフォルト:8 ファイル)をコンテキストに注入します。
Hermes — 常にアクティブな注入。コアファイルはセッション開始時に system prompt に固定されます。オプションの外部プロバイダー(例:agentmemory)は、LLM の各ターンの前にプリフェッチを実行し、その後に同期します。
どちらをいつ使うか
監査可能で人間がレビューしたメモリ、Git によるチーム共有、プライバシーの保証、またはツール間でエージェントに依存しない移植性(カスタムルールを介して保存を自動化するオプション付き)が必要な場合は、Engram を使用してください。
保存の規律なしに自動的に蓄積されるメモリ、常にオンのコンテキスト注入、またはビューア、REST API、プラグ可能ベクトルバックエンドを備えたより豊富なランタイム環境が必要な場合は、Hermes を使用してください。