Claude コードのリバースエンジニアリング:技術ガイド
AIの急速な進化を続ける昨今、Claude Codeのような高度なモデルの内部構造を理解することは極めて重要です。本記事では、Claude Codeの逆アセンブルを可能にする詳細な技術ガイドを提供します。特に、複雑な4.6MBのminifyされたJavaScriptコードベースを解析するために開発された手法とツールに焦点を当てます。ここでは、従来のコード復元を回避し、実行時の振る舞いとAPIデータに注目した実践的なアプローチを探求します。
Minifyされたコードの課題
強力なAIエージェントであるClaude Codeは、極度にminifyされたJavaScriptクライアントにより、大きな解析上の課題を提起します。初期の逆アセンブルの試みはソースマップに焦点を当てましたが、これらの手法は全体的なアーキテクチャを理解するには不十分であることが判明し、最終的には推奨されなくなりました。本ガイドでは、APIリクエストコードへの「モンキーパッチ」と、その結果得られるログの分析を中心に据えた、より効果的な「v2」アプローチを紹介します。
手法:モンキーパッチとログ解析
中心となる戦略は、Claude Codeの cli.js
ファイルを変更してAPIリクエストとレスポンスを傍受し、ログに記録することです。これは以下の手順で実行されます。
cli.js
の特定: Claude Codeのインストールディレクトリ内にある主要なクライアントスクリプトを特定します。- コードの美化:
js-beautify
のようなツールを使用して、Minifyされたコードを読みやすい形式に整形します。 beta.messages.create
のパッチ: LLM APIとのやり取りを担当するメソッドにカスタムロジックを注入します。このパッチにより、各APIコールとレスポンスの詳細なログをキャプチャするmessages.log
ファイルが作成されます。
このプロセスにより、さまざまなタスクシナリオにおけるClaude CodeとLLM APIとのやり取りに関する重要なデータを収集することができます。これらのログを分析することで、開発者はClaude Codeの操作構造とロジックを推測できます。
可視化による解析の高速化
逆アセンブルプロセスを効率化するため、「v2」アプローチにはログ解析ツール(parser.js
)とインタラクティブな可視化ツール(visualize.html
)が含まれています。このツールを使用すると、生成されたログファイルを読み込み、長時間の会話の分析を容易にすることができます。可視化は、一般的なプロンプトを自動的に識別し、動的なプロンプト注入とコンテキスト管理の理解を助けます。
逆アセンブルされた主要コンポーネント
この綿密な分析を通じて、Claude Codeのいくつかの主要な内部プロセスが逆アセンブルされました。それらは以下の通りです。
- クォータチェック(Quota Check): Haiku 3.5を使用してAPIクォータを確認します。
- トピック検出(Topic Detection): 特定のプロンプトとHaiku 3.5を使用して新しいトピックを識別しますが、会話コンテキストなしで動作します。
- コアエージェントワークフロー(Core Agent Workflow): システムワークフロープロンプトによって駆動され、システムリマインダーの開始/終了プロンプトによって強化され、動的な情報読み込みと短期記憶の統合を行います。このワークフローは主にSonnet 4モデルを使用します。
- コンテキスト圧縮(Context Compaction): 会話履歴を単一のブロックに圧縮してコンテキストスペースを節約するプロセスで、こちらもSonnet 4モデルを使用します。
- IDE統合(IDE Integration): IDEからの開いているファイルパスをプロンプトに組み込み、IDE固有のツールを登録してコンテキスト認識を向上させます。
- Todo 短期記憶管理(Todo Short-Term Memory Management):
TodoWrite
ツールを活用して、JSONファイルを介してタスクと短期記憶を管理し、メモリ検索をコアワークフローに統合します。
プロンプトとツールの設計から学ぶ
リポジトリ内の prompts
および tools
ディレクトリには、Claude CodeがLLMとやり取りし、タスクを管理するように設計されている方法に関する貴重な洞察が含まれています。これらのコンポーネントを研究することで、プロンプトエンジニアリングとエージェント設計の原則をより深く理解することができます。
この詳細な技術的探求は、Claude CodeのようなAIエージェントの洗練されたアーキテクチャを理解することに興味のあるすべての人にとってのロードマップとなります。LLMを分析に活用し、実践的なコード変更技術を採用することで、これらの強力なテクノロジーに対するより深い理解を解き放つことができます。