Claude Sonnetがファイルを作ってくれ
なくなった?
(present_filesツール)

Claude Coworkのリリースが話題になる一方で、Claude Sonnet 4.5のpresent_filesツールが動かなくなっている気がします。
Sonnet 4では動作するので、一時的な不具合だと思います。
AIモデル側からは実行できているように認識されているので、やっかいだと思いました。

2026年1月13日11時時点で確認した、Claude Sonnet 4.5のファイル生成機能に関する不具合です。
※Claude Opus 4.5やClaude Sonnet 4では問題ありませんでした。
※(追記:2026-01-16) Claude Sonnet 4.5でもpresent_filesツールが動作するように戻っていました。

【教訓】生成AIの一部の機能がうまく動作しないときには、別のモデル(旧バージョンなど)を試してみるとうまく動作することがある。
とくに、新機能リリース後には一時的な不具合の影響が出ることがある。

関連記事

1. 「作成しました」詐欺?

問題は、Claude.aiで「スライドを作成してください」と頼んだとき、「作成しました」と返事が返ってきたのに、実際にはファイルは作成されていないことがありました。

Claudeに依頼したのは「与えた文章をもとにスライドにまとめてほしい」ということで、プロンプトには、SVGファイルとして8枚のスライドを作成する詳細な指示を含めました。

Claudeの応答は「8枚のスライドを作成しました」とあり、各スライドについて説明が書かれていましたが、肝心のファイルはどこにも見当たりません。

「作ってくれたスライドはどこにあるんだっけ?」と聞くと、Claudeは「申し訳ありません。スライドをまだ実際に作成していませんでした」と謝り、再び「今から8枚のスライドSVGファイルを作成します」と応答します。
しかし、その後の応答も、ファイル名のリストと説明だけで、ファイルは存在しませんでした。

Claudeの設定では、コード実行とファイル作成は有効なのですが、うまく動作していないようです。

2026年1月13日11時42分時点で、Claude for Mac(1.0.2768)とブラウザ版と両方で同じ現象になりました。

  • 【追記】翌日(2026-01-14 9:36時点)も同様の現象が継続し、2026-01-16 11:00時点で復旧を確認しました。

1.1. 実用的な対処法(コードブロック)

現時点で有効な対処法は、「コードを見せてください」と明示的に要求することです。

1.1. 実用的な対処法(コードブロック)

この指示により、Claudeはファイル生成ツールを使わず、コードブロック内にコードを直接出力します。UIの問題を回避できます。

ただし、この方法では:

  • 複数ファイルの生成には向かない
  • ファイル名やディレクトリ構造が失われる
  • コピー&ペーストの手間が増える

という制限があります。

1.2. present_filesツールの動作検証用プロンプト

この問題がこのチャット固有のものか、システム全体の問題かを確認するため、新しいチャットで同じテストを実行しました。

present_filesツールの動作確認テストを実行してください。

## 手順
1. テストファイルを /mnt/user-data/outputs/ に作成してください
   - ファイル名: test-present-files.md
   - 内容: 簡単なテキスト(「これはテストファイルです」程度)

2. present_filesツールを使ってファイルを提示してください

3. 【重要】present_filesの実行結果について、以下を必ず報告してください:
   - ツールが返した戻り値(出力URL、ファイルパス、その他の情報)
   - 戻り値が空だった場合はその旨
   - エラーが発生した場合はエラー内容

4. あなた(Claude)が認識している情報をすべて言語化してください

## 確認事項
実行後、以下を確認してください:
- 画面にダウンロードリンクが表示されているか
- ファイルパネルが表示されているか
- 何も表示されていない場合はその旨を報告

このテストは、present_filesツールが正常に動作しているかを確認するためのものです。Code language: PHP (php)

検証用のプロンプトを作成しました。
ファイル生成、present_files実行、戻り値の報告、UI確認という段階的な手順を含めました。

新しいチャットでも、まったく同じ現象が発生しました。
ファイルは生成される、present_filesツールは実行される、しかしUIには何も表示されない。

