ノートアプリ「Obsidian」を使いこなす

ObsidianのノートをVS CodeのAI(Cline)通して活用する ローカルにMarkdown形式で保存しているメリットを活かす使い

前回の記事では、Obsidianが注目されている理由として「⁠AIとの連携」があることを解説しました。そして、生成AIやMCP⁠、AIエージェントで実現できることについて紹介しました。

今回は、なぜObsidian単体ではなく外部のAIと連携するのか、どうすればObsidianで管理するノートをAIと連携して活用できるのか、について解説します。

AIでノートを作成⁠整理する意味

この連載の第1回でも紹介したように、Obsidianは「ノートアプリ」「PKM(個人知識管理)ツール」に分類されています。このようなアプリで管理するノートを「AIと連携する」という言葉を聞いて、違和感を感じる人がいるでしょう。

ノートは自分の頭で考えて、自分から発する言葉を紡ぎ、整理することに意味があると考えたとき、他人(AI)によって生成されたり、要約されたりしたノートに価値があるでしょうか。⁠Obsidian Kindle Plugin」というプラグインによってKindleにマークしたハイライトを取り込む、⁠Obsidian Web Clipper」などのブラウザ拡張を使ってWebサイトの記事を取り込む、といった方法が注目されますが、他人の著作物や他人の言葉をノートに取り込んで、それをAIに要約させたとして、それは果たして個人の「知識」といえるのか、という疑問です。

もちろん、ノートに書く内容はそれぞれの個人の自由ですし、他人が口を出すことではありません。他人の著作物を取り込んでも、個人のノートとしての利用であれば問題になることはないでしょう。AIによって出力された文章を整理したものが「知識」だと考えるのであれば、それを止めることはできません。

わたしとしてはのタイトルに『Obsidianで⁠育てる⁠〜』とあるように、ノートを「育てる」ときは時間的な効率を求めるのではなく、自分の頭で考える時間が重要だと感じます。人によってノートについての考え方は違うものの、Obsidianというツールに興味を持って使っていただける人が増えるのは嬉しいです。

なお、Obsidianでは複数のVault(保管庫)を作成できますので、⁠自分で作るノート」「AIによって作られるノート」を分けて使ってもよいでしょう。

Clineを導入する

前回の記事ではAIエージェントとして、CursorというAIテキストエディタやClineという拡張機能がよく使われていることを紹介しました。今回はテキストエディタとしてVisual Studio Code(VS Code)を使い、その拡張機能として「Cline」を使う方法について解説します。

Clineを導入するには、VS Codeの左メニューにある「拡張機能」から「Cline」と検索し、表示されたものをインストールします。

インストール完了後、サイドバーに表示されたClineを選択すると、AIモデルの設定画面が表示されます。無料プランもありますが、今回は個人での利用に十分な無料枠が用意されている「Gemini 2.0 Flash」というモデルを使います。このモデルをAPIから使うには、⁠Use your own API key」を選択し、APIキーの取得が必要です。

このAPIキーを取得するには、Googleアカウントにログインした状態で、Google AI Studioにアクセスし、画面上部に表示される「Get API key」というボタンを押します。そして、⁠APIキーを作成」というボタンを押して、APIキーを取得し、上記のClineに設定します。

続いて、Clineの画面で歯車アイコンから設定画面を開き、⁠Advanced Settings」を押し、⁠Cline: Preferred Language」を日本語に設定しておくとよいでしょう。これで、Clineのチャット画面から何かメッセージを送信すると、Geminiからの応答が日本語で表示されるはずです。

以下では、このClineを使ってどんなことができるのか、いくつか例を挙げて紹介します。

例1)タグを自動的に付加する

Obsidianでは階層型のタグが使えます。具体的には、⁠⁠#プログラミング言語/PHP」⁠⁠#プログラミング言語/Python」のように、タグを「/」で区切る方法です。階層的なタグをつけておくと、それぞれのタグで検索したときに該当するノートが表示されるだけでなく、⁠⁠#プログラミング言語」のように親の階層で検索したときにはいずれのノートも表示されます。

ノートの内容にあったタグをつけるのが面倒なとき、AIで自動的に生成することを考えます。ObsidianにはAI Taggerなどのプラグインも用意されていますが、細かなカスタマイズはできませんでした。

そこで、Clineを使って階層型のタグを自動的に生成させることを考えます。Clineには「ルール」という機能が用意されており、事前に設定したルールに沿って動作します。このルールはエディタ全体として設定することもできますし、開いているワークスペース単位で設定することもできます。今回はワークスペース単位で設定します。

まずはVS Codeでワークスペースを作成します。Obsidianで管理しているVaultのフォルダをVS Codeで開いた状態で、VS Codeのメニューから「ワークスペースとして保存」を選択します。これでワークスペースが作成されました。

現時点ではワークスペース内に、次のような3つのノートがあったとします。いずれもタイトルしか書かれていません。

そして、Clineの画面下にある天秤のマーク(Manage Cline Rules)のボタンを押します。そして、⁠Workspace Rules」の欄に新しいルールの名前を指定します。

ここでは「タグ」というルールを追加しましょう。そして、作成されたファイル(タグ.md)で、次のような文章を入力しましょう。

