Obsidianを使ってAIエージェントに長期記憶を付与する方法
先週、また認証サービスの構造をコーディングエージェントに説明している自分に気づいた。今月これで3回目だ。Claude Codeのコンテキストウィンドウは十分に大きいが、いずれのセッションもいつかは終わる。新しいターミナルを起動すれば、アーキテクチャの決定事項もチーム間の合意もスプリントタスクも、コンソールは何も覚えていない。
最近、開発者のBrenno Ferrariが手がけたobsidian-プロジェクトを見つけた。著者のアプローチはシンプルだ。エージェントに長期記憶が必要なら、なぜそれを通常のObsidian保管庫にしないのか?
テンプレートの中身
このプロジェクトは、 готовый note構造、TypeScriptフック一式、そしてプレビルドのCLIコマンドで構成されている。テンプレートはClaude Code、Codex CLI、Gemini CLI、その他指示ファイルからルールを読み込めるシステムとシームレスに連携する。
コンセプトはシンプルだ。エージェントが自律的にMarkdownファイルを読み書きする。セッション開始時にフックがbrain/North Star.mdファイルからグローバルな目標を読み込み、アクティブなタスクリストを取得して、コンテキストウィンドウに渡す。決定事項や会議についてエージェントに伝えると、データをフォルダに整理し、同僚の名前やプロジェクトにリンクさせる。
トークン使用量制御の仕組み
このようなシステムの主な課題はトークン消費だ。すべてのリクエストでナレッジベース全体をコンテキストに詰め込めば、数時間で上限に達してしまう。
obsidian-では、多層構造のローディング方式来でこれに対処している:
- セッション開始時にベースラインスライスを読み込む:目標、開放中のタスク、最近のコミット、保管庫のファイルリスト。これで約20,000トークンを消費する。
- セマンティック検索にはQMDユーティリティを使用。ローカルでベクトルエンベディングを構築し、エージェントが特定の情報を必要とするときにRELATEDフラグメントを検索する。
- メッセージ送信時に、スクリプトがデータタイプ(インシデント、会議、アーキテクチャ決定)を判別し、エージェントに短いルーティングヒントを渡す。
- ファイル書き込み後、WikiリンクとYAMLパラメータの正しさをチェックするバリデーターが実行される。
典型的なワークデイ
朝に/om-standupコマンドを実行する。エージェントがgitの最新の変更を読み込み、タスクリストと照合して、簡単なサマリーを出力する。
会議やSlackでの議論の後、手動でドキュメント構造を入力する必要はない。、生のテキストをエージェントにフィードするだけだ:
/om-dump Обсудили с Сарой рефакторинг авторизации. Решили отложить миграцию на Redis до второго квартала. Сара похвалила архитектуру API.
レスポンスとして、システムが同時に4つの処理を行う:
org/people/Sarah Chen.mdの会議履歴ファイルを更新する。- decisionsフォルダに決定事項エントリを作成する。
- 功績テンプレート
perf/Brag Doc.mdに称賛を記録する。 - アクティブなプロジェクトカードに新しいタスクを追加する。
日の終わりに、/om-wrap-upコマンドがクロスリファレンスのない孤立したノートをチェックし、インデックスを更新する。
サブエージェントによるバックグラウンドタスクの実行
重量級の操作には、テンプレート内で specializedサブエージェントが設定されている。它们はisolatedコンテキストウィンドウで実行され、メインの会話を乱雑にしない。
リポジトリにはいくつかのpre-configuredエージェントが含まれている:
- slack-
- cross-linkerは保管庫全体で壊れたWikiリンクと忘れられたノートを検索する。
- brag-
- people-
ビルドと起動
ShardMindテンプレートマネージャー経由、または単にリポジトリをクローンすることで保管庫をデプロイできる。
npm install -g shardmind
mkdir my-vault && cd my-vault
shardmind install github:breferrari/obsidian-mind
セットアップコマンドでは、名前、社名、主要な目標を入力するよう求められる。その後、いくつか簡単なステップを踏むだけだ:
- 作成されたフォルダをObsidianで保管庫として開く。
- アプリ設定でObsidian CLIプラグインを有効にする(Obsidian 1.12+が必要)。
- 保管庫ディレクトリから直接CLIエージェントを実行する。
フル機能の検索には、QMDベクトル検索ツールもインストールする必要がある:
npm install -g @tobilu/qmd
node --experimental-strip-types .scripts/qmd-bootstrap.ts
QMDがないと、システムはgrepとObsidianの組み込み検索経由で動作し続けますが、抽象的な質問への回答の精度が少し低下する。
このプロジェクトの対象者
テンプレートは、CLIベースのAIエージェントを активно使用し、既にObsidianでノートを保持しているか、保持する予定のデベロッパーにとって有用だ。主な価値は、ドキュメント相互のリンクに関するよく考えられたルールにある。
注意点として、Node.jsバージョン22+とTypeScriptスクリプトの事前コンパイルなしの実行所需的 экспериментальныйフラグへの依存がある。このフラグが将来のNode.jsリリースで名前変更された場合、フック設定の更新が必要になる。それでも、このプロジェクトは優れた готовый基盤を提供し、このような足場の構築をゼロから始める必要性をなくしてくれる。
関連プロジェクト