Claude Codeリークから見えた5つの重要な発見

Anthropic・Claude・ダリオアモデイ
この記事は約15分で読めます。

今朝発覚したClaude Codeのソースコードリークは、セキュリティ研究者によって公式npmパッケージ内に60MBのソースマップファイルが発見されたことに端を発する。50万行以上のTypeScriptコードが露出し、モデルレジストリ、ランタイムツール、スケールゲーティングなどが明らかになった。注目すべきは、Capybaraという内部モデルエイリアスの存在、睡眠依存型記憶統合を模倣したドリーミングシステム、LLM駆動のメモリ検索機構、公開リポジトリへの貢献時にAIであることを隠すアンダーカバーモード、そして複数のワーカーエージェントを統括するコーディネーターモードという5つの重要な発見である。これらは生産環境におけるAIエージェント設計の最前線を示す貴重な事例となっている。

5 Takeaways from the ClaudeCode Leak
Anthropic leaked their entire ClaudeCode source code for the second time in two months. 512,000 lines of TypeScript, sit...

Claude Codeソースコードリークの全貌

今朝、多くの人がClaude Codeのリークに関するニュースを目にしたと思います。事の発端は、セキュリティ研究者のChiaon Showさんによる驚くべき発見でした。彼は公式のClaude Code npmパッケージの新バージョンに、60メガバイトのソースマップファイルが含まれていることを発見したんです。そしてそのファイルには、Claude CodeのTypeScriptソースコード全体への参照が含まれていて、そのソースコードがAnthropicのR2クラウドストレージバケットにそのまま置かれていたんですね。

つまり、基本的に誰でもダウンロードできる状態でzipファイルとして存在していたわけです。実はこれ、初めてのことではないんです。最近では2月にも同じことが起きています。Anthropicで同じ問題が発生していたんですが、今日また起きてしまったということです。

私は実際の生のソースコードを調べてきました。ブログ記事やレポート、Twitterのスレッド、誇張されたツイートではなく、実際のコードそのものを見てきたんです。そして、AI研究やエージェント工学に取り組んでいる方、興味がある方にとって、特に興味深いと思った5つの発見を共有したいと思います。

この動画は短めにする予定です。私が特に興味深いと思ったことをざっと説明していきますね。ただ、その前に、モデルについて少し話しておきましょう。皆さんが気になっているのはそこだと思いますから。コードリークからモデルについて何が分かったのか、という点です。

モデルレジストリの詳細

こちらが起きたことの簡単な概要です。1,900以上のファイル、50万行以上のTypeScriptがリリースされました。ランタイムツールやスケールゲーティングの多くも公開されました。

モデルレジストリについてですが、これはconfigs.typescriptというファイルに含まれていて、かなりシンプルなものです。システムが認識している全てのモデルに対して設定オブジェクトがあり、ファーストパーティ、Bedrock、Vertex、Foundryのためのidが設定されています。

現在のデフォルトは、最新モデルであるClaude Opus 4.6がMaxサブスクライバー向けで、それ以外の全員にはClaude Sonnet 4.6となっています。Claude Haiku 4.5はご存知の通り、小型で高速なモデルです。全て予想通りの内容ですね。

そして、コード内にはClaude Opus 4.7や5.0といった次世代モデルのidは一切ありませんでした。コードベースのどこにも次世代モデルのidは見当たりませんでした。

コード全体に「model launch」というコメントが散りばめられていて、これは新しいモデルが最終的に出荷される際の手動チェックリストのようなものとして使われているようです。しかし、今のところコードには何も事前ロードされていませんでした。

Capybaraの正体

では、Capybaraとは何なのでしょうか。Capybaraは最近ソーシャルメディアで大きな注目を集めました。次世代モデルだと考える人もいれば、サイバーセキュリティ上の脅威となる可能性のある神話的な次世代モデルかもしれないと考える人もいました。

コードから見た限りでは、Capybaraという用語は確かに登場します。そしてそれは、Anthropicの社内従業員向けのモデルエイリアスであるように見えます。新しいモデルファミリーとしてはまだ確認されていません。

仕組みはこうです。Anthropicの従業員は、内部では自分たちをantsと呼んでいます。ユーザータイプは文字通りantです。そして、Growthbookのフィーチャーフラグとして「Tangu Ant model override」というものがあり、これがモデルエイリアスのリストを動的に配信します。そしてCapybaraはそのエイリアスの一つなんです。つまり、実行時に何らかの内部モデルバリアントを解決するわけです。

基本的に、従業員はCapybaraが何であれ、それを使用できるということです。Capybaraが何らかの独自のモデルチェックポイントであることは分かっています。OpusやSonnetとは異なるものです。独自の思考フォーマットを持っていて、Opusとは互換性がありません。

