/note/tech

The Magic of Claude Code

要約:

■ 1. ObsidianとClaude Codeの組み合わせ

  • Obsidianの特徴: Markdownファイルとしてコンピューター上に保存される(NotionやEvernoteとの違い)
  • AI coding toolsとの相性: プレーンテキストファイルであることがAIコーディングツールにとって理想的なターゲットとなる
  • ノート取りOSへの進化: Cursorでvaultを開くことから始まり、最終的にSSH経由で携帯からアクセスできるサーバーを自宅に立ち上げるまで依存するシステムに成長
  • Dan ShipperのAI & I Podcast: このセットアップについて詳しく語った(トランスクリプトやポッドキャストで詳細確認可能)

■ 2. Claude CodeがCursorより優れている理由

  • すべてにおいて優れているわけではない: 特定の状況において例外的に優れた要素が組み合わさって機能する
  • 既存コードベースへの適用を超える: 新しいものを完全に構築する用途にますます使われている
  • ターミナルベースのアプローチ: アクセシビリティとネイティブUnixコマンド統合のトレードオフ

■ 3. Unix哲学の原則

  • Doug McIlroyによる定式化(1978年Bell System Technical Journal):

    • 各プログラムは一つのことをうまくやる。新しい仕事には、古いプログラムに新機能を追加するのではなく、新しく作る
    • すべてのプログラムの出力が別の未知のプログラムの入力になることを想定する。余計な情報で出力を散らかさない。厳密な列形式やバイナリ入力形式を避ける。インタラクティブ入力を強制しない
    • ソフトウェアやOSを早期に試せるように設計・構築する(理想的には数週間以内)。不格好な部分を捨てて再構築することを躊躇しない
    • スキルのない人手よりもツールを使う。そのためにツールを構築し、使い終わったら捨てることも厭わない
  • Peter H. Salusによる要約(1994年A Quarter-Century of Unix):

    • 一つのことをうまくやるプログラムを書く
    • 一緒に動作するプログラムを書く
    • テキストストリームを扱うプログラムを書く(普遍的なインターフェースだから)

■ 4. LLMとUnix哲学の親和性

  • 50年前の原則: これらの原則はまさにLLMがツールを使いたい方法と一致する
  • パイプ処理: モデルは常に出力を入力に「パイプ」している(その間に独自のファジネスを使用)
  • Unixの|コマンド: 一つのコマンドの出力を別のコマンドの入力に繋げる
  • ツールの失敗パターン: モデルがツールを効果的に結合できない場合、ほぼ常にツールが過度に複雑だから
  • 完璧な適合性: Unixを動かすコマンドがLLMによる使用に完璧に適している理由は、シンプルであることと十分に文書化されていること

■ 5. ファイルシステムアクセスの重要性

  • The Pragmatic Engineerの記事: Claude Codeがどのように構築されているかの深掘り記事で答えが明らかになった
  • ChatGPTとブラウザ版Claudeの致命的な欠陥:
    • 会話間でメモリがない
    • 狭いコンテキストウィンドウ
  • ファイルシステムによる解決: Claude Codeは自分自身にノートを書き、知識を蓄積し、継続的な集計を保持する。状態とメモリを持ち、単一の会話を超えて考えることができる
  • すべてを変える: ファイルシステムアクセスがゲームチェンジャーとなる

■ 6. AI Overhang(AI能力の余剰)

  • 2022年のGPT-3 API: モデルがその時点より良くならなかったとしても、ユースケースを発見するのに10年かかると予測していた
  • 実際の進化: 推論モデルがツール呼び出しを信頼できるものにした
  • Product Overhang: モデルが特定のことをできるのに、AIが動作する製品がその能力を捉えるように構築されていないこと
  • Boris Cherneyの発見: Claudeがファイルシステムを探索することは純粋なproduct overhangであり、モデルには既にその能力があったが、その能力を中心に構築された製品がなかった
  • 設計哲学: Claude Codeは、過度に設計されたインターフェースを通じて制限するのではなく、モデルの能力を捉えることで信頼できるエージェントシステムを構築するための青写真として機能する

■ 7. コードを超えて

  • Claudesidianのオープンソース化: Claude Code + Obsidianセットアップで使用するツールとコマンドをまとめたもの
  • アップグレードツール: 中央で変更が行われた場合、それを自分のClaudesidianに取り込み、AIが更新されるファイルに変更を加えたかをチェックし、スマートにマージを試みる
  • Unix哲学の踏襲: シンプルで、一つのことをうまくやり、一緒に動作する構成可能なツール

■ 8. Inbox Magic(開発中プロジェクト)

  • Gmail toolsへのアクセス: メールEAのように動作するClaude Codeリポジトリ
  • 現在の機能:
    • 検索実行やメール送信
    • トリアージ
    • メールでの文体をトレーニングし、より効果的にメールを下書きする
  • 高度な機能の可能性: 受信トレイ内のすべての旅行関連メールを見つけ、旅行習慣のプロファイルを構築し、ChatGPT/Claudeが好みに合わせた旅行リサーチを行えるようにする
  • ファイルへの書き出し: ChatGPTとClaude Codeは両方ともメールにアクセスできるが、通常は一度に1〜2通のみ。このシステムはファイルに書き出したり多くのトリックを実行できる

■ 9. 重要なポイント

  • ファイルシステムの活用: LLMのメモリと状態の欠如を回避するための優れたツールであり、もっと頻繁に使用されるべき
  • ツール呼び出しの設計: Unix哲学に従うことに集中する
  • Claude Codeの青写真: ファイルシステム + Unix哲学が、今日浮かんでいる複雑なマルチエージェントシステムではなく、信頼できてデバッグ可能なAIエージェントを構築するためのテンプレートであるべき
  • 実装の戦術: ツール呼び出しを自分のプロジェクトに組み込む際は、シンプルに保ち、メインモデルスレッドがそれらを「パイプ」できるようにすることが鍵
  • 解決すべき課題: すべてのエージェント/チャットボットにおいて、コンテキストウィンドウを通さずに物事をパイプする能力が必要
  • ユースケースの発見: LLMのユースケースを見つけられない人は十分に努力していない