Claude dapat menggunakan alat editor teks yang didefinisikan Anthropic untuk melihat dan memodifikasi file teks, membantu Anda debug, memperbaiki, dan meningkatkan kode atau dokumen teks lainnya. Ini memungkinkan Claude untuk berinteraksi langsung dengan file Anda, memberikan bantuan langsung daripada hanya menyarankan perubahan.

Sebelum menggunakan alat editor teks

Gunakan model yang kompatibel

Alat editor teks Anthropic tersedia untuk beberapa model Claude:

  • Claude 4 Opus & Sonnet: text_editor_20250728
  • Claude Sonnet 3.7: text_editor_20250124
  • Claude Sonnet 3.5: text_editor_20241022

Claude Sonnet 3.5 memerlukan header beta computer-use-2024-10-22 saat menggunakan alat editor teks.

Alat editor teks tersedia secara umum di Claude 4 dan Sonnet 3.7.

Alat text_editor_20250728 untuk model Claude 4 tidak menyertakan perintah undo_edit. Jika Anda memerlukan fungsionalitas ini, Anda perlu menggunakan Claude 3.7 atau Sonnet 3.5 dengan versi alat masing-masing.

Evaluasi kesesuaian kasus penggunaan Anda

Beberapa contoh kapan menggunakan alat editor teks adalah:

  • Debugging kode: Minta Claude mengidentifikasi dan memperbaiki bug dalam kode Anda, dari kesalahan sintaks hingga masalah logika.
  • Refactoring kode: Biarkan Claude meningkatkan struktur kode, keterbacaan, dan performa melalui pengeditan yang ditargetkan.
  • Pembuatan dokumentasi: Minta Claude untuk menambahkan docstring, komentar, atau file README ke basis kode Anda.
  • Pembuatan tes: Minta Claude membuat unit test untuk kode Anda berdasarkan pemahamannya tentang implementasi.

Gunakan alat editor teks

Berikan alat editor teks (bernama str_replace_based_edit_tool) kepada Claude menggunakan Messages API.

Anda dapat secara opsional menentukan parameter max_characters untuk mengontrol pemotongan saat melihat file besar.

max_characters hanya kompatibel dengan text_editor_20250728 dan versi alat editor teks yang lebih baru.

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "type": "text_editor_20250728",
        "name": "str_replace_based_edit_tool",
        "max_characters": 10000
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "Ada kesalahan sintaks di file primes.py saya. Bisakah Anda membantu memperbaikinya?"
      }
    ]
  }'

Alat editor teks dapat digunakan dengan cara berikut:

1

Berikan Claude alat editor teks dan prompt pengguna

  • Sertakan alat editor teks dalam permintaan API Anda
  • Berikan prompt pengguna yang mungkin memerlukan pemeriksaan atau modifikasi file, seperti “Bisakah Anda memperbaiki kesalahan sintaks dalam kode saya?”
2

Claude menggunakan alat untuk memeriksa file atau direktori

  • Claude menilai apa yang perlu dilihat dan menggunakan perintah view untuk memeriksa konten file atau mendaftar konten direktori
  • Respons API akan berisi blok konten tool_use dengan perintah view
3

Jalankan perintah view dan kembalikan hasil

  • Ekstrak jalur file atau direktori dari permintaan penggunaan alat Claude
  • Baca konten file atau daftar konten direktori
  • Jika parameter max_characters ditentukan dalam konfigurasi alat, potong konten file hingga panjang tersebut
  • Kembalikan hasil ke Claude dengan melanjutkan percakapan dengan pesan user baru yang berisi blok konten tool_result
4

Claude menggunakan alat untuk memodifikasi file

  • Setelah memeriksa file atau direktori, Claude mungkin menggunakan perintah seperti str_replace untuk membuat perubahan atau insert untuk menambahkan teks pada nomor baris tertentu.
  • Jika Claude menggunakan perintah str_replace, Claude membuat permintaan penggunaan alat yang diformat dengan benar dengan teks lama dan teks baru untuk menggantinya
5

Jalankan pengeditan dan kembalikan hasil

  • Ekstrak jalur file, teks lama, dan teks baru dari permintaan penggunaan alat Claude
  • Lakukan penggantian teks dalam file
  • Kembalikan hasil ke Claude
6

Claude memberikan analisis dan penjelasannya

  • Setelah memeriksa dan mungkin mengedit file, Claude memberikan penjelasan lengkap tentang apa yang ditemukan dan perubahan apa yang dibuat

Perintah alat editor teks

Alat editor teks mendukung beberapa perintah untuk melihat dan memodifikasi file:

view

Perintah view memungkinkan Claude untuk memeriksa konten file atau mendaftar konten direktori. Ini dapat membaca seluruh file atau rentang baris tertentu.

Parameter:

  • command: Harus “view”
  • path: Jalur ke file atau direktori yang akan dilihat
  • view_range (opsional): Array dari dua integer yang menentukan nomor baris awal dan akhir untuk dilihat. Nomor baris diindeks 1, dan -1 untuk baris akhir berarti baca hingga akhir file. Parameter ini hanya berlaku saat melihat file, bukan direktori.

str_replace

Perintah str_replace memungkinkan Claude untuk mengganti string tertentu dalam file dengan string baru. Ini digunakan untuk membuat pengeditan yang tepat.

Parameter:

  • command: Harus “str_replace”
  • path: Jalur ke file yang akan dimodifikasi
  • old_str: Teks yang akan diganti (harus cocok persis, termasuk spasi dan indentasi)
  • new_str: Teks baru untuk disisipkan menggantikan teks lama

create

Perintah create memungkinkan Claude untuk membuat file baru dengan konten yang ditentukan.

Parameter:

  • command: Harus “create”
  • path: Jalur di mana file baru harus dibuat
  • file_text: Konten untuk ditulis ke file baru

insert

Perintah insert memungkinkan Claude untuk menyisipkan teks pada lokasi tertentu dalam file.

Parameter:

  • command: Harus “insert”
  • path: Jalur ke file yang akan dimodifikasi
  • insert_line: Nomor baris setelah mana teks akan disisipkan (0 untuk awal file)
  • new_str: Teks yang akan disisipkan

undo_edit

Perintah undo_edit memungkinkan Claude untuk mengembalikan pengeditan terakhir yang dibuat pada file.

Perintah ini hanya tersedia di Claude Sonnet 3.7 dan Claude Sonnet 3.5. Ini tidak didukung di model Claude 4 yang menggunakan text_editor_20250728.

Parameter:

  • command: Harus “undo_edit”
  • path: Jalur ke file yang pengeditan terakhirnya harus dibatalkan

Contoh: Memperbaiki kesalahan sintaks dengan alat editor teks

Contoh ini menunjukkan bagaimana Claude 4 menggunakan alat editor teks untuk memperbaiki kesalahan sintaks dalam file Python.

Pertama, aplikasi Anda memberikan Claude alat editor teks dan prompt untuk memperbaiki kesalahan sintaks:

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "type": "text_editor_20250728",
        "name": "str_replace_based_edit_tool"
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "Ada kesalahan sintaks di file primes.py saya. Bisakah Anda membantu memperbaikinya?"
      }
    ]
  }'

Claude akan menggunakan alat editor teks terlebih dahulu untuk melihat file:

{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-opus-4-20250514",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Saya akan membantu Anda memperbaiki kesalahan sintaks di file primes.py Anda. Pertama, biarkan saya melihat file untuk mengidentifikasi masalahnya."
    },
    {
      "type": "tool_use",
      "id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
      "name": "str_replace_based_edit_tool",
      "input": {
        "command": "view",
        "path": "primes.py"
      }
    }
  ]
}

Aplikasi Anda kemudian harus membaca file dan mengembalikan kontennya ke Claude:

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "type": "text_editor_20250728",
        "name": "str_replace_based_edit_tool"
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "Ada kesalahan sintaks di file primes.py saya. Bisakah Anda membantu memperbaikinya?"
      },
      {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "Saya akan membantu Anda memperbaiki kesalahan sintaks di file primes.py Anda. Pertama, biarkan saya melihat file untuk mengidentifikasi masalahnya."
                },
                {
                    "type": "tool_use",
                    "id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
                    "name": "str_replace_based_edit_tool",
                    "input": {
                        "command": "view",
                        "path": "primes.py"
                    }
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "tool_result",
                    "tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
                    "content": "1: def is_prime(n):\n2:     \"\"\"Check if a number is prime.\"\"\"\n3:     if n <= 1:\n4:         return False\n5:     if n <= 3:\n6:         return True\n7:     if n % 2 == 0 or n % 3 == 0:\n8:         return False\n9:     i = 5\n10:     while i * i <= n:\n11:         if n % i == 0 or n % (i + 2) == 0:\n12:             return False\n13:         i += 6\n14:     return True\n15: \n16: def get_primes(limit):\n17:     \"\"\"Generate a list of prime numbers up to the given limit.\"\"\"\n18:     primes = []\n19:     for num in range(2, limit + 1)\n20:         if is_prime(num):\n21:             primes.append(num)\n22:     return primes\n23: \n24: def main():\n25:     \"\"\"Main function to demonstrate prime number generation.\"\"\"\n26:     limit = 100\n27:     prime_list = get_primes(limit)\n28:     print(f\"Prime numbers up to {limit}:\")\n29:     print(prime_list)\n30:     print(f\"Found {len(prime_list)} prime numbers.\")\n31: \n32: if __name__ == \"__main__\":\n33:     main()"
                }
            ]
        }
    ]
  }'

Nomor baris

Dalam contoh di atas, hasil alat view menyertakan konten file dengan nomor baris yang ditambahkan di depan setiap baris (misalnya, “1: def is_prime(n):”). Nomor baris tidak diperlukan, tetapi sangat penting untuk berhasil menggunakan parameter view_range untuk memeriksa bagian tertentu dari file dan parameter insert_line untuk menambahkan konten pada lokasi yang tepat.

Claude akan mengidentifikasi kesalahan sintaks dan menggunakan perintah str_replace untuk memperbaikinya:

{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-opus-4-20250514",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Saya menemukan kesalahan sintaks di file primes.py Anda. Dalam fungsi `get_primes`, ada titik dua (:) yang hilang di akhir baris for loop. Biarkan saya memperbaikinya untuk Anda."
    },
    {
      "type": "tool_use",
      "id": "toolu_01PqRsTuVwXyZAbCdEfGh",
      "name": "str_replace_based_edit_tool",
      "input": {
        "command": "str_replace",
        "path": "primes.py",
        "old_str": "    for num in range(2, limit + 1)",
        "new_str": "    for num in range(2, limit + 1):"
      }
    }
  ]
}

Aplikasi Anda kemudian harus membuat pengeditan dan mengembalikan hasilnya:

response = client.messages.create(
    model="claude-opus-4-20250514",
    max_tokens=1024,
    tools=[
        {
            "type": "text_editor_20250728",
            "name": "str_replace_based_edit_tool"
        }
    ],
    messages=[
        # Pesan sebelumnya...
        {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "Saya menemukan kesalahan sintaks di file primes.py Anda. Dalam fungsi `get_primes`, ada titik dua (:) yang hilang di akhir baris for loop. Biarkan saya memperbaikinya untuk Anda."
                },
                {
                    "type": "tool_use",
                    "id": "toolu_01PqRsTuVwXyZAbCdEfGh",
                    "name": "str_replace_based_edit_tool",
                    "input": {
                        "command": "str_replace",
                        "path": "primes.py",
                        "old_str": "    for num in range(2, limit + 1)",
                        "new_str": "    for num in range(2, limit + 1):"
                    }
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "tool_result",
                    "tool_use_id": "toolu_01PqRsTuVwXyZAbCdEfGh",
                    "content": "Berhasil mengganti teks di tepat satu lokasi."
                }
            ]
        }
    ]
)

Akhirnya, Claude akan memberikan penjelasan lengkap tentang perbaikan:

{
  "id": "msg_01Ij KlMnOpQrStUvWxYzAb",
  "model": "claude-opus-4-20250514",
  "stop_reason": "end_turn",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Saya telah memperbaiki kesalahan sintaks di file primes.py Anda. Masalahnya ada di fungsi `get_primes` pada baris 19. Ada titik dua (:) yang hilang di akhir baris for loop.\n\nBerikut yang saya ubah:\n\nDari:\n```python\nfor num in range(2, limit + 1)\n```\n\nMenjadi:\n```python\nfor num in range(2, limit + 1):\n```\n\nDalam Python, titik dua diperlukan di akhir pernyataan yang memulai blok kode baru, seperti for loop, if statement, definisi fungsi, dll. Tanpa titik dua, Python menimbulkan kesalahan sintaks karena tidak tahu di mana blok kode dimulai.\n\nKode Anda sekarang harus berjalan dengan benar. Fungsi akan menghasilkan daftar bilangan prima hingga batas yang ditentukan dengan benar."
    }
  ]
}

Implementasikan alat editor teks

Alat editor teks diimplementasikan sebagai alat tanpa skema. Saat menggunakan alat ini, Anda tidak perlu memberikan skema input seperti alat lainnya; skema sudah terpasang dalam model Claude dan tidak dapat dimodifikasi.

Tipe alat tergantung pada versi model:

  • Claude 4: type: "text_editor_20250728"
  • Claude Sonnet 3.7: type: "text_editor_20250124"
  • Claude Sonnet 3.5: type: "text_editor_20241022"
1

Inisialisasi implementasi editor Anda

Buat fungsi pembantu untuk menangani operasi file seperti membaca, menulis, dan memodifikasi file. Pertimbangkan untuk mengimplementasikan fungsionalitas backup untuk pulih dari kesalahan.

2

Tangani panggilan alat editor

Buat fungsi yang memproses panggilan alat dari Claude berdasarkan tipe perintah:

def handle_editor_tool(tool_call, model_version):
    input_params = tool_call.input
    command = input_params.get('command', '')
    file_path = input_params.get('path', '')
    
    if command == 'view':
        # Baca dan kembalikan konten file
        pass
    elif command == 'str_replace':
        # Ganti teks dalam file
        pass
    elif command == 'create':
        # Buat file baru
        pass
    elif command == 'insert':
        # Sisipkan teks pada lokasi
        pass
    elif command == 'undo_edit':
        # Periksa apakah ini model Claude 4
        if 'str_replace_based_edit_tool' in model_version:
            return {"error": "perintah undo_edit tidak didukung di Claude 4"}
        # Pulihkan dari backup untuk Claude 3.7/3.5
        pass
3

Implementasikan langkah-langkah keamanan

Tambahkan validasi dan pemeriksaan keamanan:

  • Validasi jalur file untuk mencegah directory traversal
  • Buat backup sebelum membuat perubahan
  • Tangani kesalahan dengan baik
  • Implementasikan pemeriksaan izin
4

Proses respons Claude

Ekstrak dan tangani panggilan alat dari respons Claude:

# Proses penggunaan alat dalam respons Claude
for content in response.content:
    if content.type == "tool_use":
        # Jalankan alat berdasarkan perintah
        result = handle_editor_tool(content)
        
        # Kembalikan hasil ke Claude
        tool_result = {
            "type": "tool_result",
            "tool_use_id": content.id,
            "content": result
        }

Saat mengimplementasikan alat editor teks, ingatlah:

  1. Keamanan: Alat memiliki akses ke sistem file lokal Anda, jadi implementasikan langkah-langkah keamanan yang tepat.
  2. Backup: Selalu buat backup sebelum mengizinkan pengeditan file penting.
  3. Validasi: Validasi semua input untuk mencegah perubahan yang tidak diinginkan.
  4. Pencocokan unik: Pastikan penggantian cocok dengan tepat satu lokasi untuk menghindari pengeditan yang tidak diinginkan.

Tangani kesalahan

Saat menggunakan alat editor teks, berbagai kesalahan mungkin terjadi. Berikut panduan cara menanganinya:

Ikuti praktik terbaik implementasi


Harga dan penggunaan token

The text editor tool uses the same pricing structure as other tools used with Claude. It follows the standard input and output token pricing based on the Claude model you’re using.

In addition to the base tokens, the following additional input tokens are needed for the text editor tool:

ToolAdditional input tokens
text_editor_20250429 (Claude 4)700 tokens
text_editor_20250124 (Claude Sonnet 3.7)700 tokens
text_editor_20241022 (Claude Sonnet 3.5 (deprecated))700 tokens

Untuk informasi lebih detail tentang harga alat, lihat Harga penggunaan alat.

Integrasikan alat editor teks dengan alat lain

Alat editor teks dapat digunakan bersama alat Claude lainnya. Saat menggabungkan alat, pastikan Anda:

  • Mencocokkan versi alat dengan model yang Anda gunakan
  • Memperhitungkan penggunaan token tambahan untuk semua alat yang disertakan dalam permintaan Anda

Log perubahan

TanggalVersiPerubahan
28 Juli 2025text_editor_20250728Rilis alat editor teks yang diperbarui yang memperbaiki beberapa masalah dan menambahkan parameter max_characters opsional. Selain itu identik dengan text_editor_20250429.
29 April 2025text_editor_20250429Rilis alat editor teks untuk Claude 4. Versi ini menghapus perintah undo_edit tetapi mempertahankan semua kemampuan lainnya. Nama alat telah diperbarui untuk mencerminkan arsitektur berbasis str_replace.
13 Maret 2025text_editor_20250124Pengenalan dokumentasi alat editor teks mandiri. Versi ini dioptimalkan untuk Claude Sonnet 3.7 tetapi memiliki kemampuan yang identik dengan versi sebelumnya.
22 Oktober 2024text_editor_20241022Rilis awal alat editor teks dengan Claude Sonnet 3.5. Menyediakan kemampuan untuk melihat, membuat, dan mengedit file melalui perintah view, create, str_replace, insert, dan undo_edit.

Langkah selanjutnya

Berikut beberapa ide tentang cara menggunakan alat editor teks dengan cara yang lebih nyaman dan kuat:

  • Integrasikan dengan alur kerja pengembangan Anda: Bangun alat editor teks ke dalam alat pengembangan atau IDE Anda
  • Buat sistem review kode: Minta Claude meninjau kode Anda dan membuat perbaikan
  • Bangun asisten debugging: Buat sistem di mana Claude dapat membantu Anda mendiagnosis dan memperbaiki masalah dalam kode Anda
  • Implementasikan konversi format file: Biarkan Claude membantu Anda mengonversi file dari satu format ke format lain
  • Otomatisasi dokumentasi: Siapkan alur kerja untuk Claude secara otomatis mendokumentasikan kode Anda

Saat Anda membangun aplikasi dengan alat editor teks, kami sangat senang melihat bagaimana Anda memanfaatkan kemampuan Claude untuk meningkatkan alur kerja pengembangan dan produktivitas Anda.