VPS Notes
VPS

Obsidian × Claude Code で Karpathy の LLM Wiki を作って、やめた理由: 一次ソースをそのまま読ませる方がよかった

Obsidian の vault を Claude Code に管理させる「LLM Wiki」を作って使いました。フォルダ構成と 6 つのスキルを公開します。ただ、毎日 20 分の取り込みに見合う答えが返らず、wiki を作るのをやめて一次ソースを直接読ませる形に落ち着きました。

obsidianclaude-codellm-wikiclaude

「Obsidian と Claude Code を連携したい」「Karpathy の LLM Wiki を作ってみたい」と調べている人向けに、先に結論を置きます。

私は Obsidian の vault を Claude Code に管理させる「LLM Wiki」を作り、しばらく毎日使ったうえで、wiki を作るのをやめました。 素材を 1 本取り込む (ingest) たびに 20 分ほどかかるようになり、それを毎日続けていました。一方で、wiki に質問する (query) のは 2〜3 日に 1 回です。しかも LLM がまとめた wiki のページは、自分で読んでもよく分かりませんでした。

今は、自分で書いたメモや打ち合わせの要約 (一次ソース) を、query がそのまま読みにいく形にしています。これから作るなら、wiki は作らずに、一次ソースと「質問に答えるスキル」だけで始めるのがおすすめです。

以下、作った構成をそのまま見せたうえで、やめた理由を書きます。

LLM Wiki とは

Andrej Karpathy が提唱した、LLM に個人の wiki を編集させる使い方です。人は素材 (記事のクリップ、メモ、議事録) を集めて方向を決めるだけで、要約、概念ページの作成、ページ同士のリンク、矛盾の指摘は LLM が受け持ちます。人が読み書きするノートではなく、LLM が維持する知識ベースという考え方です。

Obsidian は Markdown のファイルをフォルダに置くだけのノートアプリなので、Claude Code がそのまま読み書きできます。MCP やプラグインを入れなくても、vault のフォルダで Claude Code を起動すれば連携は済みます。

この記事で使う環境

作った構成

vault は 3 つの層に分けました。

vault/
├── 00_pools/        未整理の着想
│   ├── memos/       自分のアイデアのメモ (LLM は読み書きしない)
│   └── sessions/    LLM との会話の記録
├── 10_raws/         生ソース (LLM は読むだけ)
│   ├── clips/       ウェブ記事のクリップ
│   ├── notes/       自分の記事、手で書いた一次情報
│   ├── meetings/    会話の記録から作った議事録
│   └── assets/      画像など
└── 20_wiki/         LLM が維持する wiki
    ├── sources/     素材 1 本ごとの要約
    ├── entities/    人・製品などのページ
    ├── concepts/    考え方のページ
    ├── index.md     全ページの索引
    └── log.md       作業の記録

10_raws の素材には、frontmatter に status を付けます。自分で書いている間は draft、取り込んでよくなったら stable に変え、LLM が取り込み終えると ingested にします。取り込まないと決めたものは archived です。

スキルは 6 つ作りました。

スキル やること
session 今の会話を要約して 00_pools/sessions/ に残す
meeting 会話の記録を議事録にして 10_raws/meetings/ に置く
note note.com の自分の記事を取ってきて 10_raws/notes/ に置く
ingest stable の素材を 1 本読み、要約ページと関連する概念ページを作って、索引とログを更新する
query wiki の索引から関連ページを探し、出典つきで質問に答える
lint wiki 全体の矛盾、古い記述、孤立したページを洗い出して直す

CLAUDE.md には「あなたは汎用のチャットボットではなく、この wiki の編集者として振る舞う」と書き、人と LLM の役割分担、フォルダごとの読み書きの決まり、ページ名の付け方などを細かく決めました。

使ってみて: ingest が重くなっていった

素材を stable にして /ingest を実行すると、要約ページができ、関連する人や考え方のページが増え、リンクが張られていきます。

ただ、wiki が育つほど ingest が重くなりました。1 本の素材が、既存の 10〜15 ページの更新に波及することがあります。新しい素材の内容が既存のページと食い違っていないかを確かめ、索引とログも書き直すからです。1 回の ingest に 20 分ほどかかるようになりました。

それを 1 日 1 回、毎日回していました。一方で、wiki に質問するのは 2〜3 日に 1 回です。質問 1 回のために、毎日 20〜30 分の取り込みを回していることに気づいて、ばかばかしくなってやめました。

LLM が作った wiki は、読んでも分からない

もう 1 つの理由は、wiki のページの中身です。LLM がまとめた概念ページや要約ページは、自分で開いて読んでも、よく分からないまとめになりがちでした。

一方で、役に立ったのは query でした。聞きたいことを聞くと、出典つきで答えが返ってきます。つまり、私が使っていたのは「wiki」ではなく「質問すると答えてくれること」だけでした。

Obsidian の画面を開くのは、自分で一次ソースを書くときだけです。LLM が作った wiki のページは、結局見なくなりました。

今の形: 一次ソースをそのまま読ませる

そこで、wiki を作るのをやめました。今は query の参照先を、wiki (20_wiki) ではなく生ソース (10_raws) にしています。自分のアイデアのメモや打ち合わせの要約を、質問のたびに LLM がそのまま読みにいきます。

取り込みの時間はゼロになり、答えの出典は自分で書いた文章そのものです。

一次ソースが何千本にもなれば、毎回全部を読ませるのは難しくなるはずです。そのときは、索引だけを LLM に作らせるといった中間の形が考えられます。

これから作る人へ

自分のために使うなら、次の順で始めるのがよいと思います。

  1. Obsidian の vault に、自分の言葉で一次ソースを書きためる (メモ、議事録、調べたこと)
  2. その vault を読んで出典つきで答える query のようなスキルを 1 つ作る
  3. 読ませる量が増えて遅くなったら、そのとき初めて索引や要約を LLM に作らせる

wiki は「LLM が読みやすい形」に作り直すものです。読ませる LLM が一次ソースを十分速く読めるなら、作り直す手間に見合いません。

Claude Code に長く覚えさせたいことの書き方は、CLAUDE.md と memory の書き方 と Claude Code のスキル に書いています。常駐させて手順を育てていく例は、iris の記事 です。iris のスキルは 20〜35 行の失敗の記録で、wiki のまとめと違って人が読んでも分かります。

つまずいた点

まとめ