Markdown形式のノートの先頭に、YAML形式で次のような階層型のタグを使ってください。

なお、すでに作成しているノートに書かれている内容は消さず、すでにタグが存在するときは既存のタグを残して、新しいタグを追加してください。

---
tags
  - プログラミング言語/PHP
---

使えるタグは以下の通りです。

#プログラミング言語/PHP
#プログラミング言語/Python
#ハードウェア/周辺機器
#ハードウェア/パソコン
#ソフトウェア/ツール
#ソフトウェア/フレームワーク

このうえで、チャット欄に

現在のワークスペース内のノートに、ノートの内容に合ったタグを設定してください

のように入力すると、メモの先頭にタグが自動的に追加されます。

そして、このVault(フォルダ)をObsidianで開くと、階層的なタグで検索できることがわかります。AIエージェントを使うことで、日本語で指示をするだけでノートに合ったタグを設定できることがわかるでしょう。

例2)リンクを自動的に生成する

同様に、複数のノートの間にリンクを自動的に生成することを考えます。ObsidianではWikiリンクと呼ばれる形式でリンクを作成します。たとえば、次のような2つのノートがあったとします。

Python.md
# Python

1991年に開発されたプログラミング言語で、Raspberry Piでも主な開発言語として使われている。
Raspberry Pi.md
# Raspberry Pi

このとき、Pythonのノート中で次のように「Raspberry Pi」という部分を二重の鉤括弧でくくると、Raspberry Piのノートにリンクできます。

Python.md
# Python

1991年に開発されたプログラミング言語で、[[Raspberry Pi]]でも主な開発言語として使われている。

Obsidianではリンクをクリックしてノート間を移動できるだけでなく、リンク先のノートにはバックリンクが表示されます。これにより双方向でノート間を移動できます。

このようなリンクを自動生成するとき、ObsidianにはNote Linkerなどのプラグインがあります。しかし、単語を空白で区切る必要があり、日本語の文章には不向きです。

そこで、AIエージェントを作ってリンクするために、Clineのルールを作ってみましょう。上記の例1と同様に、⁠⁠Workspace Rules」の欄に「リンク」というルールを追加し、作成されたファイル(リンク.md)で次の文章を入力します。

ノート間をObsidianで使われるWikiリンクでリンクしてください。

たとえば、ABC.mdというノートからDEF.mdというノートにリンクするとき、ABC.mdというノート内で次のように書かれていたとします。

```
もともとのデータはDEFでした。
```

これを、次のように置き換えてください。

```
もともとのデータは[[DEF]]でした。
```

そして、Clineのチャット画面から

現在のワークスペース内のファイルに対し、リンクが可能なノートがあればリンクを設定してください

のように入力すると、AIエージェントによってリンクが作成されます。

例3)自然言語で検索する

AIを使う例として、チャットでの検索があります。これまでの検索ではノート中に記述したキーワードに一致するものを抽出する方法が一般的でしたが、生成AIを使うと自然な文章で検索できます。

Clineのチャット画面から、次のように入力すると、関連するノートを一覧として表示してくれます。

現在のノートからIoTに関するノートを一覧にしてください

このとき、ノート内に「IoT」という言葉は必要ありません。たとえば、⁠PHP」⁠Python」⁠Raspberry Pi」というタイトルのノートがあったとき、⁠Raspberry Pi」だけがIoTに関するノートだと判断して答えてくれるのです。

複数のVaultから検索する

今回解説したような内容は、Obsidianのプラグインでも似たものがありますし、今後便利なプラグインが開発されるかもしれません。するとObsidianだけで完結し、Clineなどのソフトウェアを使う必要はなくなります。

しかし、Obsidianにはどうしても越えられない制限があります。それは、ObsidianがVault単位でノートを管理していることです。つまり、1つのVaultを開いているとき、ほかのVaultの内容をまとめて操作することはできません。

このようなときにテキストエディタは便利です。特に、VS Codeが備える「ワークスペース」という機能を使うと、複数のフォルダを選んで開くことができます。そして、Clineを使って複数のVaultをまたいで操作できるのです。

注意AIエージェントの利用のリスク

AIエージェントにノートを書き換えさせると、こちらが想定していない動作をする可能性があります。誤ってノートの中身を消してしまう、想定外の内容で上書きしてしまう、ということが発生すると、自分が作成した大切なノートが失われてしまいます。

このため、事前にバックアップを作成することは必須だといえます。そして、AIエージェントの応答を確認し、問題ないと思われる変更だけを許可するようにしましょう。

私の場合は、ObsidianのVaultをGitで管理しているため、変更に問題があれば履歴から戻せますし、差分を確認できます。このようにGitなどのバージョン管理ソフトで管理できることも、テキストデータ(Markdownファイル)としてローカルでノートを扱うObsidianのメリットだといえます。

他のリスクとして、情報漏洩があります。今回はGemini 2.0 Flashという無料版のAIを使用しましたが、Geminiのようにクラウドで回答を生成するAIだと、扱うデータは外部に送信されることになります。

企業秘密などのデータをノートとして記録している場合、これが外部に送信されることは情報漏洩につながる可能性があります。個人でのメモであればそれほど問題になることはないと思いますが、企業での利用については特に注意しましょう。

おすすめ記事

記事・ニュース一覧