それが事前リリースモデルなのか、実験的なバリアントなのか、あるいは何らかのファインチューニングされたビルドなのか、コード自体からは分かりません。しかし、いずれにしても興味深いことです。

重要なのは、内部コードネームの全てがリークされたnpmパッケージには含まれていなかったということです。私たちが見ているのは、コードコメントや変数名自体を通してリークしたものだけです。Tanguという名前がたくさん出てきますが、これはClaude Code自体のことです。これがコードネームなんです。

モデルに関する結論としては、次世代モデルのidはなく、Claude 5のようなクレイジーなものもありません。しかし、Anthropicの従業員が使用している内部モデルエイリアスとしてCapybaraを見ることができたのは興味深かったですね。Capybaraが正確に何なのか、近いうちに分かるといいですね。

彼らが内部で最新の最先端モデルを使用しているというのは理にかなっていますが、まだ確認されていません。

発見1:ドリーミングによるメモリ統合

それでは5つの発見に移りましょう。発見その1は、ドリーミングメモリコンソール統合という概念です。これはリークされたコードベース全体の中で、私が最も興味深いと思ったものです。

具体的にはautodreamと呼ばれています。これは自律的なメモリ統合を実行するバックグラウンドプロセスなんです。本当に興味深いアイデアです。

セットアップはこうなっています。Claude Codeには永続的なメモリシステムがあり、マークダウンファイルのディレクトリがあります。Claude Codeをセッションを跨いで使用していると、観察事項、修正、好みなどが蓄積されていきます。こういった生のシグナルがたくさん溜まっていくわけです。

問題は、こういった観察事項を蓄積し続けると、肥大化が起こり、明らかに時間の経過とともに矛盾が生じ、もはや関連性のない古い情報が溜まってしまうということです。そこで彼らはこのドリーミングシステムを構築したんです。

これはゲートシステムで動作します。最も安価なチェックから始めます。まず、前回の統合から少なくとも24時間経過しているか。これは単なるタイムスタンプの比較です。次に、それ以降少なくとも5つのセッションが蓄積されているか。これにはトランスクリプトファイルのスキャンが必要です。3つ目は、ロックを取得できるか、つまり他のプロセスが同時にドリーミングしていないか、ということです。

これらがゲートです。この3つのゲート全てを通過すると、フォークされたエージェント、またはスポーンされたエージェントと呼ばれるものが生成されます。これは読み取り専用のbashアクセスを持つサンドボックス化されたClaudeインスタンスです。

このエージェントは統合プロンプトと呼ばれる詳細なプロンプトを受け取ります。そして4つのフェーズを経ていきます。

フェーズ1はオリエンテーションです。既存のメモリをインデックスで読み取って、全体像を把握します。フェーズ2は収集です。日々のログやセッショントランスクリプトから新しいシグナルを探しますが、非常に狭い範囲で行います。ファイル全体を読むようなことはしません。

フェーズ3は統合です。新しい情報を関連する既存のトピックファイルにマージします。相対的な日付を絶対的なものに変換します。矛盾する事実は削除します。

そしてフェーズ4は刈り込みです。インデックスが200行以下に収まるようにします。必要に応じてファイルを削減するわけです。

これによって、2段階のメモリアーキテクチャが生まれます。セッション中の高速なエピソード記憶のキャプチャと、オフラインでのゆっくりとした意味的統合です。これは神経科学における睡眠依存型記憶統合のモデルを直接的に反映しています。だからドリーミングとかautodreamと呼ばれているわけです。

ここではChirosが関与しています。Chirosは常時オンの永続モードで、基本的に永続的なセッションです。常にオンのままなんです。これは通常モードとは異なります。私たちがClaude Codeで慣れ親しんでいる通常モードとは違うんですね。

OpenClaudeに詳しい方なら、似たようなアイデアだとお分かりいただけると思います。エージェントがリアルタイムでメモリを整理する代わりに、追記専用の日々のログファイルに書き込むんです。OpenClaudeを使っている方なら、これも同じようにするはずだとご存知でしょう。

そして、先ほど説明したドリームプロセスが、これらの日々のログを整理されたトピックファイルに蒸留し、インデックスを更新します。つまり、サンドボックスエージェントがこれらのログを全て確認し、ファイルをマージし、時代遅れや関連性のなくなったものを削除するわけです。

コードでは、このドリームプロセスがUI上で独自のタスクトラッキングを持っていることが分かりました。ユーザーは「ドリーミング中、7セッションをレビュー中」といったバックグラウンドタスクを見ることができ、必要に応じて停止することもできます。全てユーザーが管理できるようになっています。

発見2:LLM駆動のメモリ検索

発見その2は、LLM駆動のメモリ検索です。これはメモリシステムと関連しています。数十個のトピックファイルを持つメモリシステムがあるわけですが、現在の会話にどれが関連しているかをどうやって決めるのでしょうか。

