← Tilbage til blog

Claude Computer Use Tool: Den komplette udviklervejledning til AI-desktopautomatisering

· Save Team
claudeaicomputer-useautomationapideveloperanthropic

Hvad nu, hvis du kunne bede en AI om at “åbne Firefox, navigere til en hjemmeside, udfylde formularen og gemme resultatet” — og den rent faktisk gjorde det? Ikke gennem et skrøbeligt Selenium-script. Ikke gennem en custom API-integration. Bare… ved at kigge på skærmen og bruge en mus og et tastatur som et menneske ville.

Det er præcis, hvad Claude’s computer use tool gør.

Hvad er computer use?

Computer use er en beta API-funktion der lader Claude interagere med desktopomgivelser via:

  • Screenshot capture — Claude ser hvad der er på skærmen
  • Musekontrol — klikke, trække, scrolle
  • Tastaturinput — skrive tekst, trykke genveje
  • Desktopautomatisering — interagere med ethvert program

Nøgleordet er ethvert. I modsætning til traditionel automatisering (Selenium for browsere, AppleScript for macOS) behøver Claude ikke specielle API’er eller elementselektorer. Den kigger på pixels på en skærm og beslutter, hvad der skal klikkes. Ligesom du gør.

Hvordan det virker (Agent loop)

Computer use følger en simpel cyklus:

  1. Du sender Claude en opgave — “Gem et billede af en kat på mit skrivebord”
  2. Claude anmoder om en toolhandling — “Tag et screenshot”
  3. Din app eksekverer det — fanger skærmen, returnerer billedet
  4. Claude analyserer og anmoder om næste handling — “Klik ved koordinater (500, 300)”
  5. Gentag indtil opgaven er færdig

Denne cyklus kaldes agent loop. Claude bliver ved med at anmode om handlinger (screenshot, klik, skriv, scroll), og din applikation eksekverer dem, indtil Claude afgør at opgaven er fuldført.

Her er det minimale API-kald for at komme i gang:

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"],
)

Beta-headeren "computer-use-2025-11-24" er påkrævet. De tre tools (computer, teksteditor, bash) arbejder sammen om at give Claude fuld kontrol over omgivelserne.

Tilgængelige handlinger

Computer use tool understøtter et rigt sæt interaktioner:

Grundlæggende handlinger

  • screenshot — fang det aktuelle display
  • left_click — klik ved [x, y]-koordinater
  • type — skriv en tekststreng
  • key — tryk en tast eller kombination (f.eks. ctrl+s, alt+tab)
  • mouse_move — flyt cursoren

Udvidede handlinger (Claude 4.x-modeller)

  • scroll — scroll i en hvilken som helst retning med mængdekontrol
  • left_click_drag — klik og træk mellem koordinater
  • right_click, middle_click — yderligere museknapper
  • double_click, triple_click — multi-klik
  • hold_key — hold en tast nede i en varighed
  • wait — pause mellem handlinger

Nyeste tilføjelse: Zoom

Tilgængelig på Claude Opus 4.6, Sonnet 4.6 og Opus 4.5:

  • zoom — undersøg en specifik skærmregion i fuld opløsning

Dette er særligt nyttigt, når Claude skal læse lille tekst eller identificere fine UI-detaljer.

Computing-omgivelserne

Claude forbinder sig ikke direkte til din computer. Du skal levere et sandboxet miljø — typisk en Docker-container der kører:

  • Virtuelt display — Xvfb (X Virtual Framebuffer) renderer skrivebordet
  • Desktopomgivelse — en letvægts window manager som Mutter
  • Programmer — Firefox, LibreOffice, filhåndterere, osv.
  • Tool-implementeringer — kode der oversætter Claude’s anmodninger til faktiske mus/tastaturoperationer

Anthropic leverer en referenceimplementering med alt dette forudkonfigureret i Docker. Det er den hurtigste måde at komme i gang.

Bygge agent loop

Her er en forenklet agent loop der håndterer frem-og-tilbage:

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})

        # Udtræk tool calls
        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  # Opgave fuldført

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

Funktionen execute_tool er der, hvor du tilslutter den faktiske skærmfangst, museklik og tastaturinput til dit computing-miljø.

Koordinatskalering: Den skjulte fejlkilde

API’et begrænser billeder til maksimalt 1568px på den længste kant. Hvis dit display er større (f.eks. 1512x982), nedskaleres screenshots — men Claude returnerer koordinater baseret på det mindre billede.

Du skal skalere koordinater op igen:

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)

# Når Claude siger "klik ved (450, 300)", skal du skalere op:
def execute_click(x, y):
    screen_x = x / scale
    screen_y = y / scale
    perform_click(screen_x, screen_y)

At springe dette trin over betyder, at Claude’s klik vil ramme ved siden af. Dette er den enkelt mest almindelige implementeringsfejl.

Prompting-tips for bedre resultater

