Uso de ferramentas
Atenção
Várias funções abaixo são oferecidas na versão beta, conforme indicado. Esses recursos estão disponíveis como um “serviço beta”, conforme definido nos Termos de Serviço da AWS. Ele está sujeito ao seu contrato com a AWS e aos Termos de Serviço da AWS e ao modelo de EULA aplicável.
Com os modelos Claude da Anthropic, você pode especificar uma ferramenta que o modelo pode usar para responder a uma mensagem. Por exemplo, você pode especificar uma ferramenta que obtenha a música mais tocada em uma estação de rádio. Se o usuário transmitir a mensagem Qual é a música mais tocada na WZPZ?, o modelo determinará que a ferramenta especificada pode ajudar a responder à pergunta. Na resposta, o modelo solicita a você executar a ferramenta em seu nome. Em seguida, você executa a ferramenta e passa o resultado da ferramenta para o modelo, que gera uma resposta para a mensagem original. Para obter mais informações, consulte Tool use (function calling)
dica
É recomendável usar a API Converse para integrar o uso de ferramentas à aplicação. Para obter mais informações, consulte Use uma ferramenta para concluir uma resposta do modelo do Amazon Bedrock.
Importante
O Claude Sonnet 4.5 agora preserva a formatação intencional nos parâmetros da string de chamada da ferramenta. Antes, as novas linhas finais nos parâmetros de string às vezes eram incorretamente removidas. Essa correção garante que as ferramentas que exigem formatação precisa (como editores de texto) recebam os parâmetros exatamente como pretendido. Essa é uma melhoria subjacente e não requer alterações na API. No entanto, as ferramentas com parâmetros de string agora podem receber valores com novas linhas à direita que foram removidas anteriormente.
nota
O Claude Sonnet 4.5 inclui otimizações automáticas para melhorar o desempenho do modelo. Essas otimizações podem adicionar pequenas quantidades de tokens às solicitações, mas você não recebe cobranças por esses tokens adicionados pelo sistema.
Você especifica as ferramentas que deseja disponibilizar para um modelo no campo tools. O exemplo a seguir é de uma ferramenta que obtém as músicas mais tocadas em uma estação de rádio.
[ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "input_schema": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } ]
Quando precisa de uma ferramenta para gerar uma resposta a uma mensagem, o modelo retorna informações sobre a ferramenta solicitada, e a entrada para a ferramenta no campo content da mensagem. Ele também define o motivo da interrupção da resposta para tool_use.
{ "id": "msg_bdrk_01USsY5m3XRUF4FCppHP8KBx", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "stop_sequence": null, "usage": { "input_tokens": 375, "output_tokens": 36 }, "content": [ { "type": "tool_use", "id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "name": "top_song", "input": { "sign": "WZPZ" } } ], "stop_reason": "tool_use" }
No código, você chama a ferramenta em nome das ferramentas. Em seguida, você passa o resultado da ferramenta (tool_result) em uma mensagem do usuário para o modelo.
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }
Na resposta, o modelo usa o resultado da ferramenta a fim de gerar uma resposta para a mensagem original.
{ "id": "msg_bdrk_012AaqvTiKuUSc6WadhUkDLP", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "content": [ { "type": "text", "text": "According to the tool, the most popular song played on radio station WZPZ is \"Elemental Hotel\"." } ], "stop_reason": "end_turn" }
Streaming refinado de ferramentas
O streaming refinado de ferramentas é um recurso do modelo Claude da Anthropic disponível no Claude Sonnet 4.5, Claude Haiku 4.5, Claude Sonnet 4 e Claude Opus 4. Com o streaming refinado de ferramentas, os desenvolvedores do Claude podem transmitir parâmetros de uso de ferramentas sem os armazenar em buffer ou sem validação JSON, reduzindo a latência para começar a receber parâmetros grandes.
nota
Ao usar o streaming refinado de ferramentas, é possível que você receba entradas JSON inválidas ou parciais. Considere esses casos extremos em seu código.
Para usar esse recurso, basta adicionar o cabeçalho fine-grained-tool-streaming-2025-05-14 a uma solicitação de uso de ferramentas.
Veja aqui um exemplo de como especificar o cabeçalho de streaming refinado de ferramentas:
{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "anthropic_beta": ["fine-grained-tool-streaming-2025-05-14"], "messages": [ { "role": "user", "content": "Can you write a long poem and make a file called poem.txt?" } ], "tools": [ { "name": "make_file", "description": "Write text to a file", "input_schema": { "type": "object", "properties": { "filename": { "type": "string", "description": "The filename to write text to" }, "lines_of_text": { "type": "array", "description": "An array of lines of text to write to the file" } }, "required": [ "filename", "lines_of_text" ] } } ] }
Neste exemplo, o streaming refinado de ferramentas permite que o Claude transmita as estrofes de um longo poema à chamada de ferramenta make_file sem os armazenar em buffer para validar se o parâmetro lines_of_text é um JSON válido. Isso significa que você pode ver o fluxo de parâmetros à medida que ele chega, sem precisar esperar que todo o parâmetro seja armazenado em buffer e validado.
Com o streaming refinado de ferramentas, os fragmentos de uso de ferramentas começam a ser transmitidos mais depressa e geralmente são mais longos e contêm menos quebras de palavra. Isso se deve a diferenças no comportamento de fragmentação.
Por exemplo, sem streaming refinado (atraso de 15 s):
Chunk 1: '{"' Chunk 2: 'query": "Ty' Chunk 3: 'peScri' Chunk 4: 'pt 5.0 5.1 ' Chunk 5: '5.2 5' Chunk 6: '.3' Chunk 8: ' new f' Chunk 9: 'eatur' ...
Com streaming refinado (atraso de 3 s):
Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3' Chunk 2: ' new features comparison'
nota
Como o streaming refinado envia parâmetros sem os armazenar em buffer ou sem validação JSON, não há garantia de que o fluxo resultante será concluído em uma string JSON válida. Mais especificamente, se o motivo de interrupção max_tokens for atingido, o fluxo poderá terminar no meio de um parâmetro e ficar incompleto. Geralmente, é necessário escrever um suporte específico para lidar com situações em que max_tokens é atingido.
Computer Use (Beta)
Computer Use é um recurso do modelo Claude da Anthropic (em beta) disponível no Claude 3.5 Sonnet v2, Claude Sonnet 4.5, Claude Haiku 4.5, Claude 3.7 Sonnet, Claude Sonnet 4 e Claude Opus 4. Com o Computer Use, o Claude pode ajudar a automatizar tarefas por meio de ações básicas da GUI.
Atenção
O recurso Computer Use está disponível como um “serviço beta”, conforme definido nos Termos de Serviço da AWS. Ele está sujeito ao seu contrato com a AWS e aos Termos de Serviço da AWS e ao modelo de EULA aplicável. Esteja ciente de que a API Computer Use apresenta riscos exclusivos que são distintos dos recursos padrão de API ou das interfaces de chat. Esses riscos aumentam ao usar a API Computer Use para interagir com a internet. Para minimizar os riscos, considere tomar precauções, como:
-
Operar a funcionalidade Computer Use em uma máquina virtual ou contêiner dedicado com privilégios mínimos para evitar acidentes ou ataques diretos ao sistema.
-
Para impedir o roubo de informações, evite fornecer à API Computer Use acesso a contas ou dados sensíveis.
-
Limitar o acesso à internet das APIs Computer Use aos domínios necessários para reduzir a exposição a conteúdo mal-intencionado.
-
Para garantir a supervisão adequada, mantenha uma pessoa informada sobre tarefas confidenciais (como tomar decisões que possam ter consequências significativas no mundo real) e sobre qualquer coisa que exija consentimento afirmativo (como aceitar cookies, executar transações financeiras ou concordar com os termos de serviço).
Qualquer conteúdo que você permita que o Claude veja ou acesse pode potencialmente substituir as instruções ou provocar erros no Claude ou executar ações indesejadas. Tomar as devidas precauções, como isolar o Claude de superfícies confidenciais, é essencial, inclusive para evitar riscos relacionados à injeção de prompt. Antes de habilitar ou solicitar as permissões necessárias para habilitar os recursos do Computer Use em seus próprios produtos, informe os usuários finais sobre quaisquer riscos relevantes e obtenha o consentimento deles conforme apropriado.
A API Computer Use oferece várias ferramentas Computer User predefinidas para você usar. É possível criar um prompt com sua solicitação, como “enviar um e-mail para Ben com as anotações da minha última reunião” e uma captura de tela (quando necessário). A resposta contém uma lista de ações de tool_use no formato JSON (por exemplo, scroll_down, left_button_press, screenshot). Seu código executa as ações do computador e fornece ao Claude uma captura de tela mostrando as saídas (quando solicitado).
Desde o lançamento do Claude 3.5 v2, o parâmetro tools foi atualizado para aceitar tipos de ferramentas polimórficas; a propriedade tool.type foi adicionada para diferenciá-las. type é opcional; se omitida, a ferramenta será considerada uma ferramenta personalizada (anteriormente o único tipo de ferramenta compatível). Para acessar a Computer Use, você deve usar o parâmetro anthropic_beta, com uma enumeração correspondente, cujo valor depende da versão do modelo em uso. Consulte a tabela a seguir para obter mais informações.
Somente solicitações feitas com esse parâmetro e enum podem usar as ferramentas Computer Use. Ele pode ser especificado da seguinte forma: "anthropic_beta":
["computer-use-2025-01-24"].
| Modelo | Cabeçalho beta |
|---|---|
|
Claude Opus 4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet |
computer-use-2025-01-24 |
| Claude 3.5 Sonnet v2 | computer-use-2024-10-22 |
Para obter mais informações, consulte Computer Use (beta)
Esta é uma resposta de exemplo que pressupõe que a solicitação continha uma captura de tela da área de trabalho com um ícone do Firefox.
{ "id": "msg_123", "type": "message", "role": "assistant", "model": "anthropic.claude-3-5-sonnet-20241022-v2:0", "content": [ { "type": "text", "text": "I see the Firefox icon. Let me click on it and then navigate to a weather website." }, { "type": "tool_use", "id": "toolu_123", "name": "computer", "input": { "action": "mouse_move", "coordinate": [ 708, 736 ] } }, { "type": "tool_use", "id": "toolu_234", "name": "computer", "input": { "action": "left_click" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 3391, "output_tokens": 132 } }
Ferramentas definidas do Anthropic
A Anthropic oferece um conjunto de ferramentas para permitir que determinados modelos Claude usem computadores de forma eficaz. Ao especificar uma ferramenta definida da Anthropic, os campos description e tool_schema não são necessários nem permitidos. As ferramentas definidas da Anthropic são definidas pela Anthropic, mas você deve avaliar explicitamente os resultados da ferramenta e retornar os tool_results para o Claude. Tal como ocorre com qualquer ferramenta, o modelo não executa automaticamente a ferramenta. Cada ferramenta definida da Anthropic tem versões otimizadas para modelos Claude 3.5 Sonnet (novos) e Claude 3.7 Sonnet específicos:
Modelo |
Ferramenta |
Observações |
|---|---|---|
|
Claude Opus 4.1 da Claude Claude Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 |
|
Atualização para a ferramenta |
|
Claude 3.7 Sonnet |
|
Inclui novas ações para um controle mais preciso |
|
Claude 3.7 Sonnet |
|
Mesmos recursos da versão 20241022 |
|
Claude 3.5 Sonnet v2 |
|
Mesmos recursos da versão 20241022 |
|
Claude 3.5 Sonnet v2 |
|
|
|
Claude 3.5 Sonnet v2 |
|
|
|
Claude 3.5 Sonnet v2 |
|
O campo type identifica a ferramenta e os respectivos parâmetros para fins de validação, enquanto o campo name é o nome da ferramenta exposto ao modelo.
Se você quiser solicitar que o modelo use uma dessas ferramentas, poderá indicar explicitamente a ferramenta por meio do campo name. O campo name deve ser exclusivo na lista de ferramentas. Não é possível definir uma ferramenta com o mesmo name de uma ferramenta definida da Anthropic na mesma chamada de API.
Limpeza automática de chamadas de ferramenta (beta)
Atenção
A limpeza automática de chamadas de ferramenta está disponível como um “serviço beta”, conforme definido nos Termos de Serviço da AWS.
O Claude Sonnet 4.5 é compatível com um novo recurso beta que limpa automaticamente os resultados de uso de ferramentas antigas à medida que você se aproxima dos limites de token, permitindo um gerenciamento de contexto mais eficiente em cenários de uso de ferramentas de vários turnos. Para usar a limpeza de uso de ferramentas, você precisa adicionar context-management-2025-06-27 à lista de cabeçalhos beta no parâmetro de solicitação anthropic_beta. Você também precisará especificar o uso de clear_tool_uses_20250919 e escolher entre as opções de configuração a seguir.
Esses são os controles disponíveis para a estratégia de gerenciamento de contexto clear_tool_uses_20250919. Todos são opcionais ou têm padrões:
| Opção de configuração | Descrição |
|---|---|
|
padrão: 100.000 tokens de entrada |
Define quando a estratégia de edição de contexto é ativada. Quando o prompt ultrapassar esse limite, a limpeza começará. É possível especificar esse valor em input_tokens ou tool_uses. |
|
padrão: 3 usos de ferramentas |
Define quantos pares recentes de uso/resultado da ferramenta devem ser mantidos após a limpeza. A API remove primeiro as interações mais antigas da ferramenta, preservando as mais recentes. Útil quando o modelo precisa acessar interações recentes da ferramenta para continuar a conversa de forma eficaz. |
|
|
Garante que um número mínimo de tokens seja liberado cada vez que a estratégia é ativada. Se a API não conseguir liberar pelo menos o valor especificado, a estratégia não será aplicada. Isso é útil para determinar se vale a pena invalidar o armazenamento em cache de prompts para limpar o contexto. |
|
|
Lista de nomes cujos usos e resultados da ferramenta nunca devem ser apagados. Útil para preservar um contexto importante. |
|
|
Controla se os parâmetros de chamada da ferramenta são apagados com os resultados da ferramenta. Por padrão, somente os resultados da ferramenta são apagados, mantendo as chamadas de ferramenta originais do Claude visíveis para que o Claude veja quais operações foram realizadas mesmo após a remoção dos resultados. |
nota
A limpeza de ferramenta invalidará o cache se os prefixos contiverem suas ferramentas.
Ao usar o Claude Sonnet 4.5 com a limpeza automática de chamadas de ferramentas, a resposta incluirá informações adicionais de gerenciamento de contexto:
{ "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF", "type": "message", "role": "assistant", "content": [...], ... "usage": {...}, "context_management": { "applied_edits": [ { "type": "clear_tool_uses_20250919", "cleared_tool_uses": 8, # Number of tool use/result pairs that were cleared "cleared_input_tokens": 50000 # Total number of input tokens removed from the prompt } ] } }
nota
No momento, o Bedrock não oferece gerenciamento de contexto clear_tool_uses_20250919 na API CountTokens.
Ferramenta de memória (beta)
Atenção
A ferramenta de memória está disponível como um “serviço beta”, conforme definido nos Termos de Serviço da AWS.
O Claude Sonnet 4.5 inclui uma nova ferramenta de memória que oferece aos clientes uma maneira de gerenciar a memória em todas as conversas. Com esse recurso, os clientes podem permitir que o Claude recupere informações fora da janela de contexto fornecendo acesso a um diretório local. Isso estará disponível como um recurso beta. Para usar esse recurso, você deve usar o cabeçalho beta context-management-2025-06-27.
Definição da ferramenta:
{ "type": "memory_20250818", "name": "memory" }
Exemplo de solicitação:
{ "max_tokens": 2048, "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["context-management-2025-06-27"], "tools": [{ "type": "memory_20250818", "name": "memory" }], "messages": [ { "role": "user", "content": [{"type": "text", "text": "Remember that my favorite color is blue and I work at Amazon?"}] } ] }
Exemplo de resposta:
{ "id": "msg_vrtx_014mQ5ficCRB6PEa5k5sKqHd", "type": "message", "role": "assistant", "model": "claude-sonnet-4-20250514", "content": [ { "type": "text", "text": "I'll start by checking your memory directory and then record this important information about you." }, { "type": "tool_use", "id": "toolu_vrtx_01EU1UrCDigyPMRntr3VYvUB", "name": "memory", "input": { "command": "view", "path": "/memories" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 1403, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 87 }, "context_management": { "applied_edits": [] } }
Considerações sobre custo para uso de ferramentas
O preço das solicitações de uso de ferramentas é baseado nos seguintes fatores:
-
O número total de tokens de entrada enviados ao modelo (inclusive no parâmetro tools).
-
Número de tokens de saída gerados.
As ferramentas têm o mesmo preço de todas as outras solicitações de API do Claude, mas incluem tokens adicionais por solicitação. Os tokens adicionais de uso de ferramentas provêm do seguinte:
-
Inclua o parâmetro
toolsnas solicitações de API. Por exemplo, nomes, descrições e esquemas de ferramenta. -
Qualquer bloco de conteúdo de
tool_useem solicitações e respostas de API. -
Qualquer bloco de conteúdo de
tool_resultem solicitações de API.
Quando você usa ferramentas, os modelos da Anthropic incluem automaticamente um prompt especial do sistema que permite usar a ferramenta. O número de tokens de uso de ferramentas necessários para cada modelo está listado na tabela a seguir. Essa tabela exclui os tokens adicionais descritos anteriormente. Observe que essa tabela pressupõe que pelo menos uma ferramenta seja fornecida. Se nenhuma ferramenta for fornecida e se for escolhido nenhuma para a opção de ferramenta, não será usado nenhum token de prompt adicional do sistema.
| Modelo | Escolha da ferramenta | Contagem de tokens de prompt do sistema de uso de ferramentas |
|---|---|---|
|
Claude Opus 4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
auto ou none |
346 |
|
Claude Opus 4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
any ou tool |
313 |
|
Claude 3.5 Sonnet |
auto ou none |
294 |
|
Claude 3.5 Sonnet |
any ou tool |
261 |
|
Claude 3 Opus |
auto ou none |
530 |
|
Claude 3 Opus |
any ou tool |
281 |
|
Claude 3 Sonnet |
auto ou none |
159 |
|
Claude 3 Sonnet |
any ou tool |
235 |
|
Claude 3 Haiku |
auto ou none |
264 |
|
Claude 3 Haiku |
any ou tool |
340 |