2026年の明白な答えは、ベクトル埋め込みでしょう。クエリを埋め込み、メモリを埋め込み、コサイン類似度を計算して完了。これが通常のRAGシステムですね。他のエージェントフレームワークで慣れ親しんでいる従来型のものです。

しかし、Claude Codeはそうしないんです。彼らは言語モデル自体を検索エンジンとして使用します。ユーザーのクエリが入ってくると、システムは全てのメモリファイルをスキャンし、フロントマターを抽出します。ヘッダーから名前、説明、タイプのフィールドだけを取り出すんです。

これらをマニフェストにフォーマットし、Sonnetへのサイドクエリと呼ばれるものを実行します。これは軽量な並列APIコールで、システムプロンプトには「あなたはClaude Codeに有用なメモリを選択しています。最大5つのファイル名を返してください」と書かれています。

レスポンスはJSONとして返ってきます。そして、この実装方法には本当に興味深い詳細があります。

例えば、会話の中で最近使用されたツールを追跡します。bashツールをよく使っている場合、この選択機能には、bashに関するリファレンスドキュメントをスキップするように指示されます。なぜなら、会話には既にこのツールの実際の使用例が含まれているからです。

ドキュメントを表示してもノイズになるだけで、必要ないんです。しかし、システムはこれが賢いところなんですが、それでもその特定のツールに関する警告や注意点、問題点は表示します。これが彼らのアンチノイズシステムです。

これは興味深いですね。なぜなら、従来の埋め込みシステムの代わりに、説明したようなSonnetを使ったLLM駆動のメモリ検索システムを使用している本番システムだからです。そして明確な利点があります。

言語モデルは、コサイン類似度や従来のRAGシステムではできない方法で、意味的な関連性について推論できるんです。特定のトピックに関するメモリが、たとえ特定のキーワードを共有していなくても、クエリに関連していることを理解できるわけです。

もちろん、APIコールが増えるため、コストは高くなるかもしれません。しかしこれがフレームワーク自体であり、コストを抑えるためにOpusではなくSonnetを使用しているんです。

発見3:アンダーカバーモード

発見その3はアンダーカバーモードです。これは私が人々が話しているのを見た、やや物議を醸すものです。これは、公開リポジトリに貢献する際にClaudeがAIであることを明かさないようにするシステムです。

しかし、ここには重要な文脈があります。このアンダーカバーモードのファイル内の全てのコードは、内部従業員向けのユーザー変数を持つ環境変数によってゲート制御されています。

つまり、これはAnthropicの内部ビルドにのみ存在するということです。公開npmパッケージの一部ではありません。外部ビルドでは、全ての関数がノーオペレーションを返します。これは覚えておくべき重要なポイントです。

目的はヘッダーに明確に記載されています。公開オープンソースリポジトリへの貢献のためのセーフティユーティリティです。

このモードがアクティブな時、Claude Codeはコミットやプルリクエストから全ての帰属情報を削除し、内部情報の漏洩を防ぎます。しかし、それ以上のことをしています。

アンダーカバーモードで注入されるシステムプロンプトは非常に明確です。基本的にこう言っています。あなたは公開リポジトリで潜入作戦中です。あなたのコミットにはAnthropicの内部情報を一切含めてはいけません。正体がバレないようにしてください。

モデルのコードネームやバージョン番号、内部プロジェクト名、Claude Codeというフレーズを含めてはいけません。AIであることへの言及や共著者行も入れてはいけません。人間の開発者が書くようなコミットメッセージを書く必要があります。かなり興味深いですね。

これにはセキュリティ上の目的があります。Anthropicには、内部コードネームが公開コミット履歴に表示されないようにしたい正当な理由があります。知的財産の一部ですからね。

このモードの主な目的は、Anthropicの従業員が公開リポジトリに貢献できるように設計されているということです。しかし、オープンソースコミュニティ全体で、AI透明性とコードの出所に関する疑問を確実に引き起こすでしょう。

AIを構築している企業がAIの作者性を隠すツールを構築した場合、コードの出所にとってそれは何を意味するのでしょうか。そしてより広く言えば、AIを構築している企業が、公開への貢献においてその使用を隠すためのシステムを設計している場合、それは透明性について何を物語っているのでしょうか。

正当なセキュリティ上の理由がある一方で、AIに対して明確に人間の開発者のふりをしなければならないと指示している場合、透明性についての妥当な疑問もあります。興味深い発見です。

発見4:コーディネーターモード

発見その4は、コーディネーターモードです。これはフィーチャーフラグの後ろに隠された完全なマルチエージェントオーケストレーションシステムでした。

