← Blog'a dön

Claude Computer Use Tool: AI Masaüstü Otomasyonu için Eksiksiz Geliştirici Kılavuzu

· Save Team
claudeaicomputer-useautomationapideveloperanthropic

Bir AI’ya “Firefox’u aç, bir web sitesine git, formu doldur ve sonucu kaydet” diyebilseydiniz — ve gerçekten yapsa? Kırılgan bir Selenium scripti aracılığıyla değil. Özel bir API entegrasyonu aracılığıyla da değil. Sadece… ekrana bakarak ve bir insan gibi fare ile klavye kullanarak.

Claude’un computer use tool tam olarak bunu yapar.

Computer Use Nedir?

Computer use, Claude’un masaüstü ortamlarıyla şunlar aracılığıyla etkileşim kurmasına olanak tanıyan bir beta API özelliğidir:

  • Screenshot capture — Claude ekranda ne olduğunu görür
  • Fare kontrolü — tıklama, sürükleme, kaydırma
  • Klavye girişi — metin yazma, kısayollara basma
  • Masaüstü otomasyonu — herhangi bir uygulama ile etkileşim

Anahtar kelime herhangi. Geleneksel otomasyonun aksine (tarayıcılar için Selenium, macOS için AppleScript), Claude özel API’lere veya element seçicilere ihtiyaç duymaz. Ekrandaki piksellere bakar ve neye tıklayacağına karar verir. Tıpkı sizin gibi.

Nasıl Çalışır (Agent Loop)

Computer use basit bir döngü izler:

  1. Claude’a bir görev gönderirsiniz — “Masaüstüme bir kedi resmi kaydet”
  2. Claude bir tool eylemi ister — “Screenshot al”
  3. Uygulamanız bunu yürütür — ekranı yakalar, görüntüyü döndürür
  4. Claude analiz eder ve sonraki eylemi ister — “(500, 300) koordinatlarına tıkla”
  5. Görev tamamlanana kadar tekrar

Bu döngüye agent loop denir. Claude eylemler istemeye (screenshot, tıkla, yaz, kaydır) devam eder ve uygulamanız Claude’un görevi tamamladığını belirleyene kadar bunları yürütür.

Başlamak için minimal API çağrısı:

import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=[
        {
            "type": "computer_20251124",
            "name": "computer",
            "display_width_px": 1024,
            "display_height_px": 768,
            "display_number": 1,
        },
        {"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
        {"type": "bash_20250124", "name": "bash"},
    ],
    messages=[{
        "role": "user",
        "content": "Save a picture of a cat to my desktop."
    }],
    betas=["computer-use-2025-11-24"],
)

"computer-use-2025-11-24" beta başlığı gereklidir. Üç tool (computer, metin editörü, bash) Claude’a ortam üzerinde tam kontrol sağlamak için birlikte çalışır.

Mevcut Eylemler

Computer use tool zengin bir etkileşim seti destekler:

Temel Eylemler

  • screenshot — mevcut görüntüyü yakala
  • left_click[x, y] koordinatlarında tıkla
  • type — bir metin dizisi yaz
  • key — bir tuş veya kombinasyona bas (örn. ctrl+s, alt+tab)
  • mouse_move — imleci hareket ettir

Gelişmiş Eylemler (Claude 4.x Modelleri)

  • scroll — miktar kontrolüyle herhangi bir yönde kaydır
  • left_click_drag — koordinatlar arasında tıklayıp sürükle
  • right_click, middle_click — ek fare düğmeleri
  • double_click, triple_click — çoklu tıklamalar
  • hold_key — bir tuşu belirli süre basılı tut
  • wait — eylemler arasında duraklat

En Yeni Ekleme: Zoom

Claude Opus 4.6, Sonnet 4.6 ve Opus 4.5’te mevcut:

  • zoom — belirli bir ekran bölgesini tam çözünürlükte incele

Bu, özellikle Claude’un küçük metni okuması veya ince UI ayrıntılarını tanımlaması gerektiğinde faydalıdır.

Bilgi İşlem Ortamı

Claude bilgisayarınıza doğrudan bağlanmaz. Bir sandbox ortamı sağlamanız gerekir — genellikle şunları çalıştıran bir Docker konteyneri:

  • Sanal ekran — Xvfb (X Virtual Framebuffer) masaüstünü render eder
  • Masaüstü ortamı — Mutter gibi hafif bir pencere yöneticisi
  • Uygulamalar — Firefox, LibreOffice, dosya yöneticileri, vb.
  • Tool uygulamaları — Claude’un isteklerini gerçek fare/klavye işlemlerine çeviren kod

