AIエージェントの外部記憶にObsidianを使う|会話ログを知識へ変える分担

会話を全部保存しても、エージェントは賢くなりません。必要な事実を毎回すぐ読める場所と、必要なときだけ探す場所を分ける必要があります。

私は Hermes Agent と Obsidian を同じ記憶装置として扱いません。Hermes には行動に直結する短い情報を置き、Obsidian には人が読み返す調査や判断を残します。

Hermesの内蔵記憶は小さい

Hermes Agent の内蔵記憶は、2 つのファイルに分かれています。

保存先用途上限
MEMORY.md環境、手順、学んだ注意点2,200文字
USER.md好み、文体、期待する行動1,375文字

合計は 3,575 文字です。長い議事録や調査資料を入れる容量ではありません。

この制限は欠点ではなく、毎回読む情報を絞る仕組みです。プロジェクトの場所、実行コマンド、文章の好みなど、次の行動を変える事実だけを残します。

内蔵記憶はセッション開始時に読み込まれます。途中で追加した内容はディスクへ保存されますが、同じセッションの冒頭文には差し込まれません。変更を確実に反映したいときは、新しいセッションを始めます。

過去の会話は検索に任せる

「先週、認証方式をどう決めたか」のような質問は、短い記憶へ詰め込む必要がありません。Hermes Agent は会話を SQLite へ保存し、FTS5 で検索します。

公式資料では、検索は約 20 ミリ秒、同じセッション内の移動は約 1 ミリ秒とされています。検索時に LLM を呼ばないため、過去の文章を勝手に要約した結果ではなく、実際のメッセージを確認できます。

内蔵記憶には結論を置きます。セッション履歴には経緯が残ります。この分担なら、短い記憶を圧迫せずに判断の根拠へ戻れます。

Obsidianへ残すもの

Obsidian は、会話より長く、コードより柔らかい情報に向いています。

  • プロジェクトの現在地
  • 調査結果と出典
  • 採用しなかった案
  • 設計判断と理由
  • 次の担当者への引き継ぎ
  • 日ごとの作業記録

私の環境では、ProjectsResearchDecisionsWorkLogsを分けています。作業が終わるたびに、完了内容を英語の WorkLog へ追記します。重要な判断だけを、後で専用ノートへ移します。

生の会話ログをそのまま貼る運用は避けています。量が増えるだけで、半年後に読むべき箇所が分からなくなるからです。

Skillsには再実行できる手順を置く

調査結果と手順も分けます。

たとえば、Search Console から検索需要を取得し、記事を下書きし、textlint と Astro のビルドを通す処理があります。これは知識というより、繰り返し実行する技です。Hermes Agent では Skill として保存します。

Skill は必要なときだけ読み込まれます。公式仕様では、一覧、本文、個別の参照ファイルという段階に分けて読むため、常に全手順を会話へ入れる必要がありません。

保存先を決める基準は単純です。

  • 毎回知っていてほしい事実は内蔵記憶
  • 過去の発言はセッション検索
  • 人が育てる資料は Obsidian
  • 再実行する手順は Skills
  • コードと公開物は Git

1件の作業をどう流すか

新しい調査を依頼した場合、私は次の順で整理します。

まず、エージェントが Web と一次資料を調べます。結果は出典付きで Obsidian のResearchへ保存します。

次に、採用した方針をDecisionsへ短く移します。繰り返し使える手順が見つかった場合だけ、Skill へします。プロジェクト固有の注意点は、必要なら内蔵記憶へ圧縮します。

最後に、実際の変更を Git へコミットします。WorkLog にはコミット ID と検証結果を残します。

この流れなら、会話が消えても成果は残ります。逆に、誤った調査結果を内蔵記憶へ急いで入れることもありません。

外部記憶は倉庫ではなく編集工程

保存量を増やすだけでは、検索結果に古い判断が混ざります。定期的に重複を統合し、不要な情報を消す作業が要ります。

Hermes Agent の内蔵記憶は 80%を超えたら整理します。Obsidian では未確認情報と検証済み情報を分けます。Skill は実行時に問題が見つかったら、その場で直します。

記憶、履歴、ノート、手順を分けると、エージェントは毎回ゼロから始めずに済みます。同時に、古い情報を永遠に信じ続ける危険も抑えられます。

参照資料

この記事をシェア