0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ObsidianをLLM Wiki化する:コンパイル層優先照会プロトコルとHarness/Loop/Graph 3層エージェント設計

0
Posted at

はじめに

ObsidianをAIエージェントのセカンドブレインとして運用していると、ノートが増えるほど「質問のたびに一次資料を全件検索し直す」構成がボトルネックになってきます。RAG(Retrieval-Augmented Generation)の素朴な実装は、検索のたびに不変の一次資料群を再検索・再集約するため、トークン消費が増大し、ノイズの多い検索結果によって回答精度も下がりがちです。

本記事では、この課題に対する解決策として運用している 「コンパイル層優先照会プロトコル」 と、その裏付けとなる エージェント3層設計(Harness / Loop / Graph) を、実際にVault運用ルールとして固定化した内容に基づいて解説します。


1. 原則:Compile Once, Query Many(一度コンパイルし、何度も参照する)

一次資料(01_Raw/04_Knowledge/Raw/)を毎回全件RAG検索するのではなく、AIエージェントが一次資料を一度だけ読み込んだ際に要約・構造化・相互リンク済みの「コンパイル層」ノートを作成し、以降の照会はこのコンパイル層を最優先で参照する、という考え方です。

「一次資料はソースコードであり、Wikiはコンパイル成果物である」という捉え方をすると理解しやすくなります。ソースコードを毎回コンパイルし直すのではなく、コンパイル済みの成果物(Wiki)を都度参照する方が高速なのと同じ発想です。


2. 検索・参照の4段階優先レベル(Query Hierarchy)

全AIエージェント(用途に応じた複数のエージェントを併用する場合を含む)が共通で従うべき、参照の優先順位を4段階で定義します。

  1. Level 1(全体地図&直近文脈)
    Vault全体の地図となるMaster Indexノートを最優先で参照し、目的に沿った構造化フォルダ・ノートを特定します。あわせて、直近の進行中コンテキストをキャッシュした「hotノート」から作業状態を復元します。
  2. Level 2(コンパイル層&複合知見)
    複数分野を横断的に統合した知見ノート(Compound)、構造化されたWikiノート、各ドメインの構造化サマリーを参照します。ここまでで大半の質問には回答できます。
  3. Level 3(テーマ別ノート&MOC)
    トピック別・比較別のアトミックノートを検索します。
  4. Level 4(一次資料&外部API・最終手段)
    コンパイル層に該当する情報がない、または最新情報の補完が必要な場合に限り、一次資料や外部APIを直接参照します。

この階層を徹底することで、応答速度とトークン効率を大きく引き上げつつ、検索ノイズによる誤回答(Dead Notes問題)を防止できます。


3. IngestとCompileを一体化する標準手続き

一次資料を新しく読み込んだ(Ingestした)場合、その場限りの要約で終わらせず、必ず同一セッション内で次の手続きを完了させるルールにしています。

  1. 一次資料のFrontmatterに ingest_status: ingestedingested_at: YYYY-MM-DD を付与する。
  2. 内容を要約し、「AI秘書による活用提案」セクションを追記する(後続のアクションにつなげるため)。
  3. 得られた知見をコンパイル層(Wiki または Compound)に反映する。新規ノートを作る場合もあれば、既存ノートへの追記・書き戻しになる場合もある。

「読んだだけで終わる一次資料」を作らないことが、コンパイル層の鮮度を保つ鍵になります。


4. 相互リンクの最低2本接続ルール

新しくコンパイルノートを作成する際は、必ず既存のMaster Indexや関連テーマノートへ最低2本以上のWikiLinkを双方向に張ります。これを徹底しないと、せっかく作ったノートがどこからも参照されない「孤立ノート(Graveyard Note)」になり、次第に存在自体を忘れられてしまいます。

[全体地図] ──(親リンク)──► [新規コンパイルノート]
                                │
[関連する既存の複合知見] ──(関連リンク)──┘

5. エージェント設計の3大レイヤー(Harness / Loop / Graph)

コンパイル層の運用ルールだけでは不十分で、それを実行するAIエージェント自体の設計も同時に整理する必要があります。エージェントの失敗原因は、単一のプロンプトやモデル性能の不足ではなく、モデルを取り巻くシステム設計の欠如にあることが多いためです。