Computer use virker bedst med klare, strukturerede prompts:

  1. Vær specifik. “Åbn Firefox, gå til example.com, og klik på Login-knappen” virker bedre end “log ind på siden.”

  2. Bed Claude om at verificere. Tilføj dette til din prompt: “Tag et screenshot og evaluer om du opnåede det rigtige resultat efter hvert trin. Gå kun videre, når det er bekræftet.”

  3. Brug tastaturgenveje. Dropdowns og scrollbars kan være vanskelige at klikke på. Prompt Claude til at bruge Tab, Enter og piletaster i stedet.

  4. Giv eksempler. For gentagne opgaver, inkluder eksempelscreenshots og forventede tool calls i din prompt.

  5. Brug XML-tags til legitimationsoplysninger. Hvis Claude skal logge ind, send legitimationsoplysninger i <robot_credentials>-tags. Men vær forsigtig — prompt injection-risici er højere, når Claude interagerer med utroværdigt indhold.

Sikkerhed: Tag det alvorligt

Computer use har unikke sikkerhedsrisici:

  • Prompt injection via skærmindhold. Claude læser alt på skærmen. En ondsindet webside kunne vise instruktioner, der tilsidesætter din prompt.
  • Autonome handlinger. Claude kan klikke på links, acceptere dialogbokse eller navigere væk fra, hvor du havde tænkt.
  • Eksponering af legitimationsoplysninger. Hvis Claude kan se adgangskoder eller tokens på skærmen, bliver de en del af samtalen.

Anthropic har indbyggede klassifikatorer, der markerer potentielle prompt injections i screenshots. Men det bedste forsvar er isolation:

  • Kør i en dedikeret VM eller Docker-container med minimale rettigheder
  • Giv ikke adgang til følsomme konti uden opsyn
  • Begræns internetadgang til en tilladelsesliste over domæner
  • Kræv menneskelig bekræftelse for konsekvente handlinger (køb, kontoooprettelse, osv.)

Hvad man bygger med det

Computer use er bedst til opgaver, hvor hastighed ikke er kritisk, men automatisering er værdifuld:

  • Automatiseret testning — test ethvert desktopprogram, ikke kun webapps
  • Dataindsamling — naviger hjemmesider og udtræk information
  • Legacy system-integration — automatiser arbejdsgange i apps der ikke har API
  • Formularudfyldelse — udfyld webformularer på tværs af flere sider
  • Researchworkflows — søg, læs og kompiler information fra nettet
  • QA & monitorering — verificer at brugergrænseflader renderer korrekt

Til research- og dataindsamlingsworkflows komplementerer værktøjer som Save computer use godt — når Claude navigerer til en side, giver konvertering til ren Markdown struktureret, AI-klar indhold i stedet for rå screenshots.

Aktuelle begrænsninger

Vær opmærksom på disse beta-begrænsninger:

  • Latenstid. Hver handling kræver et API-kald, screenshot-fangst og svar. Det er langsommere end et menneske der klikker rundt.
  • Synsaccuratesse. Claude kan misforstå lille tekst eller fejlidentificere UI-elementer. Den nye zoom-handling hjælper, men er ikke perfekt.
  • Scrolling. Forbedret markant i nyere versioner, men komplekse scroll-interaktioner kan stadig være upålidelige.
  • Regneark. Cellevalg er tricky. Brug tastaturnavigation, når det er muligt.
  • Ingen kontoooprettelse på sociale platforme. Claude vil bevidst ikke oprette konti eller udgive sig for at være mennesker på sociale medier.

Prissætning

Computer use følger standard tool use-prissætning:

  • System prompt overhead: 466-499 tokens
  • Tool definition: 735 tokens per tool (for Claude 4.x)
  • Screenshots: faktureres som vision tokens (varierer efter opløsning)
  • Hvert API-kald i agent loop er en separat fakturerbar anmodning

For en typisk opgave med 10 trin, forvent at bruge 15.000-50.000 tokens afhængigt af screenshot-størrelser og svarens kompleksitet.

Kom i gang

  1. Prøv referenceimplementeringen. Klon anthropic-quickstarts, kør Docker-containeren og eksperimenter.
  2. Start med enkle opgaver. “Åbn en teksteditor, skriv Hello World, gem filen.” Få agent loop til at virke, inden du forsøger komplekse arbejdsgange.
  3. Tilføj sikkerhedsforanstaltninger. Sæt iterationsgrænser. Valider koordinater. Log enhver handling. Tilføj menneskelig bekræftelse for alt, der ikke kan fortrydes.
  4. Optimer dine prompts. Jo bedre dine instruktioner, desto færre iterationer har Claude brug for — og desto lavere er dine tokenomkostninger.

Computer use repræsenterer et grundlæggende skift i, hvad der er muligt med AI API’er. I stedet for at bygge custom integrationer til hvert program, kan du give Claude den samme grænseflade, som mennesker bruger — en skærm, en mus og et tastatur — og lade den klare resten.

Fremtiden for automatisering er ikke flere API’er. Det er AI der kan bruge de grænseflader, vi allerede har.