Anthropic, tüm bunların Docker’da önceden yapılandırıldığı bir referans uygulaması sağlar. Başlamak için en hızlı yoldur.

Agent Loop Oluşturma

İşte gidip gelmelerle başa çıkan basitleştirilmiş bir agent loop:

async def agent_loop(task: str, max_iterations: int = 10):
    client = anthropic.Anthropic()
    messages = [{"role": "user", "content": task}]

    tools = [
        {
            "type": "computer_20251124",
            "name": "computer",
            "display_width_px": 1024,
            "display_height_px": 768,
        },
        {"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
        {"type": "bash_20250124", "name": "bash"},
    ]

    for _ in range(max_iterations):
        response = client.beta.messages.create(
            model="claude-opus-4-6",
            max_tokens=4096,
            messages=messages,
            tools=tools,
            betas=["computer-use-2025-11-24"],
        )

        messages.append({"role": "assistant", "content": response.content})

        # Tool çağrılarını çıkar
        tool_results = []
        for block in response.content:
            if block.type == "tool_use":
                result = execute_tool(block.name, block.input)
                tool_results.append({
                    "type": "tool_result",
                    "tool_use_id": block.id,
                    "content": result,
                })

        if not tool_results:
            return messages  # Görev tamamlandı

        messages.append({"role": "user", "content": tool_results})

execute_tool fonksiyonu, gerçek ekran yakalamayı, fare tıklamalarını ve klavye girişini bilgi işlem ortamınıza bağladığınız yerdir.

Koordinat Ölçekleme: Yaygın Hata

API görüntüleri en uzun kenarda maksimum 1568 piksel ile sınırlar. Ekranınız daha büyükse (örneğin 1512x982), screenshot’lar küçültülür — ancak Claude küçük görüntüye göre koordinatlar döndürür.

Koordinatları tekrar büyütmeniz gerekir:

import math

def get_scale_factor(width, height):
    long_edge = max(width, height)
    total_pixels = width * height
    long_edge_scale = 1568 / long_edge
    total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
    return min(1.0, long_edge_scale, total_pixels_scale)

scale = get_scale_factor(1512, 982)

# Claude "(450, 300)'e tıkla" dediğinde, yukarı ölçeklendirin:
def execute_click(x, y):
    screen_x = x / scale
    screen_y = y / scale
    perform_click(screen_x, screen_y)

Bu adımı atlamak Claude’un tıklamalarının hedefini kaçırmasına neden olur. Bu en yaygın tek uygulama hatasıdır.

Daha İyi Sonuçlar için Prompting İpuçları

Computer use, net ve yapılandırılmış promptlarla en iyi çalışır:

  1. Spesifik olun. “Firefox’u aç, example.com’a git ve Giriş düğmesine tıkla” “siteye giriş yap”tan daha iyi çalışır.

  2. Claude’dan doğrulama isteyin. Promptunuza bunu ekleyin: “Her adımdan sonra bir screenshot alın ve doğru sonuca ulaşıp ulaşmadığınızı değerlendirin. Yalnızca onaylandıktan sonra devam edin.”

  3. Klavye kısayollarını kullanın. Açılır menüler ve kaydırma çubukları tıklaması zor olabilir. Claude’u Tab, Enter ve ok tuşlarını kullanmaya yönlendirin.

  4. Örnekler sağlayın. Tekrarlanabilir görevler için, promptunuza örnek screenshot’lar ve beklenen tool çağrıları ekleyin.

  5. Kimlik bilgileri için XML etiketleri kullanın. Claude’un giriş yapması gerekiyorsa, kimlik bilgilerini <robot_credentials> etiketlerine geçirin. Ancak dikkatli olun — Claude güvenilmez içerikle etkileşime girdiğinde prompt injection riskleri daha yüksektir.

Güvenlik: Ciddiye Alın

Computer use kendine özgü güvenlik riskleri taşır:

  • Ekran içeriği aracılığıyla prompt injection. Claude ekrandaki her şeyi okur. Kötü amaçlı bir web sayfası promptunuzu geçersiz kılacak talimatlar görüntüleyebilir.
  • Otonom eylemler. Claude bağlantılara tıklayabilir, iletişim kutularını kabul edebilir veya hedeflediğiniz yerden uzaklaşabilir.
  • Kimlik bilgileri ifşası. Claude ekranda şifreler veya token’lar görebilirse, bunlar konuşmanın bir parçası haline gelir.

Anthropic, screenshot’lardaki potansiyel prompt injection’ları işaretleyen yerleşik sınıflandırıcılara sahiptir. Ancak en iyi savunma izolasyondur:

  • Minimum ayrıcalıklara sahip özel bir VM veya Docker konteynerinde çalıştırın
  • Gözetim olmadan hassas hesaplara erişim vermeyin
  • İnternet erişimini izin verilen alan adları listesiyle sınırlayın
  • Sonucu olan eylemler için insan onayı isteyin (satın almalar, hesap oluşturma, vb.)

Ne İnşa Edilir

Computer use, hızın kritik olmadığı ancak otomasyonun değerli olduğu görevler için en iyisidir:

  • Otomatik test — yalnızca web uygulamaları değil, herhangi bir masaüstü uygulamasını test edin
  • Veri toplama — web sitelerinde gezinin ve bilgi çıkarın
  • Eski sistem entegrasyonu — API’si olmayan uygulamalardaki iş akışlarını otomatikleştirin
  • Form doldurma — birden fazla sitede web formlarını doldurun
  • Araştırma iş akışları — web’den bilgi arayın, okuyun ve derleyin
  • QA ve izleme — UI’ların doğru render edildiğini doğrulayın

Araştırma ve veri toplama iş akışları için Save gibi araçlar computer use’u iyi tamamlar — Claude bir sayfaya gidince, bunu temiz Markdown’a dönüştürmek ham screenshot’lar yerine yapılandırılmış, AI’ya hazır içerik sağlar.

Mevcut Sınırlamalar

Bu beta sınırlamalarına dikkat edin:

  • Gecikme. Her eylem bir API çağrısı, screenshot yakalamak ve yanıt gerektirir. Bir insan etrafı tıklamasından daha yavaştır.
  • Görüş doğruluğu. Claude küçük metni yanlış okuyabilir veya UI öğelerini yanlış tanımlayabilir. Yeni zoom eylemi yardımcı olur, ancak mükemmel değildir.
  • Kaydırma. Son sürümlerde önemli ölçüde iyileşti, ancak karmaşık kaydırma etkileşimleri hala güvenilmez olabilir.
  • Elektronik tablolar. Hücre seçimi zorludur. Mümkün olduğunda klavye navigasyonu kullanın.
  • Sosyal platformlarda hesap oluşturma yok. Claude kasıtlı olarak sosyal medyada hesap oluşturmaz veya insanları taklit etmez.

Fiyatlandırma

Computer use standart tool kullanım fiyatlandırmasını izler:

  • Sistem prompt ek yükü: 466-499 token
  • Tool tanımı: tool başına 735 token (Claude 4.x için)
  • Screenshot’lar: vision token olarak faturalandırılır (çözünürlüğe göre değişir)
  • Agent loop’taki her API çağrısı ayrı bir faturalandırılabilir istektir

Tipik 10 adımlı bir görev için, screenshot boyutlarına ve yanıt karmaşıklığına bağlı olarak 15.000-50.000 token kullanmayı bekleyin.

Başlarken

  1. Referans uygulamasını deneyin. anthropic-quickstarts klonlayın, Docker konteynerini çalıştırın ve deneyin.
  2. Basit görevlerle başlayın. “Bir metin editörü aç, Hello World yaz, dosyayı kaydet.” Karmaşık iş akışlarını denemeden önce agent loop’un çalışmasını sağlayın.
  3. Güvenlik önlemleri ekleyin. Yineleme sınırları belirleyin. Koordinatları doğrulayın. Her eylemi günlüğe kaydedin. Geri alınamaz her şey için insan onayı ekleyin.
  4. Promptlarınızı optimize edin. Talimatlarınız ne kadar iyi olursa, Claude o kadar az yinelemeye ihtiyaç duyar — ve token maliyetleriniz o kadar düşük olur.

Computer use, AI API’leriyle neyin mümkün olduğunda temel bir değişimi temsil eder. Her uygulama için özel entegrasyonlar oluşturmak yerine, Claude’a insanların kullandığı arayüzün aynısını verebilirsiniz — bir ekran, bir fare ve bir klavye — ve gerisini onun çözmesine izin verebilirsiniz.

Otomasyonun geleceği daha fazla API değil. Halihazırda sahip olduğumuz arayüzleri kullanabilen AI.