こんにちは、Nafu0819です。最近はTohjiの引退に咽び泣いています。
最近はAIの進化が凄まじいですね。私も10日ほど前にClaude Codeを契約したのですが、凄まじい速度で積んでいた事務的なタスクが消化されるのを見て快感すら感じています。
そこで、理系院生の私は、Claude Codeに「Obsidian」というメモアプリを整備させました。今はNotionからObsidianに乗り換えて使って4日目くらいですが、メモを書くのが格段に楽しくなってきました。
整備の詳しい話は下の記事にまとめているので、こちらを参照してください。
そこで、今回は続編として、動機面を深掘りしていこうと思います。前編が実装側の記事なら、この記事は実装に至るまでの思想編、のような立ち位置でしょうか。たいして情報系に詳しくもない理系院生なりの考えをQiitaで話すのは恐縮ですが、私と同じような人の "糧" になりましたら幸いです。
背景
研究とメモ
研究にメモは欠かせません(そりゃそう)。私は主に実験や観測による数値データの解析を主に研究手段として用いているのですが、ここには大量の"ナレッジ"が蓄積します。例えば、
- 前提となる理論計算の筋書き
- 解析コードの設計
- データセットのパラメータとその結果の考察
- 教授との週1のミーティングの議事録
- 学会発表や論文のアウトライン
- 読んだ論文のメモ
などと、とにかくキリがないほど生えてきます。しかもこれらは安易に捨てることが出来ません。 例えばデータセットなら、過去のデータと比較したい場面は多々あり、その際の再現性を担保するためにはパラメータのリストは不可欠です。
そのため、私は忘れっぽいのもあって、メモツールにはこだわりがあります。Notionは学生プランを使えるし、データベースとかで 構造化+メタデータ付与 を楽に出来るのが個人的な魅力でした。特にタグに関しては、個々のページからも、データビューからも編集できるのは今でも神だと思っています。これによって、私が貯めに貯めたゴミ山から、必要な情報だけをピックアップする手間を出来るだけ省き、研究により集中する環境を整えていました。
しかし、そこにAIが台頭してきました。AIと共に作業する際、個人的に重要だろうと思っているのは文脈の共有であり、何かをAIに投げる際はこれらの貯めに貯めたナレッジも一緒に放り込むのが精度面でもいいと考えました。
Notionにも勿論Notion AIという素晴らしいAIがありますが、私はそこまで金があるわけではないので、使うAIは1種類に絞りたい。そんな中、Claude Codeと運命の出会いを果たしてしまいます。
Claude すげえ
いやホンマにすごいっすね。Twitterの驚き屋を冷笑していたのですが、ある時抱えていたバカ重コーディングタスクがどうしても期限に間に合わず、未だにサブスクに抵抗のある私は2tくらいある重い腰をあげてClaudeと契りを結びました。勿論Proプランです。金がないので。
Claudeはそのタスクを間に合わせてくれて、ついでにtexのbeamerの凝った微調整にも付き合ってくれたのですが、そのついでにいじってたら1週間くらい毎秒感動していました。具体的には以下です。
- PCのデータに勝手にアクセスできる
- 常識となっていそうですが、今までGeminiの半年無料プランでブラウザからちびちびpythonファイルを投げていた身としては、ローカルに居座ってくれて勝手に参照すべきファイルを漁ってくれる部分に感動しました。自分用にPCのデータは整理してあるので、ディレクトリのパスさえ教えればあとはいい感じにやってくれます。
- Dispatch機能(Claude Desktopのみ)
- これも凄いですね。先述したコーディングのタスクが、1回回すのに4〜5時間かかるものだったのですが、家にデスクトップPCがないので試行回数を稼げていませんでした。使ってないmacをサーバー化するか悩んでいたのですが、この機能のおかげで、家でノートPCを開いておくだけで「計算を走らせる -> アルゴリズムを検討」のループをスマホアプリから指示できました。このおかげで、就活イベントで1日中外出している時に計算成功まで持っていけました。
Claudeのこれらの特性は、私がAIに投げたいと思っていたbullshit job達ととても相性がいいものでした。具体的には、(架空ですが)
- 「アホみたいな量あってディレクトリ各所に子供部屋の如く散乱している研究メモと今あるスライドを元に、新しく用意したスライドの原稿の叩き台を英語で書いて!あ、勿論スライドの前後の接続には気を配ってね!」
- 「このPCからガクチカになりそうな書類を勝手に読んで、企業に評価されそうなストーリーをいくつか作って!」
みたいな感じです。
Obsidianへの移行
存在自体は前から知っていました。AIと相性のいいmarkdown エディターらしいですね。カスタマイズ性が高いのも魅力の1つです。
先述の要因により、私はメモアプリを「人間にとって1番アクセシビリティがいい」Notionから、「人間でもAIでもアクセシビリティがそこそこ高い」Obsidianへの移行を考えていました。しかし、ツールを移行することはかなり面倒です。何故なら、移行は過去積み上げたナレッジの移植が前提となり、これは「データ移送」は勿論、「データ移送後、それぞれのデータを検品し、適した形に整形する」というbullshit jobの塊みたいな作業な訳です。しかもこれらのデータは書き殴りみたいなメモの塊な訳で、フォーマットなど存在しません。例えるなら、これらは私には「犬種の異なる101匹のわんちゃんの💩の集合を1つ1つ確認し、どの犬のものかラベリングした上で包装して所定の場所に郵送する」仕事のように思えていました。
感の鋭い方ならお気付きかとお思いですが、これは私がAIに投げようと思っていた仕事そのものでした。ある日Obsidianのレビューを流し見していたとき、ワークスペースの一角にClaude Codeが陣取っていたのを見てこの事に気付いた私は、以下の事を目標に設定して、Claude Codeに続々と作業を投げました。
Obsidianの作業スペース構築を、ほぼ全て1Claude Codeに投げてみよう
きっかけがないと勉強しない私は、これも1つの機会だと思いやってみました。
ツールは所詮ツールである
ところで私は、研究の中身にAIが干渉してくる事に対して非常に嫌悪感があります。私が「自分がやったとされている事」の詳細を把握しきれないのは怖いからです。なので、基本的に研究に関するAIの操作や出力は、その100%に対して自分で理解し、自分のものにしなければいけないという義務感があるため、むしろAI導入に対しては確認コストが高いという印象でした。(もちろん使い方によると思いますが。)
しかし、Obsidianは所詮自分専用ツールでしかない。ツールは本業に集中するための装置でしかなく、そこに対してAIの出力を私が高い精度で確認する事は、効果に対して労力がかかりすぎます。
そこで、「ツール整備に関してはAIの出力を全面的に信頼する」ことにしました。いわゆる"vibe coding"と呼ばれるものも、この一環だと思っています。最低限の出力チェックだけして、もしバグってたら"バグ取り"というbullshit jobをまた投げればいいわけです。
これは自分の割り切り方の話ですね。
現状と改善点
そうして何を実装したのかは先述した記事を参照してもらうとして、一旦落ち着いた今のワークスペースの現状と問題点、今後のObsidianカスタマイズの展望を、備忘録的に書き残しておきたいと思います。
現在のウィンドウ
番号順に解説していきます。
- Obsidianの「Terminal」拡張機能で追加したターミナルです。基本的にClaude Codeを居座らせています。Terminalの引数の設定から、Obsidian起動時にClaude Codeを起動させるようにしています。また、入力欄の下側は、現在使用しているモデルと今Claude Codeがいるディレクトリ、token使用量を常時表示しています。これは
statuslineという機能らしく、この記事を参考にしました。 - ファイルエクスプローラーです。Vault(プロジェクトディレクトリのようなもの)下の
.mdファイル(と画像ファイル?)を階層構造で表示してくれて、検索もできます。使用感としては、VScodeの右サイドバーに近いです。 - いわゆる「メインペイン」です。起動時は画像のようにダッシュボードを表示させる設定にしていますが、各ページを編集する際はここにマークダウンファイルを表示させています。デフォルトだと編集モードでも編集していない部分はプレビューの表示となるのがちょうどいいです。ここの使用感はオートフィルしてくれるNotionぽいです。拡張機能を入れると
/コマンドもどきも使えます。 - 「Calendar」拡張機能で使えるカレンダーです。基本的に、日々の進捗は「daily note」という日毎の
.mdに書き殴っている(それを転記するプログラムはClaudeに作ってもらいました)のですが、そのdaily noteはここをクリックして生成することが多いです。あと日付を覚えていられないのでカレンダーは参照する機会が多いのですが、そんな際にも便利です。 - ブックマークバーです。確かデフォルトの機能のはずです。あると便利ですが頻度は低いのでよくわからんところに小さめに置いてます。
- 「Thino」という拡張機能で使えるThinoです。私もあまりよくわかっていませんが、自分専用のTwitterだと思ってもらえればいいと思います。「ナレッジはとりあえず全部投げておいて、後から使うものを取捨選択する」という主義の私にとって、後から「これいつだったけ、、、?」みたいになりそうなくらいの、大したことないことを放り投げるのに便利です。書くためのコストがほぼ0なのが素晴らしい。
- 標準機能の「グラフビュー」です。Obsidian紹介の冒頭にありがちなアレです。何が便利なのかは知りませんが、ただドキュメントが積み重なっていくのを見るのが楽しいので表示してます。将来最初にクビになるのはここでしょう。
問題になりそうな点
今解決する気は毛頭ないですが、将来その気になったら改善するかもしれない問題点を挙げておきます。
- YAMLマターが.mdを汚染するらしい
- 前編で「TemplaterによるNotion化」みたいな話をOpusくんがしていたと思うのですが、あれは各々のドキュメントの冒頭にYAMLマターをぶち込むことで実装されています。どうやら、AIがそのドキュメントを読み込むとYAMLマターがノイズになってしまう、というのを耳にしました。今はそこまで大量のドキュメントを読み込ませて何かする、というタスクは0なのですが、将来的に困ったらまたOpus君にぶん投げようかな、というくらいに思っています。
- メモ以外のデータを一緒に格納すべきか?
- ディレクトリ構成で今一番迷っているのはここですね。研究データの管理と一緒にドキュメント管理した方が便利な気もしますが、研究データをAIに無闇に触れられたくもないので、今はドキュメント専用のディレクトリを用意しています。今のところは「必要なとき絶対パスを指定して食わせる」運用でなんとかなっているので、困っていません。
おわりに
ここまで読んでいただきありがとうございました。個人的にNotionからObsidianへの移行で思ったのは、「Claude Codeの登場によって、非情報系の自分でもここまでツールをカスタマイズできるようになった」ということです。
普通、世間一般のサービスはある程度のカスタマイズの幅がユーザーに与えられています。しかし、それは「サービス側が用意した幅」であり、その自由度はそこまで高くありません。しかも、その自由度を上げようと思うと専門知識が必要になるのが普通だと思います。
ゲームなんかがいい例で、サービスが提供している自由度を越えようと思うと、有志が開発したModを入れることが最有力の選択肢になると思います。しかし、一般のゲームにModを入れることは、システムに疎い人たちからすればかなりハードルが高く、しばしば実現困難なレベルだと思います。
その点、Obsidianはカスタム前提になっていて、有志の方々が開発した拡張機能も数多くあるわけです。ただその拡張機能を逐一検索するのがめんどくさく、今回のようにAIに丸投げするという戦法を取りました。
同じゲームの例でObsidianを例えるなら、マイクラだと思います。あのゲームの特にPC版は公式がMod導入をサポートしているくらい楽チンで、平たくいうと最初に1個めんどくさいことをすれば後はダウンロードしたzipを解凍して所定のフォルダに入れれば終わるものがほとんどです。今回は、そのMod選びを面倒くさがったので、「アイテム自動仕分けをもっと楽に出来るMod入れといて!」みたいなことをAIに投げたわけです。
自分のようなあまりプログラミングに詳しくない人でもここまで出来るなんて、本当いい時代に生まれたと思っています。ありがとうございました。
-
Obsidianのインストールと、各種拡張機能のインストールと有効化、terminal拡張機能の設定とimporterによるNotionデータの輸送は私がやりました。そこから先の整備は、全部ObsidianのterminalペインからClaude Codeにアクセスして放り投げました。 ↩