これが有効になると、Claude Codeは単一のエージェントから、コードに直接触れることのないコーディネーターに変化します。ワーカーエージェントの生成、継続、停止のみを行います。

Claude Code本体はオーケストレーター、またはコーディネーターということですね。そしてコーディネーターは、コードベースで見た非常に大規模なシステムプロンプトを持っています。

このシステム、このモードでのワークフローには4つのフェーズがあります。まずはリサーチです。ワーカーが並列で送り出され、複数の角度からコードベースを調査します。

次は統合です。ここに最も意見を持った意思決定が存在します。コーディネーターは、実装作業を指示する前に、ワーカーからのリサーチ結果を個人的に理解しなければなりません。

プロンプトは文字通り「あなたの調査結果に基づいて」というフレーズを禁止しています。代わりに、コーディネーターは具体的なファイルパス、行番号、正確に何を変更するかを含む実装仕様を書かなければなりません。

実装はファイルセットごとにシリアルで行われます。2つのワーカーが同じファイルを編集することはありません。そして検証は、変更を実装したワーカーとは別のワーカーによって行われます。なぜなら、実装したワーカーは実装の前提を持っているからです。新鮮な目が必要なんです。

検証基準もかなり高いです。プロンプトには「検証とはコードが動作することを証明することであり、存在することを確認することではない。不十分な作業を承認する検証者は全てを台無しにする」と書かれています。

ワーカーには、機能を有効にしてテストを実行し、型エラーを無関係として却下するのではなく調査し、真に懐疑的であるよう指示されています。このコーディネーターモードシステムが適切に機能するための重要なプロンプトです。

そして、スクラッチパッドシステムというものがあります。これは興味深いです。共有ディレクトリで、ワーカーは許可プロンプトなしで読み書きできます。これにより、永続的なワーカー間の知識共有が可能になります。

コーディネーターはワーカーに、ワーカー間の知識共有にこれを使用してください、仕事に合うようにファイルを構造化してください、と指示します。ワーカーは同じコードベースで作業するために必要な知識を共有できるんです。

発見5:バディ機能

発見その5はバディです。これは楽しいアイデアですね。AIコンパニオンです。バディはまだリリースされていない機能です。たまごっちスタイルのASCIIペットで、決定論的な手続き型生成を使用しています。

ここに18種類が見えますね。猫、幽霊、カピバラ、きのこ、ペンギンなど、いろんな動物がいます。楽しいアイデアです。

これを技術的に興味深くしているのは、手続き型生成システムです。全てのユーザーは、ユーザーIDから導出された決定論的なコンパニオンを取得します。システムはユーザーIDを特定のシードでハッシュ化し、そのシードから全てを導出します。種、目のスタイル、帽子、レア度、全てです。

それぞれ異なるアニメーション、異なる長さとサイズ、異なる目のスタイルを持っています。そして、ガチャに似たレア度システムもあります。コモンが60%の確率、シャイニーバリアントが1%の確率、レガシーが1%の確率です。

これは本当に賢いアーキテクチャ決定で、ボーンズ対ソウルの分離があります。

ボーンズは決定論的な物理的特性です。種、レア度、目、統計値。これらはストレージに永続化されません。ユーザーIDからそのシードによって、読み取りのたびに再生成されます。

そしてソウルはモデル生成された部分です。これは名前と性格で、最初に孵化したときに作成され、設定に保存され、セッション間で永続化されます。

コンパニオンには、あなたに話しかけるための小さな吹き出しがあります。小さな機能ですが、楽しいものです。そしてこれは、生成ルールが時間とともに進化する必要があるシステムにおいて、楽しく永続的で手続き的に生成されたエンティティを構築するケーススタディのようなものです。

クレジットと今後

これらは功労者の方々です。先ほど言ったように、Chiaon Showさんの最初のツイートが私が見たものです。もっと早いものがあったかもしれません。そして、リークされたコードの特定の要素を非常に迅速にコピーまたは移植した人々もいました。

こちらはPythonでClaude Codeを作ったもので、現在Rustで取り組んでいます。これはリバースエンジニアリングされたバージョンで、さまざまな機能を再構築したものです。そしてもちろん、単にソースをミラーリングした人々もいました。

今日の動画は以上です。今朝このニュースを見たので、すぐに出したかったんです。コードベースから学べる教訓が興味深いと思いました。

全てのClaude codingとClaudeはAnthropicの商標であると言っておくべきでしょう。ソースコードはAnthropicの所有物です。ですから、私はClaude Codeの生のソースマテリアルをミラーリングしたり移植したりするほど勇敢ではありません。

しかし、その中に何があったかから、いくつかの教訓を学ぶことができます。コメントを残して、いいねをして、チャンネル登録をお願いします。今週はたくさんの動画が出てきます。ご視聴ありがとうございました。

コメント

タイトルとURLをコピーしました