- 直面した壁: Obsidianに蓄積したノートをGeminiに読ませても、文脈を取り違えたり意図が正確に伝わらない現象が発生。
- 長大コンテキストの罠: 100万トークン規模を扱えるモデルであっても、ノートを丸ごと詰め込むとノイズが増加し、意図の追従限界(Lost in the Middle / Context Rot)に陥りやすい。
- 現場の工夫: ノートを「見出し階層パス(H1 > H2 > H3)付きのチャンク」で切り出す処理を試み、プロンプトには「AIが具体的に取るべき行動手順と除外ルール」を明示する設計へ変更。
- 二層防御の実践: AIの自動探索(約8割)を過信せず、最終的な採否や事実確認は人間(約2割)が手元で行う規律を敷くことで、実用に耐える安定性を確保。
1. 「第二の脳」を繋いだはずなのに、なぜか噛み合わない
日々の気づき、読書メモ、技術的な検証ログ、開発のアイディア。
Obsidianの中にせっせと書き溜めたマークダウンのノート群は、自分にとってかけがえのない思考の資産です。「この膨大なノートをGeminiなどの大規模言語モデル(LLM)と繋げば、自分の分身のようなアシスタントが育つのではないか」
そう期待して、ノートをLLMに読み込ませる仕組み(RAG:検索拡張生成やコンテキスト注入)を構築し始めた方は多いのではないでしょうか。
私自身もまさにその一人でした。しかし、実際に手元のノートをAIに連携させて使い始めた直後、真っ先にぶつかったのが「こちらの意図が正確に伝わらない」という強烈な違和感でした。
ノートの中に確かに書かれているはずの事実を拾ってくれなかったり、文脈を読み違えて一般的な説明にすり替わったり、こちらの問いかけのニュアンスとは微妙にズレた回答が返ってくるのです。
「ノートの文章が下手だからなのか」「モデルの賢さが足りないのか」と悩みましたが、試行錯誤を重ねるうちに、問題の本質はもっと手前にあることが見えてきました。
2. なぜ「そのまま渡す」と意図がズレるのか?
ノートとAIの噛み合わせが悪くなる背景には、大きく分けて2つの原因が存在していました。
① 長大なコンテキスト窓に潜む罠:長文でも意図が伝わるとは限らない
Geminiシリーズには、100万トークン規模の長大なコンテキストウィンドウを扱えるモデルが存在します(※利用できる上限はモデルやAPI、契約プラン等によって異なります。詳細はGoogle AI for Developers公式ドキュメントを参照)。そのため、当初は「Obsidianのノートをフォルダごと、あるいは長文のまま丸ごとプロンプトに流し込めば解決するのではないか」と考えがちです。
しかし、実際に試してみると、ここに「長文が入るからこそ起きる精度の劣化」という落とし穴がありました。
入力コンテキストが肥大化すればするほど、AIにとっては「どれが今最も重要な判断基準なのか」の優先順位付けが困難になります。長文を扱うLLMの研究論文(Nelson F. LiuらによるLost in the Middle — ACL Anthology)でも指摘されているように、関連情報が長い入力の中央付近にある場合、モデルの回答性能が低下しやすくなる現象や、対話の進展に伴って制約を取りこぼす「Context Rot(文脈腐敗)」が発生しやすくなるのです。
ノートを丸ごと投げると、AIは膨大なテキストの中から無難な一般論を合成しやすくなり、結果としてこちらの一次情報の核心を取りこぼす傾向がありました。
② 文字数ベースの「機械的スライス」による文脈破壊
一方で、長文を避けるために一般的なRAG手法である「500文字ずつ」「1,000トークンずつ」といった固定長で機械的にスライスすると、今度は別の問題が起きます。
| チャンキング方式 | 処理の特徴 | 実務で直面した課題・傾向 |
|---|---|---|
| 固定長チャンキング(500〜1,000字) | 文字数やトークン数で機械的にスライスする | 文の途中や見出しと本文の間で切断され、主語や前提条件が次のチャンクに飛んで文脈が消失しやすい |
| ファイル丸ごと注入(長文コンテキスト) | ノート全文をそのまま長文として読み込ませる | 情報量が多すぎてノイズが増加し、指示の追従精度や意図の反映度が低下しやすい(Context Rot) |
| 見出し階層パス付きチャンキング | MarkdownのH2/H3構造を保持し、上位見出しのパンくずを付与 | 1つの論点・根拠が独立して保たれ、断片化した情報の文脈を補いやすくなる |
固定長でバッサリ切ってしまうと、「〜という前提があるが」という条件節と「結論として〜を採用した」という本体が別々の断片に引き裂かれます。その結果、断片だけを拾ったAIが前提を無視して誤った解釈をしやすくなってしまうのです。
3. 現場で試した改善策:「見出し階層パス」と「具体的アクション指示」
このズレを軽減するために現場で試行錯誤した結果、効果を感じられたのは非常にシンプルで泥臭い2つのアプローチでした。
① 見出しの親子関係(パンくず)をチャンクの先頭に付与する
文字数で切るのをやめ、Markdownの見出し(H2 / H3)を単位として切り出す方法を試みました。
ただし、単にH3ブロックだけを切り出すと、「そのH3がどの親テーマ(H1やH2)の話なのか」という上位の文脈を失って孤立してしまいます。そこで、各チャンクの先頭に「見出しの階層パス(パンくずリスト)」をメタデータとして付与するアプローチを導入しました。
[Context Path: # 2026年開発ロードマップ > ## 音声合成パイプライン > ### サ行摩擦音の抑制フィルタ]
サ行の周波数帯(5.5kHz〜7.5kHz)に対してダイナミックEQを適用。
過剰に削ると籠もるため、スレッショルドは-18dB、ゲインリダクションは最大-3.5dBに留めること。
このように上位の文脈を付与した状態で切り出すことで、検索でこの断片だけがヒットした場合でも、AIは「音声合成パイプラインの中のサ行抑制の話である」と文脈を補いやすくなり、意味の取り違えを大幅に減らす手応えを得られました。
② 「よしなに答えて」を廃し、プロンプトを行動手順で縛る
さらに重要だったのが、AIに対する指示出しの解像度を上げることです。
抽象的な丸投げ指示をやめ、「AIが取るべき具体的アクション」「参照すべき根拠」「出力フォーマット」を手順書として定義しました。
| 項目 | 従来の丸投げ指示(Before) | 現場で改善した具体的指示(After) |
|---|---|---|
| 指示内容 | 「添付のノートを読んで、私の考えをまとめてください」 | 「ステップ1:ノート内から『実際に検証した試行』と『直面したエラー』を箇条書きで抽出せよ」 |
| 制約条件 | 特になし(自由回答) | 「ステップ2:推測による勝手な補完を抑えるため、ノートに書かれていない外部の一般論や推測は付け足さないこと」 |
| 例外処理 | AIが想像で勝手に穴埋めする | 「ステップ3:該当する根拠がノート内に存在しない場合は、推測せず『該当の記述なし』と明記して終了せよ」 |
もちろん指示を厳密にしてもAIが推測を完全にゼロにできるわけではありませんが、このように「具体的に行うこと・行ってはいけないこと」を行動ルールとして明示することで、手元のメモに書かれた一次情報に沿った回答を引き出しやすくなりました。
4. 運用上の二層防御:AIを全自動にせず「人間が手綱を握る」
どれほどチャンキングを工夫し、プロンプトを具体化しても、AIの出力を100%盲信することはできません。実務や発信で破綻を防ぐためには、「AIの下準備(約8割)+ 人間の確認・承認(約2割)」という二層防御の構え(※比率は運用上の目安・役割分担の比喩です)が不可欠です。
① AIの出力は「ドラフト(下準備)」と割り切る
AIがObsidianのノートから引っ張ってきた情報や要約は、あくまで「人間の記憶を呼び起こすための下準備」です。そのまま最終成果物として公開したり意思決定に使うのではなく、人間が一度目を通して「自分の意図と合致しているか」を監査するステップを必ず挟みます。
② 違和感を覚えたらプロンプトを責める前に「元のノート」を見直す
AIが意図を汲み取れなかった場合、それはプロンプトの不備だけでなく、「元のノートの書き方が曖昧だった(思考が整理されていなかった)」ケースも多々あります。AIからのズレた回答をフィードバックとして捉え、ノート側の見出しや要点を具体的に書き直すことで、結果としてObsidian内の知識ベースそのものが洗練されていきます。
5. まとめ:同じ課題に悩む開発者仲間への意見共有
ObsidianとGeminiなどのLLMを組み合わせたパーソナルなAI環境づくりは、教科書通りの正解がまだ確立されていない、手探りの領域です。
「せっかく繋いだのに、なぜか思い通りに動かない」と感じたときは、以下の2点をぜひ試してみてください。
- 長大なコンテキスト窓に頼りすぎず、見出し階層パス(パンくず)を付与した構造化チャンクでノイズを抑える
- 「よしなに」を排し、「AIに具体的に何を行わせるか(手順・制約・出力・例外処理)」を行動レベルで明示する
AIに人間の心を「察してもらう」ことを期待するのではなく、道具としての境界線と具体的な役割をこちらから丁寧に手渡すこと。遠回りに見えて、これが意図のズレを減らし、Obsidianを実用的な知的パートナーへと近づける一番の実践的なアプローチだと感じています。
☕ 思考を研ぎ澄ます合間に「普通のコーヒー」を焼いています
036 Factoryの本業は、ご注文をいただいてから生豆を一粒ずつ手作業で選別(ハンドピック)して焙煎する、小さな自家焙煎珈琲工房です。
AIの実装やプログラミング、執筆で加熱した頭をふっとリセットする、雑味のない「毎日飲める普通のコーヒー」を少量ずつ丁寧に焼いています。作業や思考の合間のひと休みに、ぜひ一度うちの工房を覗いてみてください。