Loading...
    • Guia do Desenvolvedor
    • Referência da API
    • MCP
    • Recursos
    • Notas de lançamento
    Search...
    ⌘K
    Primeiros passos
    Introdução ao ClaudeInício rápido
    Modelos e preços
    Visão geral dos modelosEscolhendo um modeloNovidades no Claude 4.6Guia de migraçãoDescontinuação de modelosPreços
    Construir com Claude
    Visão geral de recursosUsando a API MessagesTratando motivos de paradaMelhores práticas de prompting
    Capacidades do modelo
    Pensamento estendidoPensamento adaptativoEsforçoModo rápido (visualização de pesquisa)Saídas estruturadasCitaçõesStreaming de mensagensProcessamento em loteSuporte a PDFResultados de pesquisaSuporte multilíngueEmbeddingsVisão
    Ferramentas
    Visão geralComo implementar o uso de ferramentasFerramenta de pesquisa na webFerramenta de busca na webFerramenta de execução de códigoFerramenta de memóriaFerramenta BashFerramenta de uso do computadorFerramenta de editor de texto
    Infraestrutura de ferramentas
    Pesquisa de ferramentasChamada de ferramentas programáticaStreaming de ferramentas de granulação fina
    Gerenciamento de contexto
    Janelas de contextoCompactaçãoEdição de contextoCache de promptsContagem de tokens
    Arquivos e ativos
    API de arquivos
    Habilidades do agente
    Visão geralInício rápidoMelhores práticasHabilidades para empresasUsando habilidades com a API
    SDK do agente
    Visão geralInício rápidoSDK TypeScriptTypeScript V2 (visualização)SDK PythonGuia de migração
    MCP na API
    Conector MCPServidores MCP remotos
    Claude em plataformas de terceiros
    Amazon BedrockMicrosoft FoundryVertex AI
    Engenharia de prompts
    Visão geralGerador de promptsUsar modelos de promptsMelhorador de promptsSeja claro e diretoUse exemplos (prompting multishot)Deixe Claude pensar (CoT)Use tags XMLDê um papel ao Claude (prompts do sistema)Encadear prompts complexosDicas de contexto longoDicas de pensamento estendido
    Testar e avaliar
    Definir critérios de sucessoDesenvolver casos de testeUsando a ferramenta de avaliaçãoReduzindo latência
    Fortalecer proteções
    Reduzir alucinaçõesAumentar consistência de saídaMitigar jailbreaksRecusas de streamingReduzir vazamento de promptsManter Claude em personagem
    Administração e monitoramento
    Visão geral da API de administraçãoResidência de dadosEspaços de trabalhoAPI de uso e custoAPI de análise de código ClaudeRetenção zero de dados
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Ferramentas

    Ferramenta de execução de código

    Was this page helpful?

    • Compatibilidade de modelos
    • Disponibilidade na plataforma
    • Início rápido
    • Como funciona a execução de código
    • Usando execução de código com outras ferramentas de execução
    • Como usar a ferramenta
    • Executar comandos Bash
    • Criar e editar arquivos diretamente
    • Enviar e analisar seus próprios arquivos
    • Combinar operações
    • Definição da ferramenta
    • Formato de resposta
    • Resposta de comando Bash
    • Respostas de operações de arquivo
    • Resultados
    • Erros
    • Contêineres
    • Ambiente de execução
    • Limites de recursos
    • Rede e segurança
    • Bibliotecas pré-instaladas
    • Reutilização de contêiner
    • Exemplo
    • Streaming
    • Solicitações em lote
    • Uso e preços
    • Atualizar para a versão mais recente da ferramenta
    • O que mudou
    • Compatibilidade retroativa
    • Etapas de atualização
    • Chamada programática de ferramentas
    • Retenção de dados
    • Usando execução de código com Agent Skills

    Claude pode analisar dados, criar visualizações, realizar cálculos complexos, executar comandos do sistema, criar e editar arquivos, e processar arquivos enviados diretamente na conversa da API. A ferramenta de execução de código permite que Claude execute comandos Bash e manipule arquivos, incluindo a escrita de código, em um ambiente seguro e isolado (sandbox).

    A execução de código é gratuita quando usada com pesquisa na web ou busca na web. Quando web_search_20260209 ou web_fetch_20260209 está incluído na sua solicitação, não há cobranças adicionais para chamadas da ferramenta de execução de código além dos custos padrão de tokens de entrada e saída. As cobranças padrão de execução de código se aplicam quando essas ferramentas não estão incluídas.

    A execução de código é uma primitiva central para a construção de agentes de alto desempenho. Ela permite filtragem dinâmica nas ferramentas de pesquisa na web e busca na web, permitindo que Claude processe resultados antes que eles cheguem à janela de contexto — melhorando a precisão enquanto reduz o consumo de tokens.

    Entre em contato através do nosso formulário de feedback para compartilhar seu feedback sobre este recurso.

    This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.

    Compatibilidade de modelos

    A ferramenta de execução de código está disponível nos seguintes modelos:

    ModeloVersão da Ferramenta
    Claude Opus 4.6 (claude-opus-4-6)code_execution_20250825
    Claude Sonnet 4.6 (claude-sonnet-4-6)code_execution_20250825
    Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)code_execution_20250825
    Claude Opus 4.5 (claude-opus-4-5-20251101)code_execution_20250825
    Claude Opus 4.1 (claude-opus-4-1-20250805)code_execution_20250825
    Claude Opus 4 (claude-opus-4-20250514)code_execution_20250825
    Claude Sonnet 4 (claude-sonnet-4-20250514)code_execution_20250825
    Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (descontinuado)code_execution_20250825
    Claude Haiku 4.5 (claude-haiku-4-5-20251001)code_execution_20250825
    Claude Haiku 3.5 (claude-3-5-haiku-latest) (descontinuado)code_execution_20250825

    A versão atual code_execution_20250825 suporta comandos Bash e operações de arquivo. Uma versão legada code_execution_20250522 (somente Python) também está disponível. Consulte Atualizar para a versão mais recente da ferramenta para detalhes de migração.

    Versões mais antigas da ferramenta não têm garantia de compatibilidade retroativa com modelos mais novos. Sempre use a versão da ferramenta que corresponde à versão do seu modelo.

    Disponibilidade na plataforma

    A execução de código está disponível em:

    • Claude API (Anthropic)
    • Microsoft Azure AI Foundry

    A execução de código não está disponível atualmente no Amazon Bedrock ou Google Vertex AI.

    Início rápido

    Aqui está um exemplo simples que pede ao Claude para realizar um cálculo:

    Como funciona a execução de código

    Quando você adiciona a ferramenta de execução de código à sua solicitação de API:

    1. Claude avalia se a execução de código ajudaria a responder sua pergunta
    2. A ferramenta fornece automaticamente ao Claude as seguintes capacidades:
      • Comandos Bash: Executar comandos shell para operações do sistema e gerenciamento de pacotes
      • Operações de arquivo: Criar, visualizar e editar arquivos diretamente, incluindo a escrita de código
    3. Claude pode usar qualquer combinação dessas capacidades em uma única solicitação
    4. Todas as operações são executadas em um ambiente sandbox seguro
    5. Claude fornece resultados com quaisquer gráficos gerados, cálculos ou análises

    Usando execução de código com outras ferramentas de execução

    Quando você fornece execução de código junto com ferramentas fornecidas pelo cliente que também executam código (como uma ferramenta bash ou REPL personalizado), Claude está operando em um ambiente multi-computador. A ferramenta de execução de código é executada no contêiner sandbox da Anthropic, enquanto suas ferramentas fornecidas pelo cliente são executadas em um ambiente separado que você controla. Claude às vezes pode confundir esses ambientes, tentando usar a ferramenta errada ou assumindo que o estado é compartilhado entre eles.

    Para evitar isso, adicione instruções ao seu prompt de sistema que esclareçam a distinção:

    When multiple code execution environments are available, be aware that:
    - Variables, files, and state do NOT persist between different execution environments
    - Use the code_execution tool for general-purpose computation in Anthropic's sandboxed environment
    - Use client-provided execution tools (e.g., bash) when you need access to the user's local system, files, or data
    - If you need to pass results between environments, explicitly include outputs in subsequent tool calls rather than assuming shared state

    Isso é especialmente importante ao combinar execução de código com pesquisa na web ou busca na web, que habilitam a execução de código automaticamente. Se sua aplicação já fornece uma ferramenta shell do lado do cliente, a execução de código automática cria um segundo ambiente de execução que Claude precisa distinguir.

    Como usar a ferramenta

    Executar comandos Bash

    Peça ao Claude para verificar informações do sistema e instalar pacotes:

    Criar e editar arquivos diretamente

    Claude pode criar, visualizar e editar arquivos diretamente no sandbox usando as capacidades de manipulação de arquivos:

    Enviar e analisar seus próprios arquivos

    Para analisar seus próprios arquivos de dados (CSV, Excel, imagens, etc.), envie-os via Files API e referencie-os na sua solicitação:

    Usar a Files API com Execução de Código requer o cabeçalho beta da Files API: "anthropic-beta": "files-api-2025-04-14"

    O ambiente Python pode processar vários tipos de arquivo enviados via Files API, incluindo:

    • CSV
    • Excel (.xlsx, .xls)
    • JSON
    • XML
    • Imagens (JPEG, PNG, GIF, WebP)
    • Arquivos de texto (.txt, .md, .py, etc)

    Enviar e analisar arquivos

    1. Envie seu arquivo usando a Files API
    2. Referencie o arquivo na sua mensagem usando um bloco de conteúdo container_upload
    3. Inclua a ferramenta de execução de código na sua solicitação de API

    Recuperar arquivos gerados

    Quando Claude cria arquivos durante a execução de código, você pode recuperar esses arquivos usando a Files API:

    Combinar operações

    Um fluxo de trabalho complexo usando todas as capacidades:

    Definição da ferramenta

    A ferramenta de execução de código não requer parâmetros adicionais:

    JSON
    {
      "type": "code_execution_20250825",
      "name": "code_execution"
    }

    Quando esta ferramenta é fornecida, Claude ganha automaticamente acesso a duas sub-ferramentas:

    • bash_code_execution: Executar comandos shell
    • text_editor_code_execution: Visualizar, criar e editar arquivos, incluindo a escrita de código

    Formato de resposta

    A ferramenta de execução de código pode retornar dois tipos de resultados dependendo da operação:

    Resposta de comando Bash

    {
      "type": "server_tool_use",
      "id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
      "name": "bash_code_execution",
      "input": {
        "command": "ls -la | head -5"
      }
    },
    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
      "content": {
        "type": "bash_code_execution_result",
        "stdout": "total 24\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\ndrwxr-xr-x 3 user user 4096 Jan 1 11:00 ..\n-rw-r--r-- 1 user user  220 Jan 1 12:00 data.csv\n-rw-r--r-- 1 user user  180 Jan 1 12:00 config.json",
        "stderr": "",
        "return_code": 0
      }
    }

    Respostas de operações de arquivo

    Visualizar arquivo:

    {
      "type": "server_tool_use",
      "id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "name": "text_editor_code_execution",
      "input": {
        "command": "view",
        "path": "config.json"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "content": {
        "type": "text_editor_code_execution_result",
        "file_type": "text",
        "content": "{\n  \"setting\": \"value\",\n  \"debug\": true\n}",
        "numLines": 4,
        "startLine": 1,
        "totalLines": 4
      }
    }

    Criar arquivo:

    {
      "type": "server_tool_use",
      "id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "name": "text_editor_code_execution",
      "input": {
        "command": "create",
        "path": "new_file.txt",
        "file_text": "Hello, World!"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
      "content": {
        "type": "text_editor_code_execution_result",
        "is_file_update": false
      }
    }

    Editar arquivo (str_replace):

    {
      "type": "server_tool_use",
      "id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
      "name": "text_editor_code_execution",
      "input": {
        "command": "str_replace",
        "path": "config.json",
        "old_str": "\"debug\": true",
        "new_str": "\"debug\": false"
      }
    },
    {
      "type": "text_editor_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
      "content": {
        "type": "text_editor_code_execution_result",
        "oldStart": 3,
        "oldLines": 1,
        "newStart": 3,
        "newLines": 1,
        "lines": ["-  \"debug\": true", "+  \"debug\": false"]
      }
    }

    Resultados

    Todos os resultados de execução incluem:

    • stdout: Saída da execução bem-sucedida
    • stderr: Mensagens de erro se a execução falhar
    • return_code: 0 para sucesso, diferente de zero para falha

    Campos adicionais para operações de arquivo:

    • Visualizar: file_type, content, numLines, startLine, totalLines
    • Criar: is_file_update (se o arquivo já existia)
    • Editar: oldStart, oldLines, newStart, newLines, lines (formato diff)

    Erros

    Cada tipo de ferramenta pode retornar erros específicos:

    Erros comuns (todas as ferramentas):

    {
      "type": "bash_code_execution_tool_result",
      "tool_use_id": "srvtoolu_01VfmxgZ46TiHbmXgy928hQR",
      "content": {
        "type": "bash_code_execution_tool_result_error",
        "error_code": "unavailable"
      }
    }

    Códigos de erro por tipo de ferramenta:

    FerramentaCódigo de ErroDescrição
    Todas as ferramentasunavailableA ferramenta está temporariamente indisponível
    Todas as ferramentasexecution_time_exceededA execução excedeu o limite máximo de tempo
    Todas as ferramentascontainer_expiredO contêiner expirou e não está mais disponível
    Todas as ferramentasinvalid_tool_inputParâmetros inválidos fornecidos à ferramenta
    Todas as ferramentastoo_many_requestsLimite de taxa excedido para uso da ferramenta
    text_editorfile_not_found

    Motivo de parada pause_turn

    A resposta pode incluir um motivo de parada pause_turn, que indica que a API pausou um turno de longa duração. Você pode fornecer a resposta de volta como está em uma solicitação subsequente para permitir que Claude continue seu turno, ou modificar o conteúdo se desejar interromper a conversa.

    Contêineres

    A ferramenta de execução de código é executada em um ambiente seguro e conteinerizado projetado especificamente para execução de código, com maior foco em Python.

    Ambiente de execução

    • Versão do Python: 3.11.12
    • Sistema operacional: Contêiner baseado em Linux
    • Arquitetura: x86_64 (AMD64)

    Limites de recursos

    • Memória: 5GiB de RAM
    • Espaço em disco: 5GiB de armazenamento no workspace
    • CPU: 1 CPU

    Rede e segurança

    • Acesso à internet: Completamente desabilitado por segurança
    • Conexões externas: Nenhuma solicitação de rede de saída permitida
    • Isolamento do sandbox: Isolamento completo do sistema host e outros contêineres
    • Acesso a arquivos: Limitado apenas ao diretório do workspace
    • Escopo do workspace: Como Files, os contêineres têm escopo para o workspace da chave de API
    • Expiração: Os contêineres expiram 30 dias após a criação

    Bibliotecas pré-instaladas

    O ambiente Python em sandbox inclui estas bibliotecas comumente usadas:

    • Ciência de Dados: pandas, numpy, scipy, scikit-learn, statsmodels
    • Visualização: matplotlib, seaborn
    • Processamento de Arquivos: pyarrow, openpyxl, xlsxwriter, xlrd, pillow, python-pptx, python-docx, pypdf, pdfplumber, pypdfium2, pdf2image, pdfkit, tabula-py, reportlab[pycairo], Img2pdf
    • Matemática e Computação: sympy, mpmath
    • Utilitários: tqdm, python-dateutil, pytz, joblib, unzip, unrar, 7zip, bc, rg (ripgrep), fd, sqlite

    Reutilização de contêiner

    Você pode reutilizar um contêiner existente em múltiplas solicitações de API fornecendo o ID do contêiner de uma resposta anterior. Isso permite que você mantenha os arquivos criados entre solicitações.

    Exemplo

    Streaming

    Com o streaming habilitado, você receberá eventos de execução de código à medida que ocorrem:

    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "code_execution"}}
    
    // Execução de código transmitida
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"code\":\"import pandas as pd\\ndf = pd.read_csv('data.csv')\\nprint(df.head())\"}"}}
    
    // Pausa enquanto o código é executado
    
    // Resultados da execução transmitidos
    event: content_block_start
    data: {"type": "content_block_start", "index": 2, "content_block": {"type": "code_execution_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"stdout": "   A  B  C\n0  1  2  3\n1  4  5  6", "stderr": ""}}}

    Solicitações em lote

    Você pode incluir a ferramenta de execução de código na API de Lotes de Mensagens. As chamadas da ferramenta de execução de código através da API de Lotes de Mensagens têm o mesmo preço que aquelas em solicitações regulares da API de Mensagens.

    Uso e preços

    Code execution is free when used with web search or web fetch. When web_search_20260209 or web_fetch_20260209 is included in your API request, there are no additional charges for code execution tool calls beyond the standard input and output token costs.

    When used without these tools, code execution is billed by execution time, tracked separately from token usage:

    • Execution time has a minimum of 5 minutes
    • Each organization receives 1,550 free hours of usage per month
    • Additional usage beyond 1,550 hours is billed at $0.05 per hour, per container
    • If files are included in the request, execution time is billed even if the tool is not invoked, due to files being preloaded onto the container

    Code execution usage is tracked in the response:

    "usage": {
      "input_tokens": 105,
      "output_tokens": 239,
      "server_tool_use": {
        "code_execution_requests": 1
      }
    }

    Atualizar para a versão mais recente da ferramenta

    Ao atualizar para code-execution-2025-08-25, você obtém acesso à manipulação de arquivos e capacidades Bash, incluindo código em múltiplas linguagens. Não há diferença de preço.

    O que mudou

    ComponenteLegadoAtual
    Cabeçalho betacode-execution-2025-05-22code-execution-2025-08-25
    Tipo de ferramentacode_execution_20250522code_execution_20250825
    CapacidadesSomente PythonComandos Bash, operações de arquivo
    Tipos de respostacode_execution_resultbash_code_execution_result, text_editor_code_execution_result

    Compatibilidade retroativa

    • Toda a execução de código Python existente continua funcionando exatamente como antes
    • Nenhuma alteração necessária nos fluxos de trabalho existentes somente com Python

    Etapas de atualização

    Para atualizar, atualize o tipo de ferramenta nas suas solicitações de API:

    - "type": "code_execution_20250522"
    + "type": "code_execution_20250825"

    Revise o tratamento de respostas (se estiver analisando respostas programaticamente):

    • Os blocos anteriores para respostas de execução Python não serão mais enviados
    • Em vez disso, novos tipos de resposta para Bash e operações de arquivo serão enviados (consulte a seção Formato de Resposta)

    Chamada programática de ferramentas

    A ferramenta de execução de código alimenta a chamada programática de ferramentas, que permite que Claude escreva código que chama suas ferramentas personalizadas programaticamente dentro do contêiner de execução. Isso permite fluxos de trabalho eficientes com múltiplas ferramentas, filtragem de dados antes de chegar ao contexto de Claude, e lógica condicional complexa.

    Python
    # Habilitar chamada programática para suas ferramentas
    response = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        messages=[
            {"role": "user", "content": "Get weather for 5 cities and find the warmest"}
        ],
        tools=[
            {"type": "code_execution_20250825", "name": "code_execution"},
            {
                "name": "get_weather",
                "description": "Get weather for a city",
                "input_schema": {...},
                "allowed_callers": [
                    "code_execution_20250825"
                ],  # Habilitar chamada programática
            },
        ],
    )

    Saiba mais na documentação de chamada programática de ferramentas.

    Retenção de dados

    A execução de código ocorre em contêineres sandbox no lado do servidor. Os dados do contêiner, incluindo artefatos de execução, arquivos enviados e saídas, são retidos por até 30 dias. Essa retenção se aplica a todos os dados processados dentro do ambiente do contêiner.

    Para elegibilidade de ZDR em todos os recursos, consulte API e Retenção de Dados.

    Usando execução de código com Agent Skills

    A ferramenta de execução de código permite que o Claude use Agent Skills. Skills são capacidades modulares compostas por instruções, scripts e recursos que ampliam a funcionalidade do Claude.

    Saiba mais na documentação de Agent Skills e no guia de API de Agent Skills.

    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [
                {
                    "role": "user",
                    "content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
                }
            ],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": "Check the Python version and list installed packages"
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": "Create a config.yaml file with database settings, then update the port from 5432 to 3306"
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    # Primeiro, envie um arquivo
    curl https://api.anthropic.com/v1/files \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --form 'file=@"data.csv"' \
    
    # Em seguida, use o file_id com execução de código
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": [
                    {"type": "text", "text": "Analyze this CSV data"},
                    {"type": "container_upload", "file_id": "file_abc123"}
                ]
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    from anthropic import Anthropic
    
    # Inicializar o cliente
    client = Anthropic()
    
    # Solicitar execução de código que cria arquivos
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        betas=["files-api-2025-04-14"],
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Create a matplotlib visualization and save it as output.png",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    
    # Extrair IDs de arquivo da resposta
    def extract_file_ids(response):
        file_ids = []
        for item in response.content:
            if item.type == "bash_code_execution_tool_result":
                content_item = item.content
                if content_item.type == "bash_code_execution_result":
                    for file in content_item.content:
                        if hasattr(file, "file_id"):
                            file_ids.append(file.file_id)
        return file_ids
    
    
    # Baixar os arquivos criados
    for file_id in extract_file_ids(response):
        file_metadata = client.beta.files.retrieve_metadata(file_id)
        file_content = client.beta.files.download(file_id)
        file_content.write_to_file(file_metadata.filename)
        print(f"Downloaded: {file_metadata.filename}")
    # Primeiro, envie um arquivo
    curl https://api.anthropic.com/v1/files \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --form 'file=@"data.csv"' \
        > file_response.json
    
    # Extrair file_id (usando jq)
    FILE_ID=$(jq -r '.id' file_response.json)
    
    # Em seguida, use-o com execução de código
    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: files-api-2025-04-14" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-opus-4-6",
            "max_tokens": 4096,
            "messages": [{
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "Analyze this CSV data: create a summary report, save visualizations, and create a README with the findings"
                    },
                    {
                        "type": "container_upload",
                        "file_id": "'$FILE_ID'"
                    }
                ]
            }],
            "tools": [{
                "type": "code_execution_20250825",
                "name": "code_execution"
            }]
        }'
    O arquivo não existe (para operações de visualização/edição)
    text_editorstring_not_foundO old_str não foi encontrado no arquivo (para str_replace)
    import os
    from anthropic import Anthropic
    
    # Inicializar o cliente
    client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
    # Primeira solicitação: Criar um arquivo com um número aleatório
    response1 = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Write a file with a random number and save it to '/tmp/number.txt'",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )
    
    # Extrair o ID do contêiner da primeira resposta
    container_id = response1.container.id
    
    # Segunda solicitação: Reutilizar o contêiner para ler o arquivo
    response2 = client.messages.create(
        container=container_id,  # Reutilizar o mesmo contêiner
        model="claude-opus-4-6",
        max_tokens=4096,
        messages=[
            {
                "role": "user",
                "content": "Read the number from '/tmp/number.txt' and calculate its square",
            }
        ],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )