Modül 5 · Tool Use with Claude · ⏱ 9 dakika

Text edit tool

The text edit tool

Orijinal İngilizce video — Anthropic Academy / JWPlayer. Aşağıdaki Türkçe metin dersi birebir özetler.

Bu modül için tahmini süre: 9 dakika

Genel bakış

Claude’da sıfırdan oluşturmanız gerekmeyen built-in bir tool gelir: text editor tool. Bu tool, Claude’a standart bir text editor’da yapacağınız gibi file ve directory’lerle çalışma yeteneği verir. Bu derste tool’un yetenekleri, model versiyonuna göre değişen schema string’leri ve implementation gereksinimleri ele alınır.

Önemli not: Tüm model versiyonları için tool version string’lerini burada bulabilirsiniz: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-tool

Text editor tool ne yapabilir

Text editor tool, Claude’a kapsamlı bir file manipulation yeteneği seti sağlar:

  • File veya directory içeriğini görüntülemek
  • Bir dosyadaki belirli satır aralıklarını görüntülemek
  • Bir dosyadaki text’i replace etmek
  • Yeni dosyalar oluşturmak
  • Bir dosyada belirli satırlara text insert etmek
  • Dosyalardaki son düzenlemeleri undo etmek

Bu, Claude’un yeteneklerini dramatik şekilde genişletir ve ona daha kutudan çıktığı an bir software engineer gibi çalışma gücü verir.

Implementation gereksinimlerini anlamak

İşte burada işler biraz karışıyor: tool schema’sı Claude’a built-in olsa da gerçek implementation’ı yine de siz sağlamalısınız. Şöyle düşünün — Claude file operasyonlarını nasıl talep edeceğini bilir, ancak o operasyonları gerçekten yapan kodu sizin yazmanız gerekir.

Diğer tool’ları kullanırken hem JSON schema’sını hem function implementation’ını yazarsınız. Text editor tool ile Claude schema bilgisini sağlar, ancak Claude’un file oluşturma, directory okuma, text replace etme vb. isteklerini handle eden function’ları sizin yazmanız gerekir.

Schema versiyonları

Ana schema Claude’a built-in olsa da isteklerinizi yaparken küçük bir schema stub eklemeniz gerekir. Tam schema, kullandığınız Claude model’ine bağlıdır:

def get_text_edit_schema(model):
    if model.startswith("claude-3-7-sonnet"):
        return {
            "type": "text_editor_20250124",
            "name": "str_replace_editor",
        }
    elif model.startswith("claude-3-5-sonnet"):
        return {
            "type": "text_editor_20241022", 
            "name": "str_replace_editor",
        }

Claude bu küçük schema’yı görür ve perde arkasında otomatik olarak tam text editor tool specification’ına genişletir.

Pratik örnek

Text editor tool’u iş başında görelim. Claude’dan dosyalarla çalışmasını istediğinizde, gerektiğinde dosyaları okumak, değiştirmek ve oluşturmak için tool’u kullanır.

Örneğin Claude’dan “Open the ./main.py file and summarize its contents” derseniz Claude şunları yapar:

  1. Dosyayı görüntülemek için text editor tool’u kullanır
  2. İçeriği okur
  3. Size bir özet sağlar

Bunu daha da ileri götürebilirsiniz: “Open the ./main.py file and write out a function to calculate pi to the 5th digit. Then create a ./test.py file to test your implementation.”

Claude şunları yapacak:

  1. Mevcut main.py dosyasını görüntüler
  2. İçeriğini pi hesaplama fonksiyonunu içeren yeni bir implementasyonla replace eder
  3. Uygun unit test’lerle yeni bir test.py dosyası oluşturur

Text editor tool neden kullanılır

Modern code editor’larda zaten built-in AI assistant’lar varken bu tool’un neden var olduğunu merak edebilirsiniz. Text editor tool şu senaryolarda değerli olur:

  • Dosyaları programatik olarak edit etmesi gereken uygulamalar inşa ediyorsunuz
  • Tam özellikli code editor’lara erişimin olmadığı ortamlarda çalışıyorsunuz
  • File editing yeteneklerini doğrudan Claude destekli uygulamalarınıza entegre etmek istiyorsunuz

Esasen text editor tool, fancy AI destekli bir code editor’ün fonksiyonalitesinin büyük kısmını kendi uygulamalarınızda replike etmenize, Claude’un file system’inizle nasıl etkileşime girdiği konusunda ince ayar kontrolü vermenizi sağlar.

Temel çıkarımlar

  • Text editor tool, Claude’a built-in olarak gelen ve schema’sı kendisinde olan bir tool’dur
  • Schema Claude tarafında olsa da view/replace/create/insert/undo implementasyonlarını siz yazmalısınız
  • API çağrısında küçük bir stub schema (type + name) yeterlidir; model versiyonuna göre değişir
  • text_editor_20250124 → Claude 3.7 Sonnet, text_editor_20241022 → Claude 3.5 Sonnet için kullanılır
  • Doğru kullanıldığında Claude’a IDE benzeri file manipulation yetenekleri kazandırır
  • Kendi uygulamanıza file edit yetenekleri entegre etmek istediğinizde IDE bağımlılığını ortadan kaldırır