Image: Robert Way via Shutterstock

自社の内情を隠しきれないAnthropic。

未発表モデルの詳細が、未公開の文書やブログ記事の下書きを公開キャッシュに残していたことで明るみに出たばかりですが、今度はAIコーディング支援ツール「Claude Code」の内部ソースコードまで誤って公開してしまいました。

今回の流出によって、IPO準備中とみられるAnthropicのクローズドソース製品の内側が、これまでにないレベルで見えてしまっています。

公開されたのは「設計図の一部」

コードを見つけたのは、Solayer Labでインターンをしていると名乗り、X(旧Twitter)で @Fried_rice として投稿しているChaofan Shou氏。

同氏によると、問題のソースコードは.mapファイルとして npm レジストリに置かれていました。

.mapはソフトウェアのビルド時に生成されるプレーンテキストのファイルで、内部デバッグに使われます。難読化されたコードと元のソースコードの対応関係をたどれるため、開発者向けの“解読用”データとして機能します。

ところがAnthropicはこのファイルを公開してしまい、Claude Code バージョン 2.1.88 の TypeScript ソースコードの一部が、難読化されていない状態で見えるようになっていました。ファイルには、Anthropicのコーディングエージェントに関連する約51万2,000行のコードが含まれていたそうです。

もっとざっくり言えば、Anthropicは本来外に出るはずのなかった設計図の一部をうっかり公開してしまい、プログラマーたちは急ぎその中身を読み解いている、ということです。

明らかになったこと

見つかった内容としては、Claudeがタスク実行中に表示する文言やClaudeに悪態をつくとプロンプトの受け取り方がどう変わるのかといった細かな仕様がまず挙げられます。

さらに、Anthropicが開発していたかもしれない「たまごっち」風の隠しバーチャルペットを見つけたという主張もあります(ただしこれは4月1日に公開予定だったとされており、エイプリルフール的なネタだった可能性もあります)。

Claudeがどう動いているかも判明

このファイルからは、Claudeの動作に関する情報もかなり見えてきます。たとえばAPI呼び出し用のエンジン、プロンプト処理時のトークンの数え方、そのほかの技術的な実装です。

一方で、Anthropicの基盤モデルそのものに関する詳細は含まれていないようです。

ただ、ファイルに含まれていた内容を権利的に問題ないように書き直したものがGitHubにアップロードされており、ユーザーが閲覧したりフォークしたりできる状態になっています。

流出したソースコードは本物

Anthropicはユーザーによる発見内容へのコメントは避けたものの、米Gizmodoに対して流出したソースコードが本物であることは認めました。

広報担当者は次のように述べており、人為的ミスが原因であるとしています。

「本日早い時間に、Claude Codeのリリースに内部ソースコードの一部が含まれていました。機密性の高い顧客データや認証情報は含まれておらず、外部にさらされてもいません。これは人為的ミスによるリリースパッケージング上の問題であり、セキュリティ侵害ではありません。再発防止策を進めています。」

米Gizmodoの受け止め方

Claude Codeを手がける人たち自身が、このコーディングエージェントにかなり頼っている点は見逃せません。

昨年12月には、AnthropicでClaude Code部門を率いるBoris Cherny氏が「過去30日間で、私がClaude Codeに行った貢献の100%はClaude Codeによって書かれた」と投稿していました。

コード支援ツールへの依存は社内全体で強まっているようで、今回の一件も、いわば“太陽に近づきすぎたバイブコーディング”の産物だったのかもしれません。

もちろん、これでAnthropicの“秘伝のレシピ”そのものが外に出たわけではありません。ただ、同社の「台所」がどう回っているのかはかなり見えてしまいました。

しかもタイミングが悪すぎます。Anthropicは今年後半の上場に向けて動いているとみられるうえ、競合各社も同社が強みを持つコーディング支援やエンタープライズ向けサービスの領域を崩しにかかっています。

OpenAIもエンタープライズ市場への本格シフトを進めており、最近ではClaude Codeの競合にあたるCodexへの無制限アクセスを提供したとも報じられました。

ソースコード流出に「いい時期」などありませんが、今回は特に最悪のタイミングだったと言えそうです。