C
ChaoBro

Hermes Agent の記憶システムを深度解体:OpenClaw の記憶ミスを修正し、真の永続化自律を実現する方法

Hermes Agent の記憶システムを深度解体:OpenClaw の記憶ミスを修正し、真の永続化自律を実現する方法

核心的な発見

Hermes Agent の記憶システムは最近 X/Twitter で熱い議論を巻き起こしている(1180+ いいね、271+ リツイート、1509 ブックマーク)。その核心的な革新は、OpenClaw などの初期エージェントフレームワークが抱える記憶処理の体系的な欠陥を修正した点にある。

ChatGPT、Claude、または OpenClaw の記憶システムを追ってきた人なら、これらのエージェントに共通する問題を知っているだろう:記憶圧縮時の情報消失が深刻だという問題だ。Hermes Agent は記憶アーキテクチャを再設計することで、この問題を根本的に解決した。

3層記憶アーキテクチャ

Hermes Agent は3層の記憶アーキテクチャを採用しており、各層が異なる時間跨度と抽象度の情報を担当している:

1. 作業記憶(ワーキングメモリ)

  • 現在の会話ウィンドウの短期コンテキスト
  • 容量は限られるが、検索速度は最速
  • 即時のタスク切り替えと短期目標の維持を担当
  • 重要な設計:OpenClaw のような単純な切り捨てではなく、タスク重要度スコアリングに基づく動的保持を行う

2. 意味記憶(セマンティックメモリ)

  • 長期的に蓄積されたナレッジグラフ:ユーザーの好み、プロジェクト構造、よく使うツール
  • 構造化フォーマットで保存され、セマンティック検索をサポート
  • 重要な設計:Hermes は漸進的洗練メカニズムを導入——各会話終了後、自動的に新しい意味知識を抽出し、単純に追加するだけではない
  • これこそが OpenClaw に欠けていたものだ:OpenClaw の記憶は「書き込み専用」であり、保存された情報はほとんど積極的に振り返り・統合されない

3. エピソード記憶(エピソードメモリ)

  • 具体的な歴史的インタラクションイベントを記録:「前回ユーザーが X ファイルの Y 関数の修正を依頼した」
  • タイムライン検索とパターン認識をサポート
  • 重要な設計:Hermes はイベントタグ付け+時間減衰の組み合わせにより、重要な歴史的イベントが忘れられないようにしつつ、古い情報の重みを低下させる

OpenClaw の3つの誤りを修正

誤りその1:記憶 = コンテキストの連結

OpenClaw の記憶処理は本質的に、過去の会話断片を現在のコンテキストに直接連結するというもの。このアプローチには2つの致命的な問題がある:

  • トークン消費が会話の長さに比例して線形に増加する
  • 重要な情報がノイズに薄められる

Hermes の解決策:3層アーキテクチャを通じて、最も関連性の高い記憶のみを現在のコンテキストに注入し、トークン消費を約60%削減。

誤りその2:忘却 = 削除

OpenClaw の記憶管理は単純な FIFO(先入れ先出し)戦略を採用——古い会話は直接破棄される。

Hermes の解決策:忘却 = 格下げ。重要な情報は作業記憶から意味記憶へ、さらにエピソード記憶へと格下げされる——直接削除されるわけではない。情報の「温度」は徐々に下がるが、完全に消えることはない。

誤りその3:記憶更新 = 追記書き込み

OpenClaw の記憶更新は一方通行の追記——新しい記憶が古いものの後に追加され、統合は行われない。

Hermes の解決策:記憶統合サイクル。各会話終了後、Hermes は記憶整理プロセスをトリガーする:重複エントリのマージ、古い情報の更新、新しい関連性の確立。これは人間の「睡眠中の記憶固定」プロセスに類似している。

ローカル実行の意義

Ollama 0.21 が Hermes Agent を正式にサポートしたことで、この記憶システムが Mac や Linux で直接ローカル実行可能になった。これにより2つの直接的なメリットが生まれる:

  1. 試行錯誤のコストがゼロに:ローカル実行 means 開発者は API 費用を負担することなく、異なる記憶構成を自由にテストできる
  2. データプライバシーの保障:記憶データは完全にローカルに保存され、サードパーティのサーバーを経由しない

エージェント開発者への示唆

Hermes Agent の記憶設計は重要なシグナルを送っている:エージェントの競争焦点は「モデル能力」から「システムエンジニアリング」へ移行しつつある。同じ基盤モデルでも、異なる記憶アーキテクチャと組み合わせることで、完全に異なる使用体験を生み出すことができる。

エージェントアプリケーションを構築している開発者にとって、考えるべき問題はもはや「どのモデルを使うか」ではなく、「モデルに覚えておくべきことをどう覚えさせるか」である。