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 は、会話より長く、コードより柔らかい情報に向いています。
- プロジェクトの現在地
- 調査結果と出典
- 採用しなかった案
- 設計判断と理由
- 次の担当者への引き継ぎ
- 日ごとの作業記録
私の環境では、Projects、Research、Decisions、WorkLogsを分けています。作業が終わるたびに、完了内容を英語の 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 は実行時に問題が見つかったら、その場で直します。
記憶、履歴、ノート、手順を分けると、エージェントは毎回ゼロから始めずに済みます。同時に、古い情報を永遠に信じ続ける危険も抑えられます。