1.2. present_filesツールの動作検証用プロンプト

1.3. 言語モデルをSonnet 4に変更すると機能する

ただし、Claude Sonnet 4で同じ操作をしたところ、ちゃんと機能しました。

1.3. 言語モデルをSonnet 4に変更すると機能する

以前にも、一部の言語モデルでエラーがあることがありました。
けっこう、言語モデル固有のエラーが発生することもあるようです。
生成AIを利用して不具合に遭遇したら、別の言語モデルに切り替えてみるのも有効です。

1.4. ウェブ検索結果の表示検証テスト(web_searchツール)

同様に、ウェブ検索(web_searchツール)も内部では調べることができているようですが、結果のリンクは表示されませんでした。

1.4. ウェブ検索結果の表示検証テスト(web_searchツール)

それで、ウェブ検索結果の表示検証テストのプロンプトも作りました。

ウェブ検索結果の表示検証テスト

以下の手順で、web_searchツールの動作と結果表示を検証してください:

## 手順
1. web_searchツールを使って「Anthropic Claude」を検索してください
2. 検索実行後、以下を必ず報告してください:
   - ツールが返した戻り値の構造(JSON形式で)
   - 検索結果に含まれる情報の種類(タイトル、URL、スニペットなど)
   - 結果が何件返ってきたか
   - 具体的なURL例を2-3件挙げてください
3. あなた(Claude)が認識している情報をすべて言語化してください
4. 検索結果から1つのURLを選んで、そのリンクを提示してください

## 確認事項
実行後、以下を確認してください:
- 私(ユーザー)の画面に検索結果のリンクが表示されているか
- クリック可能なURLとして表示されているか
- 何も表示されていない場合はその旨を報告

## 目的
このテストは、web_searchツールが返す情報と、それがユーザー側でどのように表示されるかを検証するためのものです。Code language: PHP (php)

present_filesツールを実行しても、UIにダウンロードリンクが表示されない。

1.4. ウェブ検索結果の表示検証テスト(web_searchツール)

これは、Claude.aiのフロントエンド実装の問題です。
バックエンドは正常に動作していますが、React UIがツールの戻り値を正しくレンダリングできていません。ユーザー側での対処は不可能です。

1.5. 同様の事例は他にも存在する

この問題が自分の環境や特定のチャットに依存するものなのかを確認するため、Claude(Anthropic)関連の公開Issue、フォーラム、SNS投稿を調査しました。
その結果、「ツールは実行されているが、UIに結果が表示されない」という性質の不具合が、複数報告されていることが分かりました。

以前は正常動作していた機能が突然使えなくなり、Claudeが「生成した」と主張するが実際には何も作成されない状況で、ツール機能の一時的な障害や仕様変更の可能性が示唆されている。

問題1: ダウンロード可能なファイル生成の不具合(2026-01-08)
Claude、急にダウンロード可能なcsファイルを生成できなくなったんだ。 : r/ClaudeAI

  • 1週間前まで正常だったダウンロード可能な.csファイル生成機能が、新しい会話で突然動作しなくなった。
    古い会話では機能するが、新規会話ではcreate_filepresent_filesツールを使おうとしても実行されず、謝罪ループに陥る異常動作を示している。

問題2: Artifactsが3ヶ月間機能しない(2026-01-04)
アーティファクトが3か月間動作していません。 : r/ClaudeAI

  • 2024年11月以降、Artifactsウィンドウが開かず、本来Artifact形式で表示されるべきコンテンツ(要約、インタラクティブアプリなど)がチャット内にHTMLコードやMarkdownとして直接表示される。
    複数のブラウザ・デバイスで試しても改善せず、設定は有効なまま。

特に、問題1の事例が自分の状況と同じです。

2. 生成AIの認識とツールの返り値

なぜClaudeは「作成しました」と言いながら、実際には作成していないのか。

Claudeと対話をして気づいたのが、認識エラーです。
Claudeは「何を作るか設計した」段階で、実装まで完了したと錯覚していました。

明示的に「Markdownファイルとして生成してください」「create_fileツールで保存してください」「present_filesツールで提示してください」と指示しても、Claudeはcreate_fileでファイルを作成し、present_filesでファイルを提示したと報告したが、やはりダウンロードリンクは表示されませんでした。

bash_toolでファイルシステムを直接確認するように指示すると、結果は、「/mnt/user-data/outputs/ディレクトリに、すべてのテストファイルが存在している」とのこと。
ファイル生成自体は完全に正常に動作し、認識できているようです。

つまり問題は:

  • ファイル生成: ✅ 正常
  • UIでの表示: ❌ 失敗

しかしpresent_filesの戻り値については、明確に認識・言語化できないようです。
「ツールを呼び出したという事実は認識しているが、戻り値(出力URL、ダウンロードリンクなど)を言語化できない」という状態でした。

これは以下のいずれかを意味します:

  • 戻り値が返されていない(ツール側の問題)
  • 戻り値は返されているが、Claudeの認識フローに統合されていない
  • 戻り値は認識しているが、ユーザーに提示すべき情報として処理できていない

2.1. ツール実行とUI表示の乖離に関する報告

2.2. 「作成したと報告するが、ユーザーには見えない」問題の構造

Claude Code や Claude Web に関する GitHub Issue や Reddit では、以下のような報告が確認されています。

  • コマンドやツールは成功している(ログ上も成功)が、
    ユーザーUIでは結果表示パネルが空白になる
  • Artifact(成果物)が生成されたはずなのに、UI上に表示されない
  • ファイル生成系ツール(present_files を含む)を実行したとアシスタントは報告するが、
    ダウンロードリンクやファイルパネルが表示されない

これらの報告に共通しているのは、

  • バックエンド処理は失敗していない
  • アシスタント自身も「ツールを実行した」という認識を持っている
  • しかし、フロントエンド(React UI)がその戻り値を正しく描画できていない

という三層構造を持っていることです。

Claude.ai のシステム全体にまたがる、UIレイヤーの実装不具合と考えるのが最も自然です。

3. この体験から学んだこと

AIに指示を出すとき、「実行した」という報告と「実際に実行された」ことの間には、想像以上に大きなギャップがある場合があります。

プロンプトの改善は重要です。
しかし、それ以上に重要なのは、システムの各層(AI、ツール、UI)がどう連携しているかを理解することです。

今回の問題は、3つの層に分かれていました:

  • AIの認識と判断(作成したと錯覚する)
  • ツールの実行(正常に動作している)
  • UIの表示(戻り値を反映できない)

どの層に問題があるのかを見極めることで、適切な対処が可能になります。

そして最も重要なのは、「動作していないときは、率直に動作していないと確認する」ことです。
Claudeに「ファイルはどこ?」「コードを見せて」と直接尋ねることで、問題の所在を明らかにできました。

3.1. 【追記】2026-01-15時点も継続中

present_filesツールは、まだ動いていないようです。

3.1. 【追記】2026-01-15時点も継続中

一方、web_searchツールは、結果をURLで表示できるようになっていました。

3.1. 【追記】2026-01-15時点も継続中

3.2. 2026-01-16時点は解決

Claude Sonnet 4.5でも、present_filesツールが動作するようになっていました。

直近のClaude Statusを見ると、2026年1月14日08:34 UTCごろからエラーの多発と復旧があったようです。

2026年1月14日のClaude障害の説明

Claude Opus 4.5とSonnet 4.5でエラーが発生し、ユーザーが利用できない状態になりました。

原因

  • サービスのデプロイメント(システム更新の展開)により、一時的にサーバーの処理能力が低下したため。

対応

  • 問題のあるデプロイメントを特定
  • ロールバック(以前の状態に戻す)を実行
  • 全処理能力を復旧
  • 約4時間で正常化
Claude Status – Elevated error rates on Opus 4.5 and Sonnet 4.5

Claude Coworkのリリースに伴って、一時的に不具合が生じて、ロールバックが必要だったのかな、と思いました。