Claude APIのテキストエディタツールの使い方

Claude Code エンジニアリング 6分で読めます

テキストエディタツールは、Anthropic があらかじめスキーマを定義しているツールで、Claude にファイルの閲覧・作成・編集を行わせるためのものです。コードのデバッグやリファクタリング、ドキュメント生成などで、Claude が提案するだけでなく実際のファイルに手を入れられるようになります。この記事は Anthropic 公式ドキュメントの非公式日本語訳・要約です。

テキストエディタツールとは

テキストエディタツールは、Claude がテキストファイルを閲覧・編集できるようにする、Anthropic スキーマのツールです。Claude は変更点を口頭で提案するだけでなく、ファイルそのものを直接読み書きできます。主な用途は次のとおりです。

このツールは「クライアントツール」です。Claude 自身がファイルを操作するのではなく、Claude は実行すべきコマンドを返し、実際の閲覧・編集はあなたのアプリケーション側で行って結果を返します。対応モデルはツールのバージョンによって異なるため、公式のツールリファレンスで確認してください。

ツールの指定方法

テキストエディタツールは、Messages API のリクエストに tools として渡します。ツール名は str_replace_based_edit_tool で、type にバージョン識別子を指定します。最新のバージョンは text_editor_20250728 です。

{
  "model": "claude-opus-5",
  "max_tokens": 1024,
  "tools": [
    {
      "type": "text_editor_20250728",
      "name": "str_replace_based_edit_tool"
    }
  ],
  "messages": [
    { "role": "user", "content": "syntax.py のバグを修正して" }
  ]
}

大きなファイルを閲覧する際の切り詰めを制御したい場合は、任意で max_characters パラメータを指定できます。ただし max_characterstext_editor_20250728 以降のバージョンでのみ利用できます。type の識別子はモデルによって対応バージョンが異なるため、使用するモデルに合ったものを公式リファレンスで確認してください。

対応コマンド

テキストエディタツールは、閲覧と編集のためのいくつかのコマンドを持ちます。Claude が返す tool_use ブロックの command フィールドで、どの操作かが示されます。

いずれのコマンドも、対象ファイルの path を伴います。old_str が複数箇所に一致する、あるいはどこにも一致しない場合、str_replace は編集を行いません。置換対象は前後の文脈を含めて一意になるように指定するのが安全です。

実装の流れ

クライアントツールなので、コマンドを実際に実行するのはあなたのアプリケーションです。典型的な流れは次のようになります。

  1. ツールを渡してリクエストする: テキストエディタツールを含めて Messages API を呼び出します。
  2. Claude がコマンドを返す: Claude はまず view でファイルやディレクトリを確認しようとし、レスポンスに tool_use ブロックが含まれます。
  3. コマンドを実行して結果を返す: あなたのアプリがそのコマンド(閲覧・置換・作成・挿入)を実行し、結果を tool_result ブロックとして返します。max_characters を指定していれば、閲覧結果はその長さに切り詰めます。
  4. 編集まで繰り返す: Claude は内容を確認したうえで、str_replaceinsert などの編集コマンドを返します。あなたのアプリが実行し、また結果を返します。完了まで往復を続けます。

ファイルの実体を扱うのは常にアプリ側です。編集前にバックアップを取る、対象ディレクトリを限定するなど、安全策は実装側で用意します。

利用時の注意点

より低レベルにファイル編集をさせる代わりに、コマンドラインを実行させたい場合はbash ツールも参照してください。正確な仕様・対応モデルは必ず公式ドキュメントで確認してください。