🎉

Hermes AgentとObsidianを組み合わせたら、メモ管理がめちゃくちゃ楽になった

に公開

はじめに

らーめんマンと申します。

この記事では、AIエージェントの記憶の置き場所をMarkdownファイル(Obsidian)にしてみたら、人間も読めるし編集もできて便利だった話をします。

参考までに、私の使用環境は以下の通りです。

役割 名前
AIエージェント Hermes Agent(DeepSeek V4 Flash @ OpenRouter)
環境 Raspberry Pi 5 + Ubuntu 24.04

AIエージェントと「覚えておいてほしい」問題

Hermes Agent には Memory という機能があり、会話の間の設定や好みを覚えておいてくれます。ただ、この Memory には容量制限(2,200文字)があります。

※「その方がより多く回数が出てきたトピックを覚えているから」という理由で、設計としては合理的ではあります。

でも、開発を進めていると「この設定、覚えておいてほしいな」「この手順、また後で使うからメモしておきたいな」と思う場面がよく出てきます。セッション検索で過去の会話を探すこともできますが、AIしか見られないので「自分でも読み返したい」というときに困ります。

最初は別のMCPツールを使って外部ストレージ的な使い方も試しましたが、永続化の設定がうまく噛み合わなかったり、セッションを跨ぐと記憶が消えたりと、管理の手間が重なって使わなくなりました。じゃあどうするか?
結果的に、人間も読めて、AIも書けるメモ置き場として、Obsidian に辿り着きました。

Obsidianって何?

Obsidian は Markdown でメモを取るためのツールです。

特徴をざっくり言うと、

  • ファイルはただの .md ファイル(特定のアプリにロックインされない)
  • ノート同士を [[リンク]] でつなげられる
  • タグで整理できる
  • PC間で同期したいなら Obsidian Sync(月額$5〜) やgit同期が使える

ただし、肝心のObsidianアプリは CLI(コマンドライン)から直接起動して操作するという作りにはなっていません。CUI環境で使うには、ただの .md ファイルの集まりとして扱うしかないわけです。

Hermes Agentとどうやってつなげるか

CUI環境の場合はとてもシンプルで、Hermes AgentにObsidian vaultのパスを環境変数で教えるだけです。
具体的には、~/.hermes/.envOBSIDIAN_VAULT_PATH=/home/ユーザー名/vault と書いておけば、Hermes Agentが read_file / write_file / search_files で直接 vault 内の .md ファイルを読み書きできるようになります。ObsidianアプリのGUIは不要で、ファイルシステムさえ整っていれば動きます。

じゃあこの.md、人間はどうやって見るの?

Hermes Agent はファイルを直接読み書きできるので、.mdファイルの管理は問題なし。
ただ、人間が中身を見ようと思うとちょっと困る。VSCodeのRemote SSHで開けば読めなくはないですが、開発ディレクトリと vault の場所が違うので、いちいち開くのが面倒です。

そこで、うちのHermes Agent(ルナちゃん)に Flask で簡易Web Viewer を作ってもらうことにしました。これで「ちょっとメモを見たい」がサッとできるようになります。

Flask Web Viewerで一時解決

Flask Web Viwerの見た目

作ったもの

  • 技術スタック: Python + Flask(テンプレート分割すらしない超シンプル構成)
  • 機能: vault内のMarkdownファイルをブラウザで閲覧・検索できる
  • 設計: 小規模なので app.py 1ファイルに全部集約

https://github.com/ramen-man318/obsidian-web-ui

※個人用の簡易実装です。動くことは動きますが、公開用に作ったわけではないのでご了承ください。

作り方の流れ

  1. 私(らーめんマン)が「FlaskでObsidianのWebビューア作って」とざっくり指示
  2. Hermes Agent(ルナちゃん)が設計 → LM Studio上のローカルLLM(Qwen 3.5-9B)にコードを書かせる(トークン節約!)
  3. Hermes Agent(ルナちゃん)が出来上がったコードをレビュー・動作確認
  4. 問題なければそのまま採用

「自分で設計するのは面倒だけど、致命的な欠陥がないかだけ確認して、あとは任せる」というスタンスです。

この運用の良いところ

  • AIも人間も読める: Hermes Agent は read_file で直接読み書きできるし、人間はWebブラウザやVSCodeで見られる
  • 容量を気にしなくていい: Memoryの2,200文字制限に縛られず、好きなだけメモを残せる
  • Memoryをクリーンに保てる: 「覚えておいてほしい設定」だけをMemoryに残し、詳細なメモはObsidianに任せるという住み分けができる
  • 既存の資産を活かせる: 日報や作業ログを daily/ フォルダに保存しておけば、後からルナちゃんに「昨日の作業内容読み込んで」と頼める

Zenn記事もObsidianで書いてる

実はこの記事も、Obsidian vault上でルナちゃんとやり取りしながら書いています。Hermes Agentが直接ファイルを読み書きできるので、私が下書きを書いてルナちゃんにブラッシュアップしてもらい、また私が修正して…という往復がとてもスムーズです。

ただ、作成したFlask Web Viewerは現状は閲覧しかできないので、VSCodeでわざわざ1ファイルずつ開いており、不便です。
そろそろ編集機能もつけたWebアプリを別途作ろうと思っています。今度は私がちゃんと設計してからルナちゃんに実装してもらう予定です。

まとめ

改めて、この運用の核となる考え方は、

AI用の記憶(Memory)と人間もAIも使える共有の記憶(Obsidian)は分ける

  • Memory には「ユーザーの好み」「よく使う設定」など、コンパクトな情報だけを置く
  • Obsidian には詳細な技術メモ、作業ログ、設計ドキュメントを置く
  • AIも人間も同じファイルにアクセスできるから、情報の非対称が起きにくい

「AIに全部覚えてもらおう」とするのではなく、役割を分ける。これだけでメモ管理のストレスがかなり減りました。

次はこのObsidian vaultを活用して、週次サマリーの自動生成とかにも挑戦してみようと思っています。

同じような環境でAIエージェントと開発している方の参考になれば嬉しいです。

Discussion