レイヤー 制御対象 主なコンポーネント
Harness Engineering 現実・動作環境の制御 ツール(MCP)、パーミッション、サンドボックス、ファイルシステム、状態保存、システム指示
Loop Engineering 反復・検証の制御 試行→観察→修正のサイクル、エビデンス検証(テスト・引用)、明確な停止条件(回数・予算・エスカレーション)
Graph Engineering トポロジー・制御フローの制御 ノード(作業単位)、エッジ(状態遷移・条件分岐)、チェックポイント、並列処理、人間の承認ゲート
┌─────────────────────────────────────────────┐
│ HARNESS(環境・ツール・権限・状態保存)         │
│  ┌───────────────────────────────────────┐  │
│  │ GRAPH(トポロジー・条件分岐・承認ゲート) │  │
│  │  ┌─────────────────────────────────┐  │  │
│  │  │ LOOP(反復・検証・停止条件)        │  │  │
│  │  │  ┌───────────────────────────┐  │  │  │
│  │  │  │ PROMPT & MODEL             │  │  │  │
│  │  │  └───────────────────────────┘  │  │  │
│  │  └─────────────────────────────────┘  │  │
│  └───────────────────────────────────────┘  │
└─────────────────────────────────────────────┘

この3層モデルをVaultの構造に対応させると、Harness層は共有設定・環境情報・作業ログを置くフォルダ、Graph層は他エージェントへのバトンパス(引き継ぎ)ノート、Loop層はエージェントの実行・検証ルールそのもの、というように役割分担できます。エージェントが迷走したりループを止められなくなったりする問題の多くは、この3層のどこか(特にLoopの停止条件とGraphの承認ゲート)が曖昧なまま運用していることが原因です。


6. 運用してわかった評価と、次に着手した改善提案

上記の設計を実際に運用してみた評価と、その後追加した改善提案をまとめます。

評価項目 ベストプラクティス側の要求 評価
Master Index(門番) 迷走防止のための単一の全体地図 高度に達成。選択的ロードが機能している
コンパイル層 一次ノートの要約・構造化・再利用性 実装済み。ただし活用のさらなる推進余地あり
自律整理 死蔵ノートの発見・相互リンク補修 アルゴリズム・自動化スクリプトの強化余地あり
コンテキスト復元 前置きなしで作業再開できる状態保存 運用中。全エージェントでの徹底が課題

この評価から見えた課題に対して、次の改善に着手しています。

  1. コンパイル層優先照会のルール厳格化:一次資料をむやみに全件読み込むのではなく、まずMaster Indexとコンパイル層を検索・参照する運用を、複数のAIエージェント間で共通ルールとして徹底する。
  2. Vault健康診断スクリプトの拡張:孤立ノート(被リンク0件)や仮リンク(未作成の[[ノート名]]参照)を自動抽出・報告するスクリプトを追加する。
  3. チェックポイントノートへの「次のアクション提案」の自動集約:タスク完了時の記録に「行ったこと」だけでなく「次に着手すべき改善アクション」を必ず1〜3件セットで残すフォーマットに固定化し、次回セッション開始時にエージェントが受動的にならないようにする。
  4. 複数ドメイン横断のコンパイルノートの定期的自律生成:専門分野ごとに蓄積されたデータに対し、定期的に横断分析を実行してコンパイル層に反映する。

まとめ

  1. Compile Once, Query Many:一次資料は都度検索するのではなく、一度コンパイルしたWiki/Compound層を優先照会する。
  2. 4段階のQuery Hierarchy:Master Index → コンパイル層 → アトミックノート → 一次資料、の順で参照範囲を広げていく。
  3. Ingestと同時にCompileする:読んだだけで終わらせず、同一セッション内でコンパイル層への反映まで完了させる。
  4. Harness / Loop / Graphの3層でエージェントを設計する:ツールと権限(Harness)、検証と停止条件(Loop)、承認ゲートとトポロジー(Graph)を分けて考えることで、エージェントの迷走を防ぐ。

セカンドブレインの価値は「情報量」ではなく「必要な情報に迷わず辿り着けるか」で決まります。コンパイル層の設計とエージェントの制御構造を分けて考えることが、AIエージェントとの協働を長期運用していく上での鍵になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?