<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lucas</title>
    <description>The latest articles on DEV Community by Lucas (@lucas_ferreira).</description>
    <link>https://dev.to/lucas_ferreira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821523%2F8a141e03-a0f4-42d4-b4f6-38a3247d8baf.png</url>
      <title>DEV Community: Lucas</title>
      <link>https://dev.to/lucas_ferreira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucas_ferreira"/>
    <language>en</language>
    <item>
      <title>Como Usar a CLI do Apidog no DeepSeek Harness</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 20 Aug 2026 08:01:23 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/como-usar-a-cli-do-apidog-no-deepseek-harness-2j1c</link>
      <guid>https://dev.to/lucas_ferreira/como-usar-a-cli-do-apidog-no-deepseek-harness-2j1c</guid>
      <description>&lt;p&gt;DeepSeek Harness é um loop: o agente lê o espaço de trabalho, edita arquivos, executa comandos com a ferramenta bash e decide o próximo passo com base na saída. Seus testes de API também devem fazer parte desse loop, em vez de ficarem apenas na GUI do Apidog aguardando alguém clicar em Executar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A integração depende de um único bloco de configuração. O CLI do Apidog, o pacote npm &lt;code&gt;apidog-cli&lt;/code&gt;, executa cenários de teste criados no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; diretamente no terminal. Depois de instalar o CLI e informar sua existência ao DeepSeek Harness, o agente pode executar um cenário do Apidog como executa testes de unidade: roda o comando, verifica o código de saída e corrige o código quando houver falhas.&lt;/p&gt;

&lt;p&gt;Isso também economiza contexto. Em vez de reler handlers e inferir se os formatos de resposta ainda estão corretos, o agente executa um comando e recebe uma resposta objetiva. O CLI transforma a pergunta “a API está correta?” em um código de saída e em um relatório de asserções. Assim, o agente usa o contexto para corrigir o problema, não para especular sobre ele.&lt;/p&gt;

&lt;p&gt;Este guia cobre a configuração específica do harness: qual arquivo de instruções o DeepSeek Harness lê, como a ferramenta bash executa &lt;code&gt;apidog run&lt;/code&gt; e como validar que o agente realmente testou a API. Antes de continuar, instale e autentique o CLI. Veja &lt;a href="https://apidog.com/pt/blog/apidog-cli-installation-guide?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como instalar o Apidog CLI com um agente de codificação de IA&lt;/a&gt;. Este artigo pressupõe que &lt;code&gt;apidog --version&lt;/code&gt; retorna uma versão e que a máquina já está autenticada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre qual DeepSeek Harness este artigo trata
&lt;/h2&gt;

&lt;p&gt;DeepSeek Harness, disponível como &lt;code&gt;dsh&lt;/code&gt; na linha de comando, é o harness de agente de código aberto lançado pela DeepSeek em 13 de agosto de 2026, junto com o V4-Pro na API. Ele é licenciado sob MIT, está em &lt;a href="https://github.com/deepseek-ai/deepseek-harness" rel="noopener noreferrer"&gt;github.com/deepseek-ai/deepseek-harness&lt;/a&gt; e já havia ultrapassado 169 mil estrelas em 20 de agosto.&lt;/p&gt;

&lt;p&gt;Inicie a interface web local com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A interface fica disponível em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:3080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nela, selecione o espaço de trabalho — normalmente o diretório do projeto — e deixe o agente trabalhar dentro dele. O agente pode ler e editar arquivos, executar comandos e solicitar aprovação para operações cobertas pela política de permissões ativa.&lt;/p&gt;

&lt;p&gt;Dois pontos são importantes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;O harness é uma &lt;strong&gt;prévia para desenvolvedores&lt;/strong&gt;. O README avisa que mudanças incompatíveis podem ocorrer. Os nomes de arquivos e chaves de configuração deste artigo refletem o final de agosto de 2026. Se algo não funcionar, consulte a &lt;a href="https://github.com/deepseek-ai/deepseek-harness/tree/master/docs" rel="noopener noreferrer"&gt;documentação do repositório&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Tudo no dsh é um plugin, baseado na arquitetura Cordis. Isso permite identificar exatamente qual plugin carrega regras de projeto e quais arquivos ele procura.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para uma visão geral, veja &lt;a href="https://apidog.com/pt/blog/what-is-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;o que é DeepSeek Harness&lt;/a&gt;. Para uma comparação com outro harness, veja &lt;a href="https://apidog.com/pt/blog/deepseek-harness-vs-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek Harness vs Claude Code&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 1: adicione o Apidog CLI ao &lt;code&gt;AGENTS.md&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;O DeepSeek Harness carrega instruções do workspace por meio do plugin &lt;code&gt;@deepseek-ai/dsh-agent-instructions&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Segundo o código do plugin e o &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/config-catalog.md" rel="noopener noreferrer"&gt;catálogo de configuração&lt;/a&gt;, o carregador percorre o caminho entre o diretório de trabalho da sessão e a raiz do projeto, identificada por &lt;code&gt;.git&lt;/code&gt;. Em cada diretório, ele procura:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CLAUDE.md&lt;/code&gt; como fallback&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AGENTS.local.md&lt;/code&gt; como overlay local&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CLAUDE.local.md&lt;/code&gt; como overlay local&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Também é possível manter um arquivo global em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/AGENTS.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por padrão, &lt;code&gt;DSH_HOME&lt;/code&gt; é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.dsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Arquivos com mais de 1 MiB são ignorados.&lt;/p&gt;

&lt;p&gt;Na prática, se o repositório já possui um &lt;code&gt;AGENTS.md&lt;/code&gt; usado por Codex ou um &lt;code&gt;CLAUDE.md&lt;/code&gt; usado por Claude Code, o DeepSeek Harness pode reutilizá-lo sem configuração adicional.&lt;/p&gt;

&lt;p&gt;Adicione um bloco explícito para os testes da API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Testes de API com o Apidog CLI&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Para testar a API, execute o cenário do Apidog. Não use a GUI.
&lt;span class="p"&gt;-&lt;/span&gt; Comando: apidog run -t &lt;span class="nt"&gt;&amp;lt;scenario_id&amp;gt;&lt;/span&gt; -e &lt;span class="nt"&gt;&amp;lt;env_id&amp;gt;&lt;/span&gt; -r cli
&lt;span class="p"&gt;-&lt;/span&gt; Código de saída 0 significa que todas as asserções passaram.
&lt;span class="p"&gt;-&lt;/span&gt; Um código diferente de zero indica falha: leia o relatório e corrija o código.
&lt;span class="p"&gt;-&lt;/span&gt; A máquina já está autenticada. Nunca adicione --access-token e nunca armazene tokens neste arquivo.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Substitua &lt;code&gt;&amp;lt;scenario_id&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;env_id&amp;gt;&lt;/code&gt; pelos IDs reais do seu projeto.&lt;/p&gt;

&lt;p&gt;Esse arquivo é mais confiável do que instruções enviadas no chat. Uma mensagem da sessão desaparece ao final da conversa. Um comando documentado em &lt;code&gt;AGENTS.md&lt;/code&gt; é carregado em novas sessões, por colegas de equipe e em máquinas que clonam o repositório.&lt;/p&gt;

&lt;p&gt;Se você trabalha em muitos projetos, use o arquivo global &lt;code&gt;~/.dsh/AGENTS.md&lt;/code&gt; para a regra geral:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Sempre valide mudanças de API com o comando apidog run definido no projeto.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois, mantenha os IDs específicos de cenário e ambiente no &lt;code&gt;AGENTS.md&lt;/code&gt; de cada repositório.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 2: copie o comando gerado pelo Apidog
&lt;/h2&gt;

&lt;p&gt;Não adivinhe os IDs do cenário e do ambiente.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abra o cenário de teste no Apidog.&lt;/li&gt;
&lt;li&gt;Acesse a aba &lt;strong&gt;CI/CD&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Copie o comando gerado.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O comando terá este formato:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; 123456 &lt;span class="nt"&gt;-e&lt;/span&gt; 789012 &lt;span class="nt"&gt;-r&lt;/span&gt; cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Onde:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-t&lt;/code&gt; é o ID do cenário de teste.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-e&lt;/code&gt; é o ID do ambiente.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-r cli&lt;/code&gt; seleciona o reporter de terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O reporter &lt;code&gt;cli&lt;/code&gt; é importante porque imprime requisições, asserções e erros diretamente na saída que o agente consegue ler.&lt;/p&gt;

&lt;p&gt;Cole o comando real no &lt;code&gt;AGENTS.md&lt;/code&gt;. Dessa forma, o agente executa o comando gerado pelo Apidog, e não uma combinação de IDs inventada ou inferida.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 3: faça o agente executar o teste
&lt;/h2&gt;

&lt;p&gt;Inicie uma sessão na interface web do dsh com o workspace correto selecionado. Como o &lt;code&gt;AGENTS.md&lt;/code&gt; já foi carregado, o agente saberá que o Apidog CLI está disponível.&lt;/p&gt;

&lt;p&gt;Depois de alterar um endpoint, handler ou contrato de API, envie uma solicitação direta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Execute o cenário de teste do Apidog e informe o código de saída.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O agente executará o comando pela ferramenta bash.&lt;/p&gt;

&lt;p&gt;Segundo o &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/tool-catalog.md" rel="noopener noreferrer"&gt;catálogo de ferramentas&lt;/a&gt;, a ferramenta bash padrão executa cada chamada em um &lt;strong&gt;shell limpo&lt;/strong&gt;. Isso significa que diretório atual, variáveis e funções não persistem entre chamadas.&lt;/p&gt;

&lt;p&gt;Por exemplo, isto não é confiável como duas chamadas separadas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;services/api
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; 123456 &lt;span class="nt"&gt;-e&lt;/span&gt; 789012 &lt;span class="nt"&gt;-r&lt;/span&gt; cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A segunda chamada não herdará o &lt;code&gt;cd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Se o cenário precisar ser executado em um subdiretório, informe o caminho completo em uma única instrução no arquivo de regras:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; Execute o teste a partir de services/api:
  cd services/api &amp;amp;&amp;amp; apidog run -t 123456 -e 789012 -r cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou use o parâmetro &lt;code&gt;workdir&lt;/code&gt; da ferramenta quando ele estiver disponível.&lt;/p&gt;

&lt;p&gt;Também observe estes comportamentos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Falhas retornam um marcador explícito como &lt;code&gt;[exit code: 1]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O código de saída continua visível mesmo se uma saída longa for truncada.&lt;/li&gt;
&lt;li&gt;Operações bloqueadas por sandbox são reportadas como negação de política, não como falha do comando.&lt;/li&gt;
&lt;li&gt;Um teste somente leitura geralmente não deve ser bloqueado, mas um reporter que grava arquivos pode depender da política de permissões ativa.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A interface web pode solicitar aprovação antes de executar &lt;code&gt;apidog run&lt;/code&gt;. Conforme o &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/index.md" rel="noopener noreferrer"&gt;guia do usuário&lt;/a&gt;, isso depende da política configurada. Aprovar a execução de um cenário contra staging é um caso esperado para esse fluxo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 4: leia o relatório e corrija a falha
&lt;/h2&gt;

&lt;p&gt;Quando o comando falhar, use o reporter inline para localizar a causa.&lt;/p&gt;

&lt;p&gt;Com &lt;code&gt;-r cli&lt;/code&gt;, o agente recebe informações como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;requisição executada;&lt;/li&gt;
&lt;li&gt;status retornado;&lt;/li&gt;
&lt;li&gt;asserção que falhou;&lt;/li&gt;
&lt;li&gt;valor esperado;&lt;/li&gt;
&lt;li&gt;valor real.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Isso normalmente é suficiente para encontrar a correção no handler, no schema ou na lógica de negócio.&lt;/p&gt;

&lt;p&gt;Para também gerar um relatório navegável, inclua o reporter HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; 123456 &lt;span class="nt"&gt;-e&lt;/span&gt; 789012 &lt;span class="nt"&gt;-r&lt;/span&gt; cli,html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O reporter &lt;code&gt;html&lt;/code&gt; grava um relatório autocontido em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./apidog-reports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mantenha &lt;code&gt;cli&lt;/code&gt; na lista. O HTML é útil para revisão humana, mas o agente precisa da saída inline para decidir o próximo passo.&lt;/p&gt;

&lt;h2&gt;
  
  
  O loop completo: editar, testar, corrigir
&lt;/h2&gt;

&lt;p&gt;Com a configuração pronta, o fluxo fica assim:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;O agente edita um handler, por exemplo, de checkout.&lt;/li&gt;
&lt;li&gt;Ele executa o cenário:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; 123456 &lt;span class="nt"&gt;-e&lt;/span&gt; 789012 &lt;span class="nt"&gt;-r&lt;/span&gt; cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Ele lê o resultado.&lt;/li&gt;
&lt;li&gt;Se o comando retornar &lt;code&gt;0&lt;/code&gt;, ele segue para a próxima tarefa.&lt;/li&gt;
&lt;li&gt;Se retornar algo como &lt;code&gt;[exit code: 1]&lt;/code&gt;, ele identifica a asserção quebrada.&lt;/li&gt;
&lt;li&gt;Ele corrige o código.&lt;/li&gt;
&lt;li&gt;Ele executa o cenário novamente.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Uma falha pode indicar, por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retorno &lt;code&gt;500&lt;/code&gt; onde era esperado &lt;code&gt;200&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;campo &lt;code&gt;total&lt;/code&gt; ausente;&lt;/li&gt;
&lt;li&gt;código de moeda incorreto;&lt;/li&gt;
&lt;li&gt;schema de resposta incompatível.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O cenário de teste já codifica o contrato esperado. Em vez de o agente reler todas as rotas para tentar provar que a API funciona, ele delega a validação a uma ferramenta determinística.&lt;/p&gt;

&lt;p&gt;A divisão de responsabilidades fica clara:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o dsh escreve e altera código;&lt;/li&gt;
&lt;li&gt;o Apidog CLI verifica o comportamento da API;&lt;/li&gt;
&lt;li&gt;sua equipe cria e mantém cenários visualmente no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, sem escrever código de teste.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Verifique se o dsh realmente executou o cenário
&lt;/h2&gt;

&lt;p&gt;Não aceite apenas um resumo como “os testes passaram”. Valide a execução em três etapas.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Confirme a chamada do comando
&lt;/h3&gt;

&lt;p&gt;A interface do dsh mostra chamadas de ferramentas e suas saídas. Procure pelo comando bash literal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apidog run ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se o agente afirma que executou os testes, mas não existe uma chamada correspondente, ele não executou o cenário. Peça para rodar novamente e mostrar a saída bruta.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Confirme o código de saída
&lt;/h3&gt;

&lt;p&gt;Pergunte diretamente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Qual foi o código de saída do comando apidog run?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em falhas, o harness retorna um marcador como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[exit code: 1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se o resumo disser que os testes passaram, mas o marcador indicar valor diferente de zero, confie no código de saída.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Confirme os IDs do cenário e do ambiente
&lt;/h3&gt;

&lt;p&gt;Um erro como “cenário não encontrado” normalmente significa que o agente usou IDs errados.&lt;/p&gt;

&lt;p&gt;Compare os valores de:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;-t&lt;/span&gt; &amp;lt;scenario_id&amp;gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &amp;lt;env_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;com:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o bloco em &lt;code&gt;AGENTS.md&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;o comando exibido na aba CI/CD do Apidog.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Os IDs documentados no arquivo de regras são a fonte de verdade. Qualquer outro valor digitado pelo agente é uma suposição.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opcional: adicione o servidor Apidog MCP para acessar a especificação
&lt;/h2&gt;

&lt;p&gt;O CLI resolve a parte de verificação. Se você também quer que o agente consulte a especificação da API enquanto implementa endpoints, use MCP.&lt;/p&gt;

&lt;p&gt;A partir do final de agosto de 2026, o suporte a MCP não está documentado no README principal nem no guia do usuário do DeepSeek Harness. Existe, porém, um &lt;strong&gt;plugin da comunidade&lt;/strong&gt;: &lt;code&gt;hyqhyq3/dsh-mcp-manager&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Esse plugin, descoberto pelo tópico &lt;code&gt;dsh-plugin&lt;/code&gt; no GitHub, adiciona uma página MCP em Configurações e oferece suporte a:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;servidores HTTP remotos;&lt;/li&gt;
&lt;li&gt;servidores stdio locais;&lt;/li&gt;
&lt;li&gt;ferramentas registradas como &lt;code&gt;mcp__&amp;lt;name&amp;gt;__*&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;definições por projeto em:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;workspace&amp;gt;/.dsh/dshmm/mcp.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com ele, você pode conectar o &lt;a href="https://apidog.com/pt/blog/apidog-mcp-server?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;servidor Apidog MCP&lt;/a&gt;. Isso permite que o agente consulte especificações de API por MCP antes de escrever um handler.&lt;/p&gt;

&lt;p&gt;Trate essa integração como complementar. Um plugin comunitário em um harness de prévia pode sofrer incompatibilidades em atualizações. O caminho essencial continua sendo o CLI: ele depende apenas de um shell e de um comando &lt;code&gt;apidog run&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ressalvas da prévia e próximos passos
&lt;/h2&gt;

&lt;p&gt;O DeepSeek Harness evolui rapidamente e declara que pode introduzir mudanças incompatíveis. As partes mais propensas a mudar são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;arquivos carregados pelo plugin de instruções;&lt;/li&gt;
&lt;li&gt;comportamento do sandbox da ferramenta bash;&lt;/li&gt;
&lt;li&gt;detalhes do plugin MCP da comunidade.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O padrão principal, porém, é portátil:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Documente no arquivo de regras como validar a API.&lt;/li&gt;
&lt;li&gt;Execute um único comando determinístico.&lt;/li&gt;
&lt;li&gt;Use o código de saída como sinal objetivo de sucesso ou falha.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Isso funciona no dsh pela mesma razão que funciona no &lt;a href="https://apidog.com/pt/blog/apidog-cli-in-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Claude Code&lt;/a&gt; e em outros harnesses: agentes leem bem a saída de comandos, mas não devem validar a própria implementação apenas por raciocínio.&lt;/p&gt;

&lt;p&gt;Para implementar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Baixe o Apidog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Crie um cenário de teste visualmente.&lt;/li&gt;
&lt;li&gt;Copie o comando &lt;code&gt;apidog run&lt;/code&gt; da aba CI/CD.&lt;/li&gt;
&lt;li&gt;Adicione esse comando ao &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Peça ao DeepSeek Harness para executar o cenário após cada alteração relevante na API.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Na próxima vez que o agente modificar código de API, ele poderá verificar o próprio trabalho antes de informar que concluiu a tarefa.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O DeepSeek Harness lê &lt;a href="http://AGENTS.md" rel="noopener noreferrer"&gt;AGENTS.md&lt;/a&gt; nativamente?
&lt;/h3&gt;

&lt;p&gt;Sim. O plugin &lt;code&gt;@deepseek-ai/dsh-agent-instructions&lt;/code&gt; carrega &lt;code&gt;AGENTS.md&lt;/code&gt; ou usa &lt;code&gt;CLAUDE.md&lt;/code&gt; como fallback. Ele procura arquivos desde a raiz do projeto até os diretórios acima do diretório de trabalho da sessão.&lt;/p&gt;

&lt;p&gt;Também reconhece os overlays:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AGENTS.local.md
CLAUDE.local.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Além disso, carrega um &lt;code&gt;AGENTS.md&lt;/code&gt; global em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.dsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você já mantém um &lt;code&gt;AGENTS.md&lt;/code&gt; para outros agentes, o dsh pode reutilizá-lo sem alterações.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preciso de um plano pago do DeepSeek para usar o Apidog CLI no dsh?
&lt;/h3&gt;

&lt;p&gt;Não. O harness é de código aberto e licenciado sob MIT. Você fornece o modelo que deseja usar: provedores de catálogo incluem Anthropic, OpenAI, Bedrock, Vertex e Azure, enquanto gateways personalizados funcionam por meio de &lt;code&gt;settings.yaml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Veja &lt;a href="https://apidog.com/pt/blog/run-any-model-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como executar qualquer modelo no DeepSeek Harness&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O Apidog CLI é um pacote npm gratuito. Ele exige um cenário de teste do Apidog e autenticação, não um modelo específico.&lt;/p&gt;

&lt;h3&gt;
  
  
  Por que o segundo comando esquece o diretório alterado pelo primeiro?
&lt;/h3&gt;

&lt;p&gt;Isso acontece por design. A ferramenta bash padrão do dsh executa cada chamada em um shell limpo, então um &lt;code&gt;cd&lt;/code&gt; não persiste entre comandos.&lt;/p&gt;

&lt;p&gt;Use uma das opções:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;services/api &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apidog run &lt;span class="nt"&gt;-t&lt;/span&gt; 123456 &lt;span class="nt"&gt;-e&lt;/span&gt; 789012 &lt;span class="nt"&gt;-r&lt;/span&gt; cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou passe o &lt;code&gt;workdir&lt;/code&gt; para a ferramenta bash, quando disponível.&lt;/p&gt;

&lt;p&gt;A opção mais simples é manter toda a invocação em uma linha no arquivo de regras.&lt;/p&gt;

&lt;h3&gt;
  
  
  O dsh pode executar o cenário sem pedir aprovação toda vez?
&lt;/h3&gt;

&lt;p&gt;Depende da política de permissão ativa. A interface web solicita aprovação para operações que exigem consentimento conforme a política configurada.&lt;/p&gt;

&lt;p&gt;O guia do usuário não enumera todos os níveis dessa política. Verifique as Configurações da sua compilação para entender o que sua implantação permite.&lt;/p&gt;

&lt;p&gt;Quando o dsh solicitar aprovação, executar &lt;code&gt;apidog run&lt;/code&gt; contra um ambiente de staging é um caso adequado para permitir.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DeepSeek Harness vs Claude Code: Qual o Agente de Código Ideal para Sua Stack?</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 20 Aug 2026 06:07:46 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/deepseek-harness-vs-claude-code-qual-o-agente-de-codigo-ideal-para-sua-stack-19p7</link>
      <guid>https://dev.to/lucas_ferreira/deepseek-harness-vs-claude-code-qual-o-agente-de-codigo-ideal-para-sua-stack-19p7</guid>
      <description>&lt;p&gt;O DeepSeek Harness (dsh) foi lançado em 13 de agosto de 2026, e sua abordagem chamou atenção imediatamente. A &lt;a href="https://venturebeat.com/technology/deepseek-harness-launches-as-open-source-rival-to-claude-code-alongside-v4-pro-on-api-with-higher-prices" rel="noopener noreferrer"&gt;manchete de lançamento do VentureBeat&lt;/a&gt; o descreveu como um “rival de código aberto do Claude Code”, lançado junto com o DeepSeek V4-Pro na API. Em 20 de agosto, o &lt;a href="https://github.com/deepseek-ai/deepseek-harness" rel="noopener noreferrer"&gt;repositório&lt;/a&gt; tinha aproximadamente 169 mil estrelas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Mas estrelas no GitHub não respondem à pergunta prática: &lt;strong&gt;vale mais a pena executar um agente de código com DeepSeek Harness ou Claude Code?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As ferramentas adotam estratégias diferentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O &lt;strong&gt;dsh&lt;/strong&gt; é uma prévia para desenvolvedores, open source sob licença MIT, baseada em um kernel de plug-ins e uma interface web local.&lt;/li&gt;
&lt;li&gt;O &lt;strong&gt;Claude Code&lt;/strong&gt; é um produto proprietário e maduro, com habilidades, hooks, MCP nativo, subagentes e várias interfaces.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este guia compara licenciamento, interface, modelos, custos, extensibilidade, permissões e MCP — sem benchmarks inventados. Se você ainda não conhece o dsh, leia primeiro &lt;a href="https://apidog.com/pt/blog/what-is-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;o que é o DeepSeek Harness e como ele funciona&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Ambos os agentes escrevem código para APIs e dependem da qualidade da especificação fornecida. O Apidog ajuda a manter essa especificação testada e atualizada, independentemente do agente escolhido.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/UMl4Vo_RwkU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparação rápida
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimensão&lt;/th&gt;
&lt;th&gt;DeepSeek Harness (dsh)&lt;/th&gt;
&lt;th&gt;Claude Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Licença&lt;/td&gt;
&lt;td&gt;MIT, código-fonte no GitHub&lt;/td&gt;
&lt;td&gt;Proprietária; termos comerciais da Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Idade&lt;/td&gt;
&lt;td&gt;Lançado em 13 de agosto de 2026; prévia para desenvolvedores&lt;/td&gt;
&lt;td&gt;Produto maduro e geralmente disponível&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estabilidade&lt;/td&gt;
&lt;td&gt;README alerta sobre mudanças que quebram compatibilidade&lt;/td&gt;
&lt;td&gt;Canais de lançamento estáveis e configurações versionadas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interface&lt;/td&gt;
&lt;td&gt;UI web local em &lt;code&gt;127.0.0.1:3080&lt;/code&gt;, CLI e modo headless&lt;/td&gt;
&lt;td&gt;Terminal, VS Code, JetBrains, desktop, web e mobile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modelos&lt;/td&gt;
&lt;td&gt;DeepSeek, Anthropic, OpenAI, Bedrock, Vertex, Azure e endpoints compatíveis com OpenAI&lt;/td&gt;
&lt;td&gt;Apenas modelos Claude, diretos ou via provedores de nuvem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preço&lt;/td&gt;
&lt;td&gt;Harness gratuito; cobrança por token da API conectada&lt;/td&gt;
&lt;td&gt;Claude Pro/Max ou faturamento por uso de API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extensibilidade&lt;/td&gt;
&lt;td&gt;Arquitetura baseada em plug-ins Cordis&lt;/td&gt;
&lt;td&gt;Plug-ins, habilidades, hooks, subagentes e SDK de Agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permissões&lt;/td&gt;
&lt;td&gt;Aprovações conforme a política ativa&lt;/td&gt;
&lt;td&gt;Seis modos e regras granulares de permissão/negação&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP&lt;/td&gt;
&lt;td&gt;Plug-in da comunidade&lt;/td&gt;
&lt;td&gt;Nativo e de primeira classe&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Código aberto vs. proprietário
&lt;/h2&gt;

&lt;p&gt;O DeepSeek Harness usa licença MIT e rastreia dependências de terceiros em &lt;code&gt;THIRD_PARTY_NOTICES.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Na prática, isso permite:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inspecionar o loop do agente.&lt;/li&gt;
&lt;li&gt;Fazer fork do projeto.&lt;/li&gt;
&lt;li&gt;Corrigir ou adaptar comportamentos.&lt;/li&gt;
&lt;li&gt;Incorporar o harness em produtos comerciais.&lt;/li&gt;
&lt;li&gt;Auditar o que a ferramenta envia pela rede.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Isso é relevante para equipes com exigências de conformidade, ambientes regulados ou ferramentas internas que não podem depender exclusivamente de um fornecedor.&lt;/p&gt;

&lt;p&gt;O Claude Code segue o modelo oposto. O repositório público da Anthropic inclui o aviso:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;© Anthropic PBC. Todos os direitos reservados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Você recebe um produto, documentação e suporte, mas não pode auditar ou alterar o código-fonte do agente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quando isso importa?
&lt;/h3&gt;

&lt;p&gt;Escolha o dsh se sua equipe precisa de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auditabilidade de código.&lt;/li&gt;
&lt;li&gt;Capacidade de fork.&lt;/li&gt;
&lt;li&gt;Controle da infraestrutura.&lt;/li&gt;
&lt;li&gt;Menor dependência de fornecedor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mas considere o risco: licença MIT garante direitos de uso, não manutenção contínua. O dsh ainda é um projeto muito recente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interface: UI web local vs. múltiplos ambientes
&lt;/h2&gt;

&lt;p&gt;O fluxo inicial do dsh é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse comando inicia uma interface web local em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:3080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para evitar que o navegador seja aberto automaticamente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web &lt;span class="nt"&gt;--no-open&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A interface trabalha sobre o diretório do projeto em que o dsh foi iniciado.&lt;/p&gt;

&lt;p&gt;Além da UI web, o &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md" rel="noopener noreferrer"&gt;README da CLI&lt;/a&gt; documenta perfis nomeados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh &lt;span class="nt"&gt;--profile&lt;/span&gt; &amp;lt;name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os perfis ficam em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/profiles/&amp;lt;name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também há suporte a execução headless para automação, scripts e pipelines. O comando abaixo usa o perfil web:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E o gerenciamento de plug-ins pode ser feito com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O Claude Code oferece uma cobertura maior de interfaces. Segundo a &lt;a href="https://code.claude.com/docs/en/overview" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt;, ele funciona em:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terminal.&lt;/li&gt;
&lt;li&gt;VS Code.&lt;/li&gt;
&lt;li&gt;JetBrains.&lt;/li&gt;
&lt;li&gt;Aplicativo desktop.&lt;/li&gt;
&lt;li&gt;Navegador em &lt;a href="http://claude.ai/code" rel="noopener noreferrer"&gt;claude.ai/code&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Mobile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para automação, a execução headless é direta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"implemente testes para este módulo"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse formato se encaixa em CI, cron jobs e scripts shell.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisão prática
&lt;/h3&gt;

&lt;p&gt;Use o dsh se você trabalha principalmente em uma máquina e quer uma UI local simples.&lt;/p&gt;

&lt;p&gt;Use o Claude Code se seu fluxo alterna entre IDE, terminal, CI, navegador e dispositivos móveis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Liberdade de modelo
&lt;/h2&gt;

&lt;p&gt;Essa é a maior diferença arquitetural entre as ferramentas.&lt;/p&gt;

&lt;p&gt;O dsh é agnóstico a modelos. A &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md" rel="noopener noreferrer"&gt;documentação de provedores&lt;/a&gt; inclui catálogos para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic&lt;/li&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Google Vertex AI&lt;/li&gt;
&lt;li&gt;Azure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ele também aceita endpoints compatíveis com OpenAI configurados em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/settings.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uma configuração típica exige:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiKeyEnv&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;MINHA_API_KEY&lt;/span&gt;
&lt;span class="na"&gt;api&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai-completions&lt;/span&gt;
&lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://api.exemplo.com/v1&lt;/span&gt;
&lt;span class="na"&gt;models&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;meu-modelo&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As credenciais ficam separadas em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.credentials.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso permite compartilhar o arquivo de configuração sem expor chaves de API.&lt;/p&gt;

&lt;p&gt;Com essa arquitetura, o dsh pode usar modelos DeepSeek, APIs de outros provedores ou modelos locais expostos por servidores compatíveis com OpenAI. Veja o passo a passo em &lt;a href="https://apidog.com/pt/blog/run-any-model-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como executar qualquer modelo no DeepSeek Harness&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O Claude Code executa apenas modelos Claude. A inferência pode passar por Bedrock, Vertex ou Foundry, mas o modelo continua sendo Claude.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisão prática
&lt;/h3&gt;

&lt;p&gt;Escolha o dsh se você precisa alternar modelos, reduzir lock-in ou testar provedores locais.&lt;/p&gt;

&lt;p&gt;Escolha o Claude Code se você prefere uma integração otimizada entre o harness e os modelos Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preço: pagamento por token vs. assinatura
&lt;/h2&gt;

&lt;p&gt;O DeepSeek Harness é gratuito. O custo está na inferência da API conectada.&lt;/p&gt;

&lt;p&gt;Se você usar a API da DeepSeek, pagará as &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;taxas por token da DeepSeek&lt;/a&gt;. O DeepSeek V4-Pro foi lançado no mesmo período do dsh com preços superiores aos de seus predecessores, segundo a cobertura do VentureBeat.&lt;/p&gt;

&lt;p&gt;Para usar a API V4-Pro, consulte &lt;a href="https://apidog.com/pt/blog/how-to-use-deepseek-v4-pro-0813-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como usar a API DeepSeek V4-Pro-0813&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O modelo de custo do dsh é simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Custo total = tokens consumidos × preço do provedor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso favorece uso leve ou esporádico, mas sessões agênticas longas podem consumir muitos tokens sem um teto fixo.&lt;/p&gt;

&lt;p&gt;O Claude Code geralmente usa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Pro: US$ 20/mês.&lt;/li&gt;
&lt;li&gt;Claude Max: US$ 100 ou US$ 200/mês.&lt;/li&gt;
&lt;li&gt;API com cobrança por uso, via Claude Console.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A assinatura torna o gasto mais previsível, embora existam limites de uso. A Anthropic aumentou os limites semanais em 50% em julho de 2026, conforme detalhado em &lt;a href="https://apidog.com/pt/blog/claude-code-weekly-limits-50-percent-increase-july-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;nossa cobertura do aumento dos limites semanais do Claude Code&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regra prática
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uso ocasional: pagamento por token costuma ser mais vantajoso.&lt;/li&gt;
&lt;li&gt;Uso diário intenso: assinatura pode oferecer maior previsibilidade.&lt;/li&gt;
&lt;li&gt;Necessidade de múltiplos provedores: dsh oferece mais flexibilidade.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Maturidade: prévia vs. produto estabelecido
&lt;/h2&gt;

&lt;p&gt;O DeepSeek Harness é explicitamente uma prévia para desenvolvedores. Seu README alerta:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;HAVERÁ MUDANÇAS QUE QUEBRARÃO A COMPATIBILIDADE.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Trate isso como um requisito operacional. Configurações, plug-ins e fluxos automatizados podem exigir ajustes em versões futuras.&lt;/p&gt;

&lt;p&gt;Antes de adotar dsh em produção, faça o seguinte:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Versione arquivos de configuração no Git.&lt;/li&gt;
&lt;li&gt;Fixe versões de plug-ins quando possível.&lt;/li&gt;
&lt;li&gt;Execute o dsh em um ambiente isolado.&lt;/li&gt;
&lt;li&gt;Documente como recriar seus perfis.&lt;/li&gt;
&lt;li&gt;Mantenha testes de regressão fora do agente.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O Claude Code está em uso desde o início de 2025 e possui um ecossistema mais consolidado:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memória de projeto via &lt;a href="http://CLAUDE.md" rel="noopener noreferrer"&gt;CLAUDE.md&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Memória automática.&lt;/li&gt;
&lt;li&gt;Habilidades reutilizáveis.&lt;/li&gt;
&lt;li&gt;Hooks para executar comandos shell.&lt;/li&gt;
&lt;li&gt;Subagentes.&lt;/li&gt;
&lt;li&gt;SDK de Agente.&lt;/li&gt;
&lt;li&gt;Integração com GitHub Actions e GitLab CI/CD.&lt;/li&gt;
&lt;li&gt;Rotinas agendadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A comparação com outro concorrente maduro em &lt;a href="https://apidog.com/pt/blog/claude-code-vs-codex-cli?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Claude Code vs Codex CLI&lt;/a&gt; também mostra como a maturidade do ecossistema influencia a escolha.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extensibilidade: kernel de plug-ins vs. pontos de extensão
&lt;/h2&gt;

&lt;p&gt;No dsh, plug-ins não são um recurso adicional: são a base da arquitetura.&lt;/p&gt;

&lt;p&gt;O projeto usa o Cordis, um kernel de plug-ins descrito no artigo “A Programming Paradigm for Spatiotemporal Composability”. Componentes como adaptadores de modelo, ferramentas, logs de sessão e o loop do agente podem ser substituídos.&lt;/p&gt;

&lt;p&gt;Isso permite alterar profundamente o comportamento do agente, por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Substituir o adaptador de modelo.&lt;/li&gt;
&lt;li&gt;Adicionar ferramentas internas.&lt;/li&gt;
&lt;li&gt;Criar um roteador de contexto.&lt;/li&gt;
&lt;li&gt;Personalizar a estratégia de repetição de chamadas de ferramentas.&lt;/li&gt;
&lt;li&gt;Alterar o loop de execução do agente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Projetos da comunidade podem ser encontrados pelo tópico:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dsh-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No Claude Code, a extensão ocorre por interfaces definidas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plug-ins.&lt;/li&gt;
&lt;li&gt;Habilidades.&lt;/li&gt;
&lt;li&gt;Hooks.&lt;/li&gt;
&lt;li&gt;Servidores MCP.&lt;/li&gt;
&lt;li&gt;Subagentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Você pode customizar o comportamento sem modificar o loop central da Anthropic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisão prática
&lt;/h3&gt;

&lt;p&gt;Use dsh se você precisa modificar o motor do agente.&lt;/p&gt;

&lt;p&gt;Use Claude Code se precisa de extensões estáveis em pontos conhecidos, com menor risco de quebra após atualizações.&lt;/p&gt;

&lt;h2&gt;
  
  
  Permissões
&lt;/h2&gt;

&lt;p&gt;Agentes capazes de editar arquivos e executar comandos precisam de controles claros.&lt;/p&gt;

&lt;p&gt;No dsh, a interface web solicita aprovação para operações que exigem autorização segundo a política de permissões ativa. A documentação pública ainda não detalha completamente os níveis de política e suas semânticas.&lt;/p&gt;

&lt;p&gt;No Claude Code, o &lt;a href="https://code.claude.com/docs/en/permissions" rel="noopener noreferrer"&gt;sistema de permissões&lt;/a&gt; define seis modos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;default
acceptEdits
plan
auto
dontAsk
bypassPermissions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Além disso, ele oferece:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regras granulares de permissão e negação.&lt;/li&gt;
&lt;li&gt;Restrições por diretório de trabalho.&lt;/li&gt;
&lt;li&gt;Políticas gerenciadas para organizações.&lt;/li&gt;
&lt;li&gt;Controle por ferramenta e comando.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos práticos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;plan&lt;/code&gt; quando quiser que o agente explore e proponha mudanças sem editar arquivos.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;acceptEdits&lt;/code&gt; para revisar alterações antes de aceitá-las.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;auto&lt;/code&gt; quando quiser reduzir prompts usando classificação em segundo plano.&lt;/li&gt;
&lt;li&gt;Reserve &lt;code&gt;bypassPermissions&lt;/code&gt; para ambientes em sandbox, como contêineres isolados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para bases de código reguladas, equipes grandes ou CI autônomo, o Claude Code tem controles mais documentados atualmente.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP: nativo vs. plug-in da comunidade
&lt;/h2&gt;

&lt;p&gt;O Model Context Protocol (MCP) permite que agentes acessem sistemas externos, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bancos de dados.&lt;/li&gt;
&lt;li&gt;Rastreadores de tickets.&lt;/li&gt;
&lt;li&gt;Documentação interna.&lt;/li&gt;
&lt;li&gt;Especificações de API.&lt;/li&gt;
&lt;li&gt;Ferramentas de teste.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O Claude Code suporta MCP nativamente. As ferramentas MCP participam das mesmas regras de permissão usadas pelo restante do agente.&lt;/p&gt;

&lt;p&gt;No dsh, MCP não faz parte do núcleo atualmente. O suporte vem do plug-in comunitário:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dsh-mcp-manager
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse plug-in adiciona suporte para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servidores MCP HTTP remotos.&lt;/li&gt;
&lt;li&gt;Servidores MCP locais via stdio.&lt;/li&gt;
&lt;li&gt;OAuth.&lt;/li&gt;
&lt;li&gt;Tokens estáticos.&lt;/li&gt;
&lt;li&gt;Configuração por projeto.&lt;/li&gt;
&lt;li&gt;Ferramentas registradas no formato:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mcp__&amp;lt;name&amp;gt;__*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ele funciona, mas não é um componente oficial do núcleo do dsh e pode ser afetado pela instabilidade da prévia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como usar Apidog com os dois agentes
&lt;/h2&gt;

&lt;p&gt;Para desenvolvimento de APIs, o ponto mais importante é garantir que o agente trabalhe contra o contrato real da API.&lt;/p&gt;

&lt;p&gt;O &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog MCP Server&lt;/a&gt; pode expor a especificação da sua API para o agente. Assim, ele pode gerar clientes, handlers e testes com base nos endpoints e schemas reais, em vez de inventar nomes de campos.&lt;/p&gt;

&lt;p&gt;Fluxo recomendado:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mantenha a especificação OpenAPI atualizada no Apidog.&lt;/li&gt;
&lt;li&gt;Conecte o Apidog MCP Server ao Claude Code ou ao dsh.&lt;/li&gt;
&lt;li&gt;Peça ao agente para consultar a especificação antes de gerar código.&lt;/li&gt;
&lt;li&gt;Execute testes de regressão com Apidog CLI no CI.&lt;/li&gt;
&lt;li&gt;Bloqueie merges quando os testes de contrato falharem.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No Claude Code, a conexão MCP é nativa.&lt;/p&gt;

&lt;p&gt;No dsh, ela passa pelo &lt;code&gt;dsh-mcp-manager&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Você pode &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;baixar o Apidog&lt;/a&gt; e executar seu servidor MCP no mesmo projeto em que os agentes trabalham.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qual você deve escolher?
&lt;/h2&gt;

&lt;p&gt;Não existe um vencedor absoluto. A decisão depende do seu nível de tolerância a mudanças, da necessidade de controle e do ambiente em que o agente será usado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Escolha o DeepSeek Harness se:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Você precisa inspecionar, auditar ou fazer fork do código.&lt;/li&gt;
&lt;li&gt;A licença MIT é um requisito.&lt;/li&gt;
&lt;li&gt;Você quer usar modelos DeepSeek, modelos locais ou outros provedores compatíveis.&lt;/li&gt;
&lt;li&gt;Você quer alterar o loop ou a arquitetura do agente.&lt;/li&gt;
&lt;li&gt;Você aceita mudanças incompatíveis e manutenção adicional.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para começar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Escolha o Claude Code se:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Você precisa de um produto mais consolidado.&lt;/li&gt;
&lt;li&gt;Seu fluxo exige terminal, IDE, CI, desktop, web e mobile.&lt;/li&gt;
&lt;li&gt;Você precisa de controles de permissão detalhados.&lt;/li&gt;
&lt;li&gt;MCP nativo é importante.&lt;/li&gt;
&lt;li&gt;Sua equipe prefere custos previsíveis por assinatura.&lt;/li&gt;
&lt;li&gt;Você já decidiu trabalhar com modelos Claude.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Estratégia pragmática
&lt;/h3&gt;

&lt;p&gt;Você não precisa escolher imediatamente.&lt;/p&gt;

&lt;p&gt;Teste o dsh em projetos experimentais e use Claude Code em fluxos críticos. Em ambos os casos, mantenha a camada de API protegida com o &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;: uma especificação testada, disponível via MCP e validada por execuções de regressão com CLI após mudanças geradas pelo agente.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O DeepSeek Harness é realmente open source, ao contrário do Claude Code?
&lt;/h3&gt;

&lt;p&gt;Sim. O dsh usa licença MIT e disponibiliza o código-fonte no GitHub, incluindo o loop do agente e o kernel de plug-ins. O repositório público do Claude Code usa aviso de todos os direitos reservados sob os Termos Comerciais da Anthropic e não fornece código-fonte para fork.&lt;/p&gt;

&lt;h3&gt;
  
  
  O DeepSeek Harness pode usar modelos Claude?
&lt;/h3&gt;

&lt;p&gt;Sim. O dsh oferece provedores de catálogo para Anthropic, OpenAI, Bedrock, Vertex e Azure, além de endpoints compatíveis com OpenAI configurados em &lt;code&gt;settings.yaml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O inverso não é verdadeiro: Claude Code executa apenas modelos Claude, diretamente ou por Bedrock, Vertex e Foundry.&lt;/p&gt;

&lt;h3&gt;
  
  
  O DeepSeek Harness é estável para trabalho diário?
&lt;/h3&gt;

&lt;p&gt;Ele é uma prévia para desenvolvedores, e o README alerta sobre mudanças que quebram compatibilidade. É utilizável para trabalho real, mas espere mudanças em configurações e plug-ins.&lt;/p&gt;

&lt;p&gt;Para fluxos que não podem ser reconstruídos com frequência, Claude Code é a alternativa mais segura atualmente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ambos os agentes funcionam com Apidog?
&lt;/h3&gt;

&lt;p&gt;Sim. O servidor MCP do Apidog expõe sua especificação de API para agentes compatíveis com MCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nativamente no Claude Code.&lt;/li&gt;
&lt;li&gt;No dsh via &lt;code&gt;dsh-mcp-manager&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O Apidog CLI também pode executar testes de regressão em pipelines usados pelos dois agentes. Veja a configuração em &lt;a href="https://apidog.com/pt/blog/apidog-cli-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;usando o Apidog CLI no DeepSeek Harness&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O Que É DeepSeek Harness (dsh)? O Concorrente de Código Aberto do Claude, Explicado</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 20 Aug 2026 04:32:36 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/o-que-e-deepseek-harness-dsh-o-concorrente-de-codigo-aberto-do-claude-explicado-1300</link>
      <guid>https://dev.to/lucas_ferreira/o-que-e-deepseek-harness-dsh-o-concorrente-de-codigo-aberto-do-claude-explicado-1300</guid>
      <description>&lt;p&gt;DeepSeek lançou algo incomum em 13 de agosto de 2026: não um modelo, mas a máquina que o executa. O DeepSeek Harness (&lt;code&gt;dsh&lt;/code&gt;) é o orquestrador oficial de código aberto da empresa para agentes de codificação. Ele fornece loop de sessão, execução de ferramentas, aprovações de permissão e uma interface web local. Foi lançado no mesmo dia que o DeepSeek V4-Pro na API, e a &lt;a href="https://venturebeat.com/technology/deepseek-harness-launches-as-open-source-rival-to-claude-code-alongside-v4-pro-on-api-with-higher-prices" rel="noopener noreferrer"&gt;VentureBeat o enquadrou&lt;/a&gt; como um rival open source do Claude Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A comunidade reagiu rapidamente. Em 20 de agosto, o repositório &lt;a href="https://github.com/deepseek-ai/deepseek-harness" rel="noopener noreferrer"&gt;deepseek-harness&lt;/a&gt; tinha aproximadamente 169.000 estrelas e 18.100 forks, uma semana após o lançamento. Esses números mostram o interesse em orquestradores que desenvolvedores possam inspecionar, modificar e conectar a diferentes modelos.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o DeepSeek Harness
&lt;/h2&gt;

&lt;p&gt;Um orquestrador é a camada ao redor do modelo.&lt;/p&gt;

&lt;p&gt;Enquanto o modelo prevê tokens, o orquestrador define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;qual contexto o modelo recebe;&lt;/li&gt;
&lt;li&gt;quais ferramentas ele pode chamar;&lt;/li&gt;
&lt;li&gt;como comandos de shell e alterações de arquivos são aprovados;&lt;/li&gt;
&lt;li&gt;como sessões com múltiplas etapas são mantidas;&lt;/li&gt;
&lt;li&gt;como ferramentas, permissões e histórico são registrados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude Code, Codex CLI e Gemini CLI também são orquestradores. Para comparar Claude Code e Codex CLI, consulte &lt;a href="https://apidog.com/pt/blog/claude-code-vs-codex-cli?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Claude Code vs Codex CLI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O DeepSeek Harness entra nessa categoria com três características importantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;É oficial:&lt;/strong&gt; é um projeto da DeepSeek AI, não um wrapper comunitário da API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;É open source:&lt;/strong&gt; usa licença MIT e documenta dependências de terceiros no arquivo &lt;code&gt;THIRD_PARTY_NOTICES&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;É uma prévia para desenvolvedores:&lt;/strong&gt; o README avisa que haverá mudanças que quebrarão compatibilidade. Trate versões e plugins como componentes experimentais.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O &lt;code&gt;dsh&lt;/code&gt; foi lançado junto com o DeepSeek V4-Pro. Se você também estiver avaliando o modelo, veja o guia da &lt;a href="https://apidog.com/pt/blog/how-to-use-deepseek-v4-pro-0813-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API DeepSeek V4-Pro&lt;/a&gt;, com endpoints, IDs de modelo e exemplos de requisição.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arquitetura: tudo é plugin
&lt;/h2&gt;

&lt;p&gt;A principal diferença do &lt;code&gt;dsh&lt;/code&gt; é sua arquitetura baseada em plugins.&lt;/p&gt;

&lt;p&gt;Em muitos agentes de código, o loop do agente, o cliente do modelo, as ferramentas e o armazenamento de sessão fazem parte de uma única aplicação. Você pode ajustar configurações, mas normalmente não substitui componentes centrais.&lt;/p&gt;

&lt;p&gt;No DeepSeek Harness, esses componentes são módulos substituíveis, construídos sobre o framework &lt;strong&gt;Cordis&lt;/strong&gt;. Na prática, isso permite trocar partes importantes do agente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adaptador de modelo:&lt;/strong&gt; define como o &lt;code&gt;dsh&lt;/code&gt; conversa com uma API de LLM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registro de ferramentas:&lt;/strong&gt; define ferramentas como edição de arquivos, shell e busca.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log de sessão:&lt;/strong&gt; controla como sessões são registradas e reproduzidas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop do agente:&lt;/strong&gt; o ciclo de decidir, agir e observar também pode ser substituído.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Isso é útil quando sua equipe precisa experimentar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;diferentes modelos para tarefas específicas;&lt;/li&gt;
&lt;li&gt;políticas de aprovação mais restritivas;&lt;/li&gt;
&lt;li&gt;ferramentas exclusivas por repositório;&lt;/li&gt;
&lt;li&gt;estratégias de contexto e memória;&lt;/li&gt;
&lt;li&gt;endpoints locais ou gateways internos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A contrapartida é clara: quanto mais componentes trocáveis, maior a superfície para incompatibilidades. Como o projeto ainda é uma prévia, atualizações podem quebrar plugins e configurações existentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Início rápido: execute o primeiro agente
&lt;/h2&gt;

&lt;p&gt;Para iniciar a interface web local:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O comando inicia a UI em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:3080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por padrão, o navegador é aberto automaticamente. Para impedir isso:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @deepseek-ai/dsh web &lt;span class="nt"&gt;--no-open&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se preferir executar a partir do código-fonte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/deepseek-ai/deepseek-harness.git
&lt;span class="nb"&gt;cd &lt;/span&gt;deepseek-harness
pnpm &lt;span class="nb"&gt;install
&lt;/span&gt;pnpm run build
pnpm dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure a primeira sessão
&lt;/h3&gt;

&lt;p&gt;Depois de abrir a UI, siga este fluxo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Configure a chave da API DeepSeek&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Adicione a chave nas configurações. As credenciais são armazenadas em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   $DSH_HOME/.credentials.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O arquivo principal de configuração mantém apenas referências às credenciais.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Selecione um espaço de trabalho&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clique em “Escolher espaço de trabalho” e selecione o diretório do projeto.&lt;/p&gt;

&lt;p&gt;Essa etapa é obrigatória: o compositor de sessão permanece indisponível até que exista um workspace selecionado. O &lt;code&gt;dsh&lt;/code&gt; exige uma definição explícita dos arquivos que poderá analisar e modificar.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Execute uma tarefa e revise as aprovações&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Operações sujeitas à política de permissão ativa, como escrita em arquivos e comandos de shell, aparecem como solicitações de aprovação.&lt;/p&gt;

&lt;p&gt;Um exemplo de tarefa inicial:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Analise este repositório, identifique os testes que falham e proponha uma correção mínima. Não altere arquivos sem pedir aprovação.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use perfis e modo headless
&lt;/h2&gt;

&lt;p&gt;A UI web é apenas um perfil do &lt;code&gt;dsh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Este comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;é equivalente a:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh &lt;span class="nt"&gt;--profile&lt;/span&gt; web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os perfis ficam em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/profiles/&amp;lt;nome&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para automações, scripts ou CI, use o modo headless:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh &lt;span class="nt"&gt;--profile&lt;/span&gt; headless &lt;span class="s2"&gt;"Analise os testes falhos e descreva a causa"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse modo inicia uma sessão, imprime o resultado e encerra o processo.&lt;/p&gt;

&lt;p&gt;Outros comandos úteis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Gerencia plugins do perfil atual&lt;/span&gt;
dsh plugin

&lt;span class="c"&gt;# Exibe a configuração final composta&lt;/span&gt;
dsh &lt;span class="nt"&gt;--dump-config&lt;/span&gt;

&lt;span class="c"&gt;# Exibe a configuração padrão&lt;/span&gt;
dsh &lt;span class="nt"&gt;--dump-default-config&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Consulte a lista completa no &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md" rel="noopener noreferrer"&gt;README do CLI&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quais modelos o &lt;code&gt;dsh&lt;/code&gt; pode executar?
&lt;/h2&gt;

&lt;p&gt;Os modelos DeepSeek são o padrão, e o V4-Pro é o principal emparelhamento inicial.&lt;/p&gt;

&lt;p&gt;A DeepSeek tornou permanente seu desconto fora de pico, o que pode afetar o custo de agentes que consomem tokens continuamente. Veja os detalhes no post sobre o &lt;a href="https://apidog.com/pt/blog/deepseek-v4-pro-permanent-price-cut?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;corte de preço permanente do DeepSeek V4-Pro&lt;/a&gt; e na documentação oficial em &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;api-docs.deepseek.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Como o adaptador de modelo é um plugin, você também pode usar outros provedores.&lt;/p&gt;

&lt;h3&gt;
  
  
  Provedores de catálogo
&lt;/h3&gt;

&lt;p&gt;O &lt;code&gt;dsh&lt;/code&gt; inclui configurações para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic;&lt;/li&gt;
&lt;li&gt;OpenAI;&lt;/li&gt;
&lt;li&gt;Amazon Bedrock;&lt;/li&gt;
&lt;li&gt;Google Vertex;&lt;/li&gt;
&lt;li&gt;Azure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada provedor possui tratamento próprio de credenciais.&lt;/p&gt;

&lt;h3&gt;
  
  
  Provedores personalizados
&lt;/h3&gt;

&lt;p&gt;Você pode registrar endpoints compatíveis com OpenAI em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/settings.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A configuração inclui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URL base;&lt;/li&gt;
&lt;li&gt;variável de ambiente da chave;&lt;/li&gt;
&lt;li&gt;lista de modelos disponíveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Isso cobre APIs em nuvem, gateways internos e runtimes locais compatíveis.&lt;/p&gt;

&lt;p&gt;Cada sessão registra o modelo usado no início. Portanto, trocar o modelo padrão não altera o histórico das sessões anteriores.&lt;/p&gt;

&lt;p&gt;Veja o formato de configuração no &lt;a href="https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md" rel="noopener noreferrer"&gt;guia de provedores&lt;/a&gt;. Para um passo a passo completo com YAML para endpoints personalizados, consulte &lt;a href="https://apidog.com/pt/blog/run-any-model-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como executar qualquer modelo no DeepSeek Harness&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ecossistema de plugins
&lt;/h2&gt;

&lt;p&gt;Os plugins são descobertos pelo tópico &lt;a href="https://github.com/topics/dsh-plugin" rel="noopener noreferrer"&gt;dsh-plugin no GitHub&lt;/a&gt;. A comunidade também se organiza via GitHub Discussions e Discord.&lt;/p&gt;

&lt;p&gt;Uma semana após o lançamento, já havia alguns tipos de extensão:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wrappers desktop:&lt;/strong&gt; projetos como &lt;code&gt;deepseek-harness-desktop&lt;/code&gt; com Tauri e &lt;code&gt;dsh_desktop&lt;/code&gt; para Windows empacotam a UI web em aplicativos nativos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugins de capacidade:&lt;/strong&gt; projetos como &lt;code&gt;dsh-context&lt;/code&gt; e &lt;code&gt;dsh-vision-router&lt;/code&gt; ampliam o contexto ou o roteamento de sessões.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integração com MCP:&lt;/strong&gt; o core do &lt;code&gt;dsh&lt;/code&gt; não oferece suporte nativo ao Model Context Protocol até o momento, mas o plugin comunitário &lt;code&gt;dsh-mcp-manager&lt;/code&gt; adiciona suporte.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ao usar plugins comunitários, aplique o mesmo cuidado que aplicaria a qualquer dependência de terceiros, especialmente se ela acessar chaves de API, arquivos locais ou comandos de shell.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como funciona o MCP via plugin
&lt;/h3&gt;

&lt;p&gt;O &lt;code&gt;dsh-mcp-manager&lt;/code&gt; permite configurar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;servidores MCP HTTP remotos;&lt;/li&gt;
&lt;li&gt;servidores MCP locais via &lt;code&gt;stdio&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;OAuth ou token estático;&lt;/li&gt;
&lt;li&gt;ferramentas com nomes no formato:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mcp__&amp;lt;nome&amp;gt;__*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;configurações por projeto no diretório:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.dsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;do workspace.&lt;/p&gt;

&lt;p&gt;A distinção é importante: o DeepSeek Harness não possui MCP nativo no core neste momento. O suporte atual é fornecido pela comunidade via plugin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde seu fluxo de trabalho de API se encaixa
&lt;/h2&gt;

&lt;p&gt;Um agente de código depende de duas categorias de API:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;a API do modelo que ele chama;&lt;/li&gt;
&lt;li&gt;as APIs do projeto que ele precisa implementar, testar ou integrar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Se a especificação da sua API estiver desatualizada, o agente pode gerar código contra um contrato incorreto. O problema só aparece em runtime, quando o endpoint, payload ou resposta real diverge da implementação.&lt;/p&gt;

&lt;p&gt;Antes de pedir alterações ao agente, valide a superfície da API:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;importe ou defina a especificação OpenAPI;&lt;/li&gt;
&lt;li&gt;teste os endpoints reais contra a especificação;&lt;/li&gt;
&lt;li&gt;crie mocks para respostas estáveis;&lt;/li&gt;
&lt;li&gt;use essa especificação como fonte de verdade para o desenvolvimento.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ajuda nessa camada: você pode importar especificações OpenAPI, testar endpoints e criar servidores mock. Isso reduz o risco de o agente implementar integrações com base em código ou documentação obsoletos.&lt;/p&gt;

&lt;p&gt;Também existe um caminho via MCP. O &lt;a href="https://apidog.com/pt/blog/apidog-mcp-server?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog MCP Server&lt;/a&gt; expõe especificações de API a ferramentas de IA por meio do Model Context Protocol.&lt;/p&gt;

&lt;p&gt;No &lt;code&gt;dsh&lt;/code&gt;, o fluxo depende do plugin comunitário &lt;code&gt;dsh-mcp-manager&lt;/code&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;instale o plugin;&lt;/li&gt;
&lt;li&gt;registre o Apidog MCP Server;&lt;/li&gt;
&lt;li&gt;permita que a sessão consulte a especificação real;&lt;/li&gt;
&lt;li&gt;use a especificação para implementar e validar integrações.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para combinar testes de API baseados em CLI com o agente, veja &lt;a href="https://apidog.com/pt/blog/apidog-cli-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;usando Apidog CLI no DeepSeek Harness&lt;/a&gt;. Se quiser preparar a API antes de experimentar, &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;baixe o Apidog&lt;/a&gt; e importe sua especificação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Devo testar agora ou esperar?
&lt;/h2&gt;

&lt;p&gt;A resposta depende do seu caso de uso.&lt;/p&gt;

&lt;h3&gt;
  
  
  Teste agora se você:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;quer estudar como orquestradores de agentes funcionam internamente;&lt;/li&gt;
&lt;li&gt;precisa alternar modelos ou usar modelos auto-hospedados;&lt;/li&gt;
&lt;li&gt;quer construir plugins para ferramentas, contexto ou permissões;&lt;/li&gt;
&lt;li&gt;já usa a API DeepSeek e quer testar a experiência de agente oficial com o V4-Pro.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Espere se você:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;precisa de uma ferramenta diária estável;&lt;/li&gt;
&lt;li&gt;depende de compatibilidade entre versões;&lt;/li&gt;
&lt;li&gt;trabalha em uma organização que exige ferramentas oficialmente suportadas;&lt;/li&gt;
&lt;li&gt;não quer revisar plugins comunitários que podem lidar com credenciais;&lt;/li&gt;
&lt;li&gt;precisa do polimento de orquestradores mais maduros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma abordagem pragmática é manter seu agente atual em fluxos de produção e testar o &lt;code&gt;dsh&lt;/code&gt; em um projeto paralelo. Para uma comparação direta, consulte &lt;a href="https://apidog.com/pt/blog/deepseek-harness-vs-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek Harness vs Claude Code&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  DeepSeek Harness é gratuito?
&lt;/h3&gt;

&lt;p&gt;O orquestrador é gratuito e open source sob licença MIT.&lt;/p&gt;

&lt;p&gt;O custo depende do modelo configurado. Se você usar a API da DeepSeek ou outro provedor em nuvem, o consumo será cobrado por esse provedor. Como o adaptador é plugável, você também pode configurar um modelo hospedado localmente e evitar custos por token. Veja &lt;a href="https://apidog.com/pt/blog/run-any-model-in-deepseek-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;executar qualquer modelo no DeepSeek Harness&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  O &lt;code&gt;dsh&lt;/code&gt; só funciona com modelos DeepSeek?
&lt;/h3&gt;

&lt;p&gt;Não.&lt;/p&gt;

&lt;p&gt;Os modelos DeepSeek são o padrão, mas o adaptador de modelo é um plugin. O &lt;code&gt;dsh&lt;/code&gt; oferece provedores para Anthropic, OpenAI, Bedrock, Vertex e Azure, além de endpoints compatíveis com OpenAI configurados em:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$DSH_HOME/settings.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  É seguro executar o DeepSeek Harness na minha base de código?
&lt;/h3&gt;

&lt;p&gt;A segurança depende da política de permissões e da sua revisão das operações aprovadas.&lt;/p&gt;

&lt;p&gt;A UI exige a seleção de um workspace antes de iniciar sessões e solicita aprovação para operações que exigem permissão. Ainda assim, o projeto é uma prévia para desenvolvedores, e plugins comunitários podem acessar chaves de API ou recursos locais.&lt;/p&gt;

&lt;p&gt;Revise os plugins instalados e evite usar a prévia em repositórios onde uma alteração incorreta possa causar impacto significativo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual é a diferença entre um orquestrador e um modelo?
&lt;/h3&gt;

&lt;p&gt;O modelo é o mecanismo de raciocínio que gera tokens.&lt;/p&gt;

&lt;p&gt;O orquestrador é a camada que permite que esse modelo execute tarefas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gerenciamento de sessão;&lt;/li&gt;
&lt;li&gt;montagem de contexto;&lt;/li&gt;
&lt;li&gt;acesso a arquivos;&lt;/li&gt;
&lt;li&gt;chamadas de ferramentas;&lt;/li&gt;
&lt;li&gt;execução de comandos;&lt;/li&gt;
&lt;li&gt;solicitações de permissão;&lt;/li&gt;
&lt;li&gt;registro de histórico.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dois agentes podem usar o mesmo modelo e produzir resultados diferentes porque seus orquestradores usam ferramentas, permissões e contexto de formas diferentes.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hospedagem própria do GLM-5.3: Prepare-se para a liberação dos pesos abertos</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Sun, 16 Aug 2026 15:39:47 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/hospedagem-propria-do-glm-53-prepare-se-para-a-liberacao-dos-pesos-abertos-3bef</link>
      <guid>https://dev.to/lucas_ferreira/hospedagem-propria-do-glm-53-prepare-se-para-a-liberacao-dos-pesos-abertos-3bef</guid>
      <description>&lt;p&gt;A Zhipu AI lançou o GLM-5.3 em 14 de agosto de 2026. Para equipes de infraestrutura, a informação mais útil é o cronograma dos pesos abertos: a previsão é que cheguem cerca de duas semanas depois, por volta de 28 de agosto, na &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;organização zai-org no Hugging Face&lt;/a&gt;. Use essa janela para preparar hardware, validar sua pilha de serving e criar uma linha de base com a API hospedada antes de baixar os safetensors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A preparação vale o esforço. Segundo relatórios de lançamento, a Zhipu posiciona o GLM-5.3 com ganho de 50% em coding sobre o GLM-5.2, aumento no Terminal-Bench 3.0 de 4.6 para 28.3 e desempenho de agente “aproximando-se do Claude Fable 5”. Veja os detalhes e limitações dos benchmarks no &lt;a href="https://apidog.com/pt/blog/what-is-glm-5-3?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;explicador do GLM-5.3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Este guia responde a uma pergunta prática: &lt;strong&gt;o que deixar pronto para servir o GLM-5.3 localmente no dia em que os pesos forem publicados?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Os pesos ainda não estão disponíveis para download. As etapas abaixo são um plano de preparação baseado nas informações públicas e no padrão de releases anteriores da Zhipu.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A API do GLM-5.3 foi lançada em 14 de agosto de 2026. Os pesos abertos são esperados por volta de 28 de agosto em &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;huggingface.co/zai-org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A família GLM-5 usa Mixture of Experts (MoE): 744B de parâmetros totais, aproximadamente 40B ativos por token e contexto de 200K, conforme a documentação da &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Em BF16, os pesos ocupam aproximadamente 1.5 TB. Em FP8, aproximadamente 744–745 GB, sem incluir cache KV.&lt;/li&gt;
&lt;li&gt;O padrão esperado é um repositório BF16 e outro FP8, como &lt;code&gt;GLM-5.3&lt;/code&gt; e &lt;code&gt;GLM-5.3-FP8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Para o primeiro dia, priorize &lt;strong&gt;vLLM&lt;/strong&gt; ou &lt;strong&gt;SGLang&lt;/strong&gt;, ambos com endpoints compatíveis com OpenAI.&lt;/li&gt;
&lt;li&gt;Capture respostas da API hospedada agora e execute a mesma coleção contra seu endpoint local depois. Faça isso com o &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;: uma coleção, dois ambientes e asserções reproduzíveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O que será lançado e quando
&lt;/h2&gt;

&lt;p&gt;A Zhipu, conhecida internacionalmente como &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;, associou o lançamento da API do GLM-5.3 à promessa de pesos abertos cerca de duas semanas depois. O destino esperado é a página &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;zai-org no Hugging Face&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A empresa afirma que aplicou sua revisão de risco mais abrangente até agora. Isso é relevante considerando a pontuação de 84.5% no CyberGym, citada como ligeiramente acima de Claude Mythos 5 e GPT-5.6 Sol. O &lt;a href="https://www.seekingalpha.com/news/4472588-chinese-openai-challenger-zhipu-is-said-to-unveil-new-open-source-model" rel="noopener noreferrer"&gt;Seeking Alpha&lt;/a&gt; descreve o release como parte da disputa da Zhipu com a DeepSeek pela liderança em modelos abertos.&lt;/p&gt;

&lt;p&gt;Para self-hosting, dois pontos importam:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A arquitetura base não mudou.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
O GLM-5.3 usa a base do GLM-5 com pós-treinamento escalonado. Portanto, a infraestrutura que já atende GLM-5 ou GLM-5.2 deve ser o ponto de partida.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;O formato de release já tem precedente.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A Zhipu publicou GLM-5, GLM-5.1 e GLM-5.2 com variantes BF16 e FP8. É razoável esperar o mesmo padrão para o GLM-5.3.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Antes de usar o modelo em produção ou em um produto comercial, leia a licença no card do modelo assim que o repositório for publicado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planeje o hardware: 744B totais não significa 40B de memória
&lt;/h2&gt;

&lt;p&gt;A família GLM-5 é uma arquitetura MoE com:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;744B de parâmetros totais;&lt;/li&gt;
&lt;li&gt;aproximadamente 40B de parâmetros ativos por passagem;&lt;/li&gt;
&lt;li&gt;contexto de até 200K;&lt;/li&gt;
&lt;li&gt;números documentados pela &lt;a href="https://docs.z.ai/guides/llm/glm-5" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A implicação prática é simples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compute:&lt;/strong&gt; se comporta mais próximo de um modelo denso de 40B, porque apenas parte dos especialistas é ativada por token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memória:&lt;/strong&gt; se comporta como um modelo de 744B, porque todos os especialistas precisam estar disponíveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estimativa apenas para os pesos:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Precisão&lt;/th&gt;
&lt;th&gt;Tamanho estimado dos pesos&lt;/th&gt;
&lt;th&gt;Ambiente realista&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BF16&lt;/td&gt;
&lt;td&gt;~1.5 TB&lt;/td&gt;
&lt;td&gt;Cluster multi-nó ou servidor com muitas GPUs de alta capacidade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FP8 oficial&lt;/td&gt;
&lt;td&gt;~745 GB&lt;/td&gt;
&lt;td&gt;Servidor multi-GPU de ponta, possivelmente em nó único&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INT4 da comunidade&lt;/td&gt;
&lt;td&gt;~370–400 GB&lt;/td&gt;
&lt;td&gt;Rig multi-GPU menor, sujeito a validação de qualidade&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Esses valores não incluem o cache KV. Com contexto longo e múltiplas requisições simultâneas, o cache KV pode se tornar um custo relevante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decisão recomendada antes do lançamento
&lt;/h3&gt;

&lt;p&gt;Defina um limite de contexto por ambiente. Por exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;desenvolvimento: 32K
staging:        64K
produção:       64K ou 128K, após medir consumo de VRAM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Não exponha automaticamente os 200K de contexto apenas porque o modelo suporta esse limite. Primeiro meça:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VRAM disponível após carregar os pesos;&lt;/li&gt;
&lt;li&gt;throughput com concorrência;&lt;/li&gt;
&lt;li&gt;latência p50 e p95;&lt;/li&gt;
&lt;li&gt;impacto do cache KV no maior contexto permitido.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você só tem uma GPU de consumidor, os pesos completos não são um alvo viável. Nesse cenário:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mantenha GLM-5.3 na API hospedada;&lt;/li&gt;
&lt;li&gt;alugue GPUs para testes pontuais;&lt;/li&gt;
&lt;li&gt;aguarde quantizações da comunidade;&lt;/li&gt;
&lt;li&gt;use modelos menores localmente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Veja alternativas no &lt;a href="https://apidog.com/pt/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de melhores LLMs locais em 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Escolha sua pilha de serving antes dos pesos chegarem
&lt;/h2&gt;

&lt;p&gt;Evite descobrir incompatibilidades de CUDA, drivers ou paralelismo no dia do release. Instale e valide sua pilha agora.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opção 1: vLLM
&lt;/h3&gt;

&lt;p&gt;O &lt;strong&gt;vLLM&lt;/strong&gt; é a escolha mais conservadora para o primeiro dia:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;suporte já estabelecido para a família GLM-5;&lt;/li&gt;
&lt;li&gt;paralelismo adequado para MoE;&lt;/li&gt;
&lt;li&gt;API compatível com OpenAI;&lt;/li&gt;
&lt;li&gt;integração simples com SDKs existentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um comando inicial pode se parecer com este:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve zai-org/GLM-5.3-FP8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 65536 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--served-model-name&lt;/span&gt; glm-5.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trate esse comando como modelo, não como configuração final:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--tensor-parallel-size&lt;/code&gt; depende da quantidade e da memória das GPUs;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--max-model-len&lt;/code&gt; deve respeitar seu orçamento de cache KV;&lt;/li&gt;
&lt;li&gt;o nome do repositório precisa ser confirmado quando os pesos forem publicados.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Opção 2: SGLang
&lt;/h3&gt;

&lt;p&gt;O &lt;strong&gt;SGLang&lt;/strong&gt; é especialmente interessante se suas cargas de trabalho reutilizam prompts longos, como agentes com instruções, ferramentas e contexto compartilhado.&lt;/p&gt;

&lt;p&gt;Pontos fortes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bom suporte para serving de MoE;&lt;/li&gt;
&lt;li&gt;cache de prefixo em árvore radix;&lt;/li&gt;
&lt;li&gt;endpoint compatível com OpenAI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você alternar entre vLLM e SGLang, seu cliente pode continuar igual se ambos expuserem o mesmo contrato OpenAI-compatible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opção 3: llama.cpp, Ollama e LM Studio
&lt;/h3&gt;

&lt;p&gt;A família &lt;strong&gt;llama.cpp&lt;/strong&gt; depende de conversões para GGUF. Em geral, essas conversões aparecem dias ou semanas depois do release oficial de safetensors.&lt;/p&gt;

&lt;p&gt;Use esse caminho apenas quando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;existirem quantizações confiáveis;&lt;/li&gt;
&lt;li&gt;você tiver validado a qualidade contra sua linha de base;&lt;/li&gt;
&lt;li&gt;o perfil de hardware justificar a perda potencial de qualidade ou throughput.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Crie uma linha de base com a API hospedada
&lt;/h2&gt;

&lt;p&gt;Antes de servir o modelo localmente, registre como a implementação hospedada responde aos prompts importantes para seu produto.&lt;/p&gt;

&lt;p&gt;A API hospedada deve ser sua referência para responder perguntas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a quantização reduziu a qualidade?&lt;/li&gt;
&lt;li&gt;o servidor local está aplicando o template de chat corretamente?&lt;/li&gt;
&lt;li&gt;o problema está na configuração do framework?&lt;/li&gt;
&lt;li&gt;a diferença é apenas variância de geração?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A API é compatível com OpenAI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internacional:
https://api.z.ai/api/paas/v4/chat/completions

China continental:
https://open.bigmodel.cn/api/paas/v4/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use autenticação Bearer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer &amp;lt;key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A documentação da &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt; lista &lt;code&gt;glm-5&lt;/code&gt; atualmente. Confirme o identificador exato de &lt;code&gt;glm-5.3&lt;/code&gt; na &lt;a href="https://docs.z.ai/" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt; antes de automatizar suas requisições.&lt;/p&gt;

&lt;p&gt;Para um passo a passo completo de configuração, consulte o &lt;a href="https://apidog.com/pt/blog/how-to-use-glm-5-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia rápido da API GLM-5.3&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Capture respostas determinísticas o máximo possível
&lt;/h3&gt;

&lt;p&gt;Use temperatura &lt;code&gt;0&lt;/code&gt; e prompts fixos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.z.ai/api/paas/v4/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$GLM_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "glm-5.3",
    "temperature": 0,
    "messages": [
      {
        "role": "user",
        "content": "Write a Python function that parses RFC 3339 timestamps and returns UTC datetimes. Include error handling for invalid input."
      }
    ]
  }'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; baseline-rfc3339.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crie entre 20 e 50 casos cobrindo seus fluxos reais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;geração e revisão de código;&lt;/li&gt;
&lt;li&gt;chamadas de ferramenta;&lt;/li&gt;
&lt;li&gt;extração estruturada;&lt;/li&gt;
&lt;li&gt;respostas JSON;&lt;/li&gt;
&lt;li&gt;sumarização de contexto longo;&lt;/li&gt;
&lt;li&gt;fluxos de agente;&lt;/li&gt;
&lt;li&gt;prompts multilíngues, se aplicável.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Temperatura &lt;code&gt;0&lt;/code&gt; não elimina completamente a variância, mas reduz a dispersão o suficiente para detectar regressões relevantes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monte um harness de regressão no Apidog
&lt;/h2&gt;

&lt;p&gt;Scripts &lt;code&gt;curl&lt;/code&gt; funcionam para um teste manual, mas não escalam para múltiplos endpoints, quantizações e membros da equipe. Estruture a comparação como um teste de API.&lt;/p&gt;

&lt;p&gt;O &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; permite organizar essa validação em uma coleção reutilizável. Para fundamentos de testes de API, veja também o &lt;a href="https://apidog.com/pt/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia para engenheiros de QA&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuração recomendada
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Crie uma coleção de baseline.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Cada prompt deve ser uma requisição para &lt;code&gt;chat/completions&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Crie dois ambientes: &lt;code&gt;hosted&lt;/code&gt; e &lt;code&gt;local&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo de variáveis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   hosted
   base_url=https://api.z.ai/api/paas/v4
   api_key=&amp;lt;sua-chave-Z.ai&amp;gt;

   local
   base_url=http://localhost:8000/v1
   api_key=local-serving
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use variáveis em todas as requisições.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   POST {{base_url}}/chat/completions
   Authorization: Bearer {{api_key}}
   Content-Type: application/json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Adicione asserções estruturais.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Comece validando contrato, não texto exato:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;status HTTP &lt;code&gt;200&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;choices[0].message.content&lt;/code&gt; não vazio;&lt;/li&gt;
&lt;li&gt;objeto &lt;code&gt;usage&lt;/code&gt; presente;&lt;/li&gt;
&lt;li&gt;resposta JSON válida;&lt;/li&gt;
&lt;li&gt;presença de tool calls quando o prompt exige ferramentas.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Adicione verificações semânticas simples para código.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemplo de critérios robustos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   resposta contém "def "
   resposta contém "datetime"
   resposta contém "try"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Evite comparar uma resposta inteira byte a byte. Mesmo com temperatura zero, isso pode gerar falsos negativos.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Salve as respostas hospedadas como exemplos.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Elas serão seus fixtures de referência.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Execute a coleção pela CLI.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Assim, a validação pode entrar em scripts, pipelines de CI e testes de cada mudança de quantização ou configuração de serving.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O resultado desejado é simples: um comando que responda, por caso de teste, se a implantação local continua dentro do comportamento esperado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mantenha o código cliente igual
&lt;/h2&gt;

&lt;p&gt;Como a API hospedada e os servidores locais usam a convenção OpenAI-compatible, a aplicação não precisa ser reescrita. Troque apenas a &lt;code&gt;base_url&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="c1"&gt;# Hospedado:
# GLM_BASE_URL=https://api.z.ai/api/paas/v4
&lt;/span&gt;
&lt;span class="c1"&gt;# Local:
# GLM_BASE_URL=http://localhost:8000/v1
&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GLM_BASE_URL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GLM_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;local-serving&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glm-5.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Refactor this function to remove the nested loops: ...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao iniciar vLLM ou SGLang, mantenha o nome servido consistente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--served-model-name&lt;/span&gt; glm-5.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso evita condicionais no código da aplicação.&lt;/p&gt;

&lt;p&gt;Teste separadamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;streaming;&lt;/li&gt;
&lt;li&gt;chamadas de ferramentas;&lt;/li&gt;
&lt;li&gt;JSON mode;&lt;/li&gt;
&lt;li&gt;respostas estruturadas;&lt;/li&gt;
&lt;li&gt;mensagens longas;&lt;/li&gt;
&lt;li&gt;concorrência.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses são os pontos onde uma pilha local pode divergir mais da API hospedada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare custo de API e GPUs próprias
&lt;/h2&gt;

&lt;p&gt;A Zhipu não havia publicado um preço específico para a API 5.3 no lançamento. Consulte a &lt;a href="https://docs.z.ai/guides/overview/pricing" rel="noopener noreferrer"&gt;página oficial de preços&lt;/a&gt; antes de fazer projeções.&lt;/p&gt;

&lt;p&gt;A comparação é estrutural:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cenário&lt;/th&gt;
&lt;th&gt;Tendência&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Baixa utilização ou uso irregular&lt;/td&gt;
&lt;td&gt;API hospedada tende a ser mais econômica&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avaliação e experimentação&lt;/td&gt;
&lt;td&gt;Aluguel de GPU tende a ser melhor que compra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alto volume sustentado&lt;/td&gt;
&lt;td&gt;Self-hosting pode fazer sentido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requisitos de residência de dados&lt;/td&gt;
&lt;td&gt;Self-hosting pode ser necessário&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Controle rígido de latência e disponibilidade&lt;/td&gt;
&lt;td&gt;Self-hosting pode ser justificável&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Self-hosting de um MoE de 744B significa pagar por capacidade de GPU mesmo quando não há tokens sendo processados. Isso só compensa quando você tem utilização sustentada, requisitos de governança ou necessidades operacionais que a API compartilhada não atende.&lt;/p&gt;

&lt;p&gt;Também existe um benefício estratégico: pesos abertos reduzem dependência de preço. Mudanças de tarifa podem afetar a economia unitária de uma aplicação, como discutido na &lt;a href="https://apidog.com/pt/blog/deepseek-api-price-increase-cost-optimization?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;análise sobre o aumento de preços da API DeepSeek&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checklist para o dia do lançamento
&lt;/h2&gt;

&lt;p&gt;Faça os itens 1 a 6 antes de 28 de agosto.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Defina sua precisão alvo: BF16, FP8 ou quantização futura.&lt;/li&gt;
&lt;li&gt;Verifique se seu hardware suporta os pesos e o cache KV esperado.&lt;/li&gt;
&lt;li&gt;Instale vLLM ou SGLang.&lt;/li&gt;
&lt;li&gt;Faça um teste seco com GLM-5.2 ou outro MoE público.&lt;/li&gt;
&lt;li&gt;Crie uma chave da &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt; e confirme o ID do modelo na &lt;a href="https://docs.z.ai/" rel="noopener noreferrer"&gt;documentação ativa&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Capture 20 a 50 respostas da API hospedada com temperatura &lt;code&gt;0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Crie uma coleção no Apidog com os ambientes &lt;code&gt;hosted&lt;/code&gt; e &lt;code&gt;local&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Defina o contexto máximo por ambiente.&lt;/li&gt;
&lt;li&gt;No lançamento, monitore &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;huggingface.co/zai-org&lt;/a&gt; pelos repositórios &lt;code&gt;GLM-5.3&lt;/code&gt; e &lt;code&gt;GLM-5.3-FP8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Leia a licença no card do modelo antes de uso comercial.&lt;/li&gt;
&lt;li&gt;Baixe os pesos e inicie seu servidor local.&lt;/li&gt;
&lt;li&gt;Aponte o ambiente &lt;code&gt;local&lt;/code&gt; para o endpoint vLLM ou SGLang.&lt;/li&gt;
&lt;li&gt;Execute a coleção de regressão.&lt;/li&gt;
&lt;li&gt;Investigue falhas de conteúdo antes de liberar tráfego.&lt;/li&gt;
&lt;li&gt;Só depois ajuste quantização, paralelismo, cache de prefixo e limite de contexto.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Posso baixar os pesos do GLM-5.3 agora?
&lt;/h3&gt;

&lt;p&gt;Não. Em 14 de agosto de 2026, apenas a API hospedada está ativa. A previsão é que os pesos abertos sejam publicados cerca de duas semanas depois, por volta de 28 de agosto, na &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;página zai-org do Hugging Face&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  O GLM-5.3 roda em uma única GPU de consumidor?
&lt;/h3&gt;

&lt;p&gt;Não com os pesos completos. Os 744B de parâmetros da família correspondem a aproximadamente 744 GB em FP8 antes do cache KV. Mesmo quantizações INT4 permanecem no território multi-GPU.&lt;/p&gt;

&lt;p&gt;Para uma única GPU, prefira modelos menores locais e mantenha GLM-5.3 na API hospedada. Consulte o &lt;a href="https://apidog.com/pt/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;resumo de LLMs locais&lt;/a&gt; para opções compatíveis com esse perfil.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual framework devo usar?
&lt;/h3&gt;

&lt;p&gt;Comece com &lt;strong&gt;vLLM&lt;/strong&gt; se quiser o caminho mais previsível para o primeiro dia. Use &lt;strong&gt;SGLang&lt;/strong&gt; se sua carga reutiliza prefixos longos, como em loops de agentes. Aguarde conversões GGUF para usar llama.cpp, Ollama ou LM Studio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meu código com o SDK OpenAI funcionará?
&lt;/h3&gt;

&lt;p&gt;Sim, desde que seu servidor local exponha uma API compatível com OpenAI. Troque a &lt;code&gt;base_url&lt;/code&gt; para o endpoint do vLLM ou SGLang e preserve o formato da requisição.&lt;/p&gt;

&lt;p&gt;Teste explicitamente streaming e chamadas de ferramenta.&lt;/p&gt;

&lt;h3&gt;
  
  
  Por que criar uma baseline hospedada se vou usar self-hosting?
&lt;/h3&gt;

&lt;p&gt;Porque ela é sua implementação de referência. Sem fixtures hospedados, você não saberá se uma resposta local ruim foi causada por:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quantização agressiva;&lt;/li&gt;
&lt;li&gt;configuração incorreta;&lt;/li&gt;
&lt;li&gt;bug no framework;&lt;/li&gt;
&lt;li&gt;diferença de template;&lt;/li&gt;
&lt;li&gt;comportamento normal do modelo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Capture as respostas agora usando a configuração do &lt;a href="https://apidog.com/pt/blog/how-to-use-glm-5-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia rápido da API GLM-5.3&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O GLM-5.3 pode ser um dos lançamentos de pesos abertos mais relevantes do ano para coding e agentes. O diferencial na primeira semana não será apenas ter mais GPUs: será ter um processo de validação pronto.&lt;/p&gt;

&lt;p&gt;Prepare agora:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uma pilha de serving testada;&lt;/li&gt;
&lt;li&gt;uma decisão de precisão;&lt;/li&gt;
&lt;li&gt;limites de contexto;&lt;/li&gt;
&lt;li&gt;fixtures da API hospedada;&lt;/li&gt;
&lt;li&gt;uma coleção de regressão com ambientes &lt;code&gt;hosted&lt;/code&gt; e &lt;code&gt;local&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comece pela checklist e use o &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para manter a comparação reproduzível: uma coleção, dois ambientes e asserções que transformam “parece funcionar” em um relatório de aprovação ou reprovação.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O que é GLM-5.3? Entenda o Modelo Open-Weight de Programação da Zhipu</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Sun, 16 Aug 2026 15:34:52 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/o-que-e-glm-53-entenda-o-modelo-open-weight-de-programacao-da-zhipu-m3c</link>
      <guid>https://dev.to/lucas_ferreira/o-que-e-glm-53-entenda-o-modelo-open-weight-de-programacao-da-zhipu-m3c</guid>
      <description>&lt;p&gt;GLM-5.3 é um grande modelo de linguagem lançado em 14 de agosto de 2026 pela Zhipu AI, laboratório chinês que opera internacionalmente como &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;. É uma atualização pós-treinamento do GLM-5 voltada para codificação e fluxos agênticos. A Zhipu planeja publicar os pesos abertos no Hugging Face cerca de duas semanas após o lançamento. Segundo avaliações internas da empresa, a capacidade de codificação melhorou 50% em relação ao GLM-5.2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;O lançamento chama atenção porque a Zhipu — descrita pelo Seeking Alpha como uma &lt;a href="https://www.seekingalpha.com/news/4472588-chinese-openai-challenger-zhipu-is-said-to-unveil-new-open-source-model" rel="noopener noreferrer"&gt;“desafiante chinesa da OpenAI”&lt;/a&gt; — afirma que o modelo está “se aproximando do Claude Fable 5” em codificação e agentes, com pesos abertos previstos em seguida. Ele chegou um dia após o lançamento mais recente da DeepSeek, abordado no nosso &lt;a href="https://apidog.com/pt/blog/how-to-use-deepseek-v4-pro-0813-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia da API DeepSeek V4 Pro&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Neste artigo, você verá o que muda no GLM-5.3, como interpretar os benchmarks, o plano de pesos abertos e como fazer sua primeira chamada à API. Você também pode testar a requisição no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; sem escrever código.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resumo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GLM-5.3 foi lançado em 14 de agosto de 2026 pela Zhipu AI (&lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;). Ele usa o mesmo modelo base GLM-5; os ganhos vêm do pós-treinamento escalonado.&lt;/li&gt;
&lt;li&gt;No Terminal-Bench 3.0, a pontuação subiu de 4,6 para 28,3: um salto de 6,2x e primeiro lugar entre modelos de código aberto.&lt;/li&gt;
&lt;li&gt;O modelo também ocupa o primeiro lugar entre modelos abertos no Agents’ Last Exam.&lt;/li&gt;
&lt;li&gt;No CyberGym, alcançou 84,5%, ligeiramente acima de Claude Mythos 5 e GPT-5.6 Sol. No ExploitBench, marcou 54,4% e ainda ficou atrás dos modelos de ponta.&lt;/li&gt;
&lt;li&gt;Os pesos abertos devem chegar ao &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; por volta de 28 de agosto de 2026, após a revisão de risco da Zhipu.&lt;/li&gt;
&lt;li&gt;A família GLM-5 usa arquitetura Mixture of Experts (MoE), com 744B de parâmetros totais, aproximadamente 40B ativos por passagem e janela de contexto de 200K tokens.&lt;/li&gt;
&lt;li&gt;A API é compatível com OpenAI em &lt;code&gt;https://api.z.ai/api/paas/v4/chat/completions&lt;/code&gt;. Nenhum preço específico da versão 5.3 foi publicado no lançamento.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O que é o GLM-5.3
&lt;/h2&gt;

&lt;p&gt;GLM-5.3 é a terceira atualização pontual da família GLM-5 e a mais direcionada para desenvolvimento. A Zhipu não retreinou o modelo base. Segundo a &lt;a href="https://docs.z.ai/" rel="noopener noreferrer"&gt;documentação oficial&lt;/a&gt;, o GLM-5 mantém:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arquitetura Mixture of Experts;&lt;/li&gt;
&lt;li&gt;744B de parâmetros totais;&lt;/li&gt;
&lt;li&gt;Cerca de 40B de parâmetros ativos por passagem;&lt;/li&gt;
&lt;li&gt;Janela de contexto de 200K tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fswwpnagfu6ekluy8hsmm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fswwpnagfu6ekluy8hsmm.png" alt="Arquitetura e resultados do GLM-5.3" width="799" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As melhorias vêm do pós-treinamento escalonado aplicado aos mesmos pesos base. Na prática, isso indica que o principal avanço está no pipeline de alinhamento e treinamento posterior, não em uma nova arquitetura.&lt;/p&gt;

&lt;p&gt;As cargas de trabalho alvo são específicas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agentes orientados por terminal;&lt;/li&gt;
&lt;li&gt;engenharia de software de longa duração;&lt;/li&gt;
&lt;li&gt;tarefas de segurança;&lt;/li&gt;
&lt;li&gt;automação de fluxos de desenvolvimento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você precisa avaliar modelos para agentes de código, GLM-5.3 é uma opção a comparar com APIs fechadas e modelos abertos auto-hospedados assim que os pesos forem liberados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmarks do GLM-5.3: números e fontes
&lt;/h2&gt;

&lt;p&gt;A cobertura de lançamento da &lt;a href="https://finance.biggo.com/news/0b571a42-9531-433c-b81b-c8468d173989" rel="noopener noreferrer"&gt;BigGo Finance&lt;/a&gt; e da &lt;a href="https://pandaily.com/zhipu-glm-5-3-release-tang-jie-sooooooon-coding-security-aug2026" rel="noopener noreferrer"&gt;Pandaily&lt;/a&gt; relatou os resultados abaixo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Atenção à fonte de cada métrica: alguns dados vêm de relatórios de lançamento e outros de avaliações internas da Zhipu. Resultados internos ainda precisam de reprodução independente.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Resultado GLM-5.3&lt;/th&gt;
&lt;th&gt;Contexto&lt;/th&gt;
&lt;th&gt;Fonte&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 3.0&lt;/td&gt;
&lt;td&gt;28,3, acima de 4,6&lt;/td&gt;
&lt;td&gt;Salto de 6,2x; primeiro entre modelos de código aberto&lt;/td&gt;
&lt;td&gt;Relatório de lançamento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents’ Last Exam&lt;/td&gt;
&lt;td&gt;Primeiro entre modelos de código aberto&lt;/td&gt;
&lt;td&gt;Pontuação não divulgada&lt;/td&gt;
&lt;td&gt;Relatório de lançamento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CyberGym&lt;/td&gt;
&lt;td&gt;84,5%&lt;/td&gt;
&lt;td&gt;Ligeiramente acima de Claude Mythos 5 e GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;Relatório de lançamento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExploitBench&lt;/td&gt;
&lt;td&gt;54,4%&lt;/td&gt;
&lt;td&gt;Ainda atrás de modelos de ponta&lt;/td&gt;
&lt;td&gt;Relatório de lançamento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-Marathon&lt;/td&gt;
&lt;td&gt;Aproximadamente 2x GLM-5.2&lt;/td&gt;
&lt;td&gt;Engenharia de software de longo prazo&lt;/td&gt;
&lt;td&gt;Interno da Zhipu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capacidade de codificação agregada&lt;/td&gt;
&lt;td&gt;+50% vs. GLM-5.2&lt;/td&gt;
&lt;td&gt;Reivindicação principal da Zhipu&lt;/td&gt;
&lt;td&gt;Interno da Zhipu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Como interpretar esses números
&lt;/h3&gt;

&lt;p&gt;O salto no Terminal-Bench 3.0 é relevante. Esse tipo de benchmark avalia se o modelo consegue:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Executar comandos shell em sequência;&lt;/li&gt;
&lt;li&gt;Ler e interpretar saídas;&lt;/li&gt;
&lt;li&gt;Corrigir erros;&lt;/li&gt;
&lt;li&gt;Continuar tarefas de várias etapas.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sair de 4,6 para 28,3 muda o potencial do modelo para pipelines de agentes, CI e automação baseada em terminal.&lt;/p&gt;

&lt;p&gt;Por outro lado, as alegações de ganho de 50% em codificação e de aproximadamente 2x no SWE-Marathon são avaliações internas. Elas não devem ser tratadas como resultados reproduzíveis até que os pesos sejam publicados e a comunidade execute as mesmas suítes.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que “aproximando-se do Claude Fable 5” significa na prática
&lt;/h2&gt;

&lt;p&gt;A Zhipu afirma que o GLM-5.3 está “se aproximando do Claude Fable 5” em codificação e comportamento agêntico. Essa formulação não significa equivalência geral.&lt;/p&gt;

&lt;p&gt;O que os números sugerem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em tarefas de terminal e agentes, o GLM-5.3 parece competitivo.&lt;/li&gt;
&lt;li&gt;O primeiro lugar entre modelos abertos no Terminal-Bench 3.0 e no Agents’ Last Exam é relevante para agentes de codificação.&lt;/li&gt;
&lt;li&gt;No CyberGym, os 84,5% superam ligeiramente Claude Mythos 5 e GPT-5.6 Sol, embora pequenas diferenças possam variar entre execuções.&lt;/li&gt;
&lt;li&gt;No ExploitBench, os 54,4% indicam que o modelo ainda fica atrás da fronteira em raciocínio mais profundo e desenvolvimento de exploits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para sua pilha, isso sugere um plano simples:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Teste o GLM-5.3 em agentes de terminal, automação de CI e tarefas de repositório.&lt;/li&gt;
&lt;li&gt;Mantenha modelos fechados de ponta na comparação para tarefas de raciocínio difícil.&lt;/li&gt;
&lt;li&gt;Use uma suíte própria antes de mover tráfego de produção.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para comparar os modelos de ponta nesses eixos, consulte a &lt;a href="https://apidog.com/pt/blog/grok-4-6-vs-gpt-5-6-vs-claude-fable-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comparação entre Grok 4.6, GPT-5.6 e Claude Fable 5&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plano de pesos abertos: Hugging Face por volta de 28 de agosto
&lt;/h2&gt;

&lt;p&gt;A Zhipu se comprometeu a publicar os pesos abertos do GLM-5.3 cerca de duas semanas após o lançamento. A previsão é por volta de 28 de agosto de 2026, na organização &lt;a href="https://huggingface.co/zai-org" rel="noopener noreferrer"&gt;zai-org no Hugging Face&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O intervalo de duas semanas faz parte da revisão de risco anunciada pela empresa. Isso é especialmente relevante porque o resultado de 84,5% no CyberGym indica capacidade significativa em segurança ofensiva. Publicar pesos abertos é diferente de disponibilizar o modelo por uma API monitorada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Planeje a execução local com realismo
&lt;/h3&gt;

&lt;p&gt;A família GLM-5 tem 744B de parâmetros totais, mesmo que apenas cerca de 40B estejam ativos por token. Portanto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inferência em precisão total exige hardware de servidor e múltiplas GPUs.&lt;/li&gt;
&lt;li&gt;A maioria das equipes provavelmente dependerá de variantes quantizadas da comunidade.&lt;/li&gt;
&lt;li&gt;Vale construir uma linha de base contra a API hospedada antes de testar a implantação local.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para se preparar, veja o guia de &lt;a href="https://apidog.com/pt/blog/self-host-glm-5-3-open-weights?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;auto-hospedagem do GLM-5.3&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como o GLM-5.3 se encaixa no cenário de modelos abertos
&lt;/h2&gt;

&lt;p&gt;A comparação mais direta é com DeepSeek. Os dois laboratórios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;São chineses;&lt;/li&gt;
&lt;li&gt;Publicam pesos abertos;&lt;/li&gt;
&lt;li&gt;Oferecem APIs com preços competitivos;&lt;/li&gt;
&lt;li&gt;Tiveram lançamentos separados por aproximadamente 24 horas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A diferença está no foco. A linha V4 Pro da DeepSeek é apresentada como generalista, enquanto o GLM-5.3 é uma aposta especializada em agentes de codificação.&lt;/p&gt;

&lt;p&gt;Se seu tráfego envolve principalmente desenvolvimento agêntico, comece a avaliação pelo GLM-5.3. Se você precisa de um modelo generalista, compare os dois com prompts e métricas representativos da sua aplicação.&lt;/p&gt;

&lt;p&gt;A economia também importa. O aumento de preço da DeepSeek, discutido no &lt;a href="https://apidog.com/pt/blog/deepseek-api-price-increase-cost-optimization?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de otimização de custos da API DeepSeek&lt;/a&gt;, mostra que preços de APIs podem mudar rapidamente. Pesos abertos oferecem uma alternativa de auto-hospedagem para equipes que precisam reduzir dependência de provedores.&lt;/p&gt;

&lt;p&gt;No lançamento, a Zhipu não havia publicado preço específico para o GLM-5.3. Como referência, a &lt;a href="https://docs.z.ai/guides/overview/pricing" rel="noopener noreferrer"&gt;página oficial de preços&lt;/a&gt; listava o GLM-5.2 a US$ 1,4 por 1M de tokens de entrada e US$ 4,4 por 1M de tokens de saída.&lt;/p&gt;

&lt;p&gt;Quando variantes quantizadas estiverem disponíveis, o GLM-5.3 poderá entrar no conjunto de modelos executáveis sem dependência de API. Veja também a lista dos &lt;a href="https://apidog.com/pt/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;melhores LLMs locais em 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cotas do Plano de Codificação GLM foram redefinidas
&lt;/h2&gt;

&lt;p&gt;Em 14 de agosto, a Zhipu redefiniu as cotas do Plano de Codificação GLM para todos os usuários. Se você assina o plano pelo &lt;a href="https://z.ai/" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt;, seu limite foi renovado no dia do lançamento.&lt;/p&gt;

&lt;p&gt;O Plano de Codificação é diferente do acesso à API por token:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O plano é uma oferta de tarifa fixa para ferramentas de codificação;&lt;/li&gt;
&lt;li&gt;A redefinição se aplica ao plano, não à cobrança da API;&lt;/li&gt;
&lt;li&gt;Usuários da China Continental acessam o ecossistema pelo &lt;a href="https://open.bigmodel.cn/" rel="noopener noreferrer"&gt;open.bigmodel.cn&lt;/a&gt;, com planos e faturamento próprios.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Experimente a API em cinco minutos
&lt;/h2&gt;

&lt;p&gt;A API do &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt; é compatível com OpenAI. Se você já usa uma API de LLM, o formato será familiar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Endpoint internacional:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.z.ai/api/paas/v4/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Endpoint para China Continental:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://open.bigmodel.cn/api/paas/v4/chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A autenticação usa Bearer Token. No lançamento, a documentação ainda listava &lt;code&gt;glm-5&lt;/code&gt; como ID documentado. O exemplo abaixo usa &lt;code&gt;glm-5.3&lt;/code&gt; seguindo a convenção da família, mas confirme o ID na &lt;a href="https://docs.z.ai/guides/llm/glm-5" rel="noopener noreferrer"&gt;documentação do modelo&lt;/a&gt; antes de implantar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GLM_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-key-from-z.ai"&lt;/span&gt;

curl https://api.z.ai/api/paas/v4/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$GLM_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "glm-5.3",
    "messages": [
      {
        "role": "user",
        "content": "Escreva um script bash que encontre os cinco maiores arquivos em um repositório git, excluindo o diretório .git."
      }
    ],
    "temperature": 0.6,
    "max_tokens": 1024
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A resposta segue o esquema da OpenAI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;choices&lt;/code&gt;: array com a resposta do modelo;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;choices[0].message.content&lt;/code&gt;: conteúdo gerado;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;usage&lt;/code&gt;: contagem de tokens de entrada e saída.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Organize testes no Apidog
&lt;/h3&gt;

&lt;p&gt;Em vez de editar comandos cURL manualmente, importe a requisição para o &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; e configure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Uma variável de ambiente chamada &lt;code&gt;GLM_API_KEY&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Um ambiente para &lt;code&gt;api.z.ai&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Um ambiente para &lt;code&gt;open.bigmodel.cn&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Variáveis para IDs de modelo;&lt;/li&gt;
&lt;li&gt;Respostas salvas como linha de base para testes de regressão.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Assim, você pode trocar região, endpoint ou modelo por um menu, sem alterar a requisição manualmente.&lt;/p&gt;

&lt;p&gt;Para exemplos em Python e Node.js, streaming e tratamento de erros, consulte o &lt;a href="https://apidog.com/pt/blog/how-to-use-glm-5-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de início rápido completo da API GLM-5.3&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O GLM-5.3 é de código aberto?
&lt;/h3&gt;

&lt;p&gt;Ainda não, mas terá pesos abertos. A Zhipu planeja liberar os pesos no Hugging Face por volta de 28 de agosto de 2026, após uma revisão de risco que a empresa descreve como a mais extensa até o momento. Até lá, o acesso é feito pela API hospedada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como o GLM-5.3 é diferente do GLM-5.2?
&lt;/h3&gt;

&lt;p&gt;O modelo base é o mesmo. As melhorias vêm do pós-treinamento escalonado. A Zhipu relata:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;+50% em capacidade de codificação em avaliações internas;&lt;/li&gt;
&lt;li&gt;Terminal-Bench 3.0 de 4,6 para 28,3;&lt;/li&gt;
&lt;li&gt;Aproximadamente o dobro da pontuação no SWE-Marathon.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Arquitetura, janela de contexto e contagem de parâmetros permanecem inalteradas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual é o custo do GLM-5.3?
&lt;/h3&gt;

&lt;p&gt;A Zhipu não publicou um preço específico para a versão 5.3 no lançamento. A melhor referência disponível era o GLM-5.2, listado a US$ 1,4 por 1M de tokens de entrada e US$ 4,4 por 1M de tokens de saída.&lt;/p&gt;

&lt;p&gt;Antes de definir orçamento, confira a página de preços atualizada. Para reduzir custo por token, veja o guia de &lt;a href="https://apidog.com/pt/blog/deepseek-api-price-increase-cost-optimization?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;otimização de custos após o aumento de preço da API DeepSeek&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Posso executar o GLM-5.3 no meu próprio hardware?
&lt;/h3&gt;

&lt;p&gt;Depois da liberação dos pesos, sim, com ressalvas. A família GLM-5 usa 744B de parâmetros totais e cerca de 40B ativos por passagem. A execução em precisão total exige hardware de servidor multi-GPU.&lt;/p&gt;

&lt;p&gt;Variantes quantizadas da comunidade devem reduzir os requisitos. Veja o &lt;a href="https://apidog.com/pt/blog/self-host-glm-5-3-open-weights?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de preparação para auto-hospedagem&lt;/a&gt; para dimensionamento mais realista.&lt;/p&gt;

&lt;h3&gt;
  
  
  O GLM-5.3 é melhor que Claude ou GPT para codificação?
&lt;/h3&gt;

&lt;p&gt;Nos benchmarks de agentes e terminal relatados, ele é competitivo. Ficou em primeiro entre modelos abertos no Terminal-Bench 3.0 e superou Claude Mythos 5 e GPT-5.6 Sol no CyberGym.&lt;/p&gt;

&lt;p&gt;No ExploitBench, porém, marcou 54,4% e ficou atrás dos modelos de ponta. A decisão depende da sua carga de trabalho. Execute uma suíte própria antes de mover tráfego de produção, como faria ao &lt;a href="https://apidog.com/pt/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;testar qualquer API antes da adoção&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde o GLM-5.3 se encaixa na sua pilha
&lt;/h2&gt;

&lt;p&gt;GLM-5.3 é um lançamento especializado para agentes de codificação: desempenho forte em tarefas de terminal, pesos abertos previstos em duas semanas e uma API compatível com OpenAI que você pode testar imediatamente.&lt;/p&gt;

&lt;p&gt;A leitura prática é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use a API para criar uma linha de base hoje;&lt;/li&gt;
&lt;li&gt;Monte uma pequena suíte de prompts baseada nas suas tarefas reais;&lt;/li&gt;
&lt;li&gt;Compare resultados com seus modelos atuais;&lt;/li&gt;
&lt;li&gt;Reavalie quando os pesos abertos e variantes quantizadas estiverem disponíveis;&lt;/li&gt;
&lt;li&gt;Só então considere mover tráfego de produção.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Comece enviando a requisição cURL deste artigo e salve o resultado. Você pode &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;baixar o Apidog&lt;/a&gt; para organizar a suíte, manter os endpoints do &lt;a href="http://Z.ai" rel="noopener noreferrer"&gt;Z.ai&lt;/a&gt; e do &lt;a href="http://bigmodel.cn" rel="noopener noreferrer"&gt;bigmodel.cn&lt;/a&gt; em ambientes alternáveis e transformar testes exploratórios em uma base de regressão para comparar a API hospedada com sua futura implantação local.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gemini 3.7 Flash: Preços Explicados – Garanta Suas Taxas Antes Que Dobrem</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Fri, 14 Aug 2026 07:59:26 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/gemini-37-flash-precos-explicados-garanta-suas-taxas-antes-que-dobrem-33pk</link>
      <guid>https://dev.to/lucas_ferreira/gemini-37-flash-precos-explicados-garanta-suas-taxas-antes-que-dobrem-33pk</guid>
      <description>&lt;p&gt;O Google lançou o Gemini 3.7 Flash em 13 de agosto de 2026, três semanas após o 3.6 Flash, e o descreve como &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-3-7-flash/" rel="noopener noreferrer"&gt;“nosso modelo mais inteligente para tarefas pesadas”&lt;/a&gt;. Para planejar custos de API, o dado decisivo não está nos benchmarks: a taxa introdutória de &lt;strong&gt;US$ 0,75 por 1 milhão de tokens de entrada&lt;/strong&gt; e &lt;strong&gt;US$ 3,75 por 1 milhão de tokens de saída&lt;/strong&gt; expira em 31 de dezembro de 2026. Em 1º de janeiro de 2027, ambas dobram.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Isso cria um aumento programado de 2x para qualquer carga de trabalho construída com o modelo. Um chatbot que custa US$ 790 por mês agora passa a custar aproximadamente US$ 1.575 por mês em janeiro, sem mudanças no código, tráfego ou prompts.&lt;/p&gt;

&lt;p&gt;Este guia mostra como calcular os dois níveis de custo, estimar três cargas reais e reduzir gastos antes do reajuste. Se você ainda não fez a primeira chamada, consulte o &lt;a href="https://apidog.com/pt/blog/how-to-use-gemini-3-7-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de início rápido da API Gemini 3.7 Flash&lt;/a&gt;. Depois de começar a enviar requisições, o &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; permite inspecionar os contadores de &lt;code&gt;usageMetadata&lt;/code&gt; retornados pela API para validar estimativas com tráfego real.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Até 31 de dezembro de 2026:&lt;/strong&gt; US$ 0,75 por 1M de tokens de entrada e US$ 3,75 por 1M de tokens de saída.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A partir de 1º de janeiro de 2027:&lt;/strong&gt; US$ 1,50 para entrada e US$ 7,50 para saída — exatamente 2x.&lt;/li&gt;
&lt;li&gt;O preço introdutório é metade do custo de lançamento do Gemini 3.6 Flash.&lt;/li&gt;
&lt;li&gt;O modelo aceita texto, imagem, vídeo, áudio e PDF, com janela de contexto de 1 milhão de tokens e saída máxima de 64 mil tokens.&lt;/li&gt;
&lt;li&gt;Um chatbot com 10.000 requisições diárias custa cerca de US$ 26,25/dia agora e US$ 52,50/dia após o reajuste.&lt;/li&gt;
&lt;li&gt;As principais alavancas de economia são: limitar saída, usar cache de contexto, processar jobs em lote e rotear tarefas simples para modelos menores.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Os dois níveis de preço
&lt;/h2&gt;

&lt;p&gt;O Gemini 3.7 Flash foi lançado com desconto temporário, não com preço permanente.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nível&lt;/th&gt;
&lt;th&gt;Período&lt;/th&gt;
&lt;th&gt;Entrada por 1M de tokens&lt;/th&gt;
&lt;th&gt;Saída por 1M de tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Introdutório&lt;/td&gt;
&lt;td&gt;13 de agosto de 2026 a 31 de dezembro de 2026&lt;/td&gt;
&lt;td&gt;US$ 0,75&lt;/td&gt;
&lt;td&gt;US$ 3,75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Padrão&lt;/td&gt;
&lt;td&gt;A partir de 1º de janeiro de 2027&lt;/td&gt;
&lt;td&gt;US$ 1,50&lt;/td&gt;
&lt;td&gt;US$ 7,50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Duas observações importam para implementação:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;O custo dobra em janeiro.&lt;/strong&gt; Projete orçamento e alertas usando os dois valores, não apenas a taxa atual.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tokens de saída custam 5x mais que tokens de entrada.&lt;/strong&gt; Limitar respostas longas geralmente economiza mais do que reduzir pequenos trechos do prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As taxas acima se aplicam à API Gemini faturada com chave do AI Studio. O Vertex AI usa faturamento do Google Cloud, SKUs próprios e itens separados para recursos como cache de contexto e processamento em lote. Antes de fechar um orçamento, confirme os valores na &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;página oficial de preços&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como calcular o custo por endpoint
&lt;/h2&gt;

&lt;p&gt;Use esta fórmula para estimar o custo de uma requisição:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;custo =
  (tokens_entrada / 1_000_000 × preco_entrada) +
  (tokens_saida / 1_000_000 × preco_saida)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para estimar o custo diário:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;custo_diario = custo_por_requisicao × requisicoes_por_dia
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E para projetar o mês:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;custo_mensal = custo_diario × 30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Calcule sempre com a taxa introdutória e com a taxa padrão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Carga de trabalho 1: chatbot de suporte
&lt;/h2&gt;

&lt;p&gt;Considere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10.000 solicitações por dia&lt;/li&gt;
&lt;li&gt;2.000 tokens de entrada por solicitação&lt;/li&gt;
&lt;li&gt;300 tokens de saída por solicitação&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Tokens diários&lt;/th&gt;
&lt;th&gt;Custo introdutório/dia&lt;/th&gt;
&lt;th&gt;Custo padrão/dia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Entrada&lt;/td&gt;
&lt;td&gt;20M&lt;/td&gt;
&lt;td&gt;US$ 15,00&lt;/td&gt;
&lt;td&gt;US$ 30,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saída&lt;/td&gt;
&lt;td&gt;3M&lt;/td&gt;
&lt;td&gt;US$ 11,25&lt;/td&gt;
&lt;td&gt;US$ 22,50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;23M&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 26,25&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 52,50&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Em 30 dias:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taxa introdutória:&lt;/strong&gt; aproximadamente US$ 788/mês&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxa padrão:&lt;/strong&gt; aproximadamente US$ 1.575/mês&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ação recomendada
&lt;/h3&gt;

&lt;p&gt;Defina um teto de saída específico para respostas de suporte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"generationConfig"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maxOutputTokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uma resposta de atendimento raramente precisa de milhares de tokens. Como a saída é 5x mais cara, esse limite reduz o risco de uma geração longa aumentar a conta.&lt;/p&gt;

&lt;h2&gt;
  
  
  Carga de trabalho 2: pipeline de documentos PDF
&lt;/h2&gt;

&lt;p&gt;O Gemini 3.7 Flash lê PDFs nativamente. O benchmark GDP.pdf passou de 22,0% no 3.6 Flash para 34,0% no 3.7 Flash, tornando extração e sumarização de documentos uma carga de trabalho relevante.&lt;/p&gt;

&lt;p&gt;Considere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;500 documentos por dia&lt;/li&gt;
&lt;li&gt;40.000 tokens de entrada por documento&lt;/li&gt;
&lt;li&gt;1.000 tokens de saída por resumo estruturado&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Tokens diários&lt;/th&gt;
&lt;th&gt;Custo introdutório/dia&lt;/th&gt;
&lt;th&gt;Custo padrão/dia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Entrada&lt;/td&gt;
&lt;td&gt;20M&lt;/td&gt;
&lt;td&gt;US$ 15,00&lt;/td&gt;
&lt;td&gt;US$ 30,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saída&lt;/td&gt;
&lt;td&gt;0,5M&lt;/td&gt;
&lt;td&gt;US$ 1,88&lt;/td&gt;
&lt;td&gt;US$ 3,75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20,5M&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 16,88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 33,75&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Em 30 dias:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taxa introdutória:&lt;/strong&gt; cerca de US$ 506/mês&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxa padrão:&lt;/strong&gt; cerca de US$ 1.013/mês&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nesse perfil, a entrada domina o custo porque os documentos são longos e os resumos são curtos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ação recomendada
&lt;/h3&gt;

&lt;p&gt;Para processamento que não exige resposta imediata:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agrupe documentos em jobs;&lt;/li&gt;
&lt;li&gt;execute lotes em horários de menor demanda;&lt;/li&gt;
&lt;li&gt;avalie processamento em lote;&lt;/li&gt;
&lt;li&gt;use cache de contexto quando houver instruções ou documentos estáticos repetidos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Carga de trabalho 3: loop de agente
&lt;/h2&gt;

&lt;p&gt;Agentes multiplicam chamadas e acumulam contexto. Considere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;200 tarefas por dia;&lt;/li&gt;
&lt;li&gt;12 chamadas de modelo por tarefa;&lt;/li&gt;
&lt;li&gt;8.000 tokens de entrada por chamada;&lt;/li&gt;
&lt;li&gt;400 tokens de saída por chamada.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Tokens diários&lt;/th&gt;
&lt;th&gt;Custo introdutório/dia&lt;/th&gt;
&lt;th&gt;Custo padrão/dia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Entrada&lt;/td&gt;
&lt;td&gt;19,2M&lt;/td&gt;
&lt;td&gt;US$ 14,40&lt;/td&gt;
&lt;td&gt;US$ 28,80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saída&lt;/td&gt;
&lt;td&gt;0,96M&lt;/td&gt;
&lt;td&gt;US$ 3,60&lt;/td&gt;
&lt;td&gt;US$ 7,20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20,16M&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 18,00&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;US$ 36,00&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Em 30 dias:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Taxa introdutória:&lt;/strong&gt; US$ 540/mês&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxa padrão:&lt;/strong&gt; US$ 1.080/mês&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O risco aqui é o crescimento do contexto. Se uma tarefa passa de 12 para 20 chamadas, o custo aumenta 67%, mesmo que o preço por token não mude.&lt;/p&gt;

&lt;p&gt;O limite máximo de saída de 64 mil tokens define um teto teórico por chamada de aproximadamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;US$ 0,24&lt;/strong&gt; na taxa introdutória;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US$ 0,48&lt;/strong&gt; na taxa padrão.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse teto evita custo ilimitado por requisição, mas loops de repetição com saídas máximas ainda ficam caros rapidamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como o Gemini 3.7 Flash se compara
&lt;/h2&gt;

&lt;p&gt;Comparações diretas de preço entre provedores envelhecem rapidamente. Use o posicionamento como referência, não como tabela permanente.&lt;/p&gt;

&lt;p&gt;O Gemini 3.7 Flash se posiciona como modelo para tarefas pesadas com custo menor que modelos de ponta, incluindo a linha Gemini Pro, modelos maiores da Claude e o nível principal da OpenAI. Ao mesmo tempo, apresenta benchmarks como 65,3% no DeepSWE v1.1 e Elo de 1588 no WebDev Arena.&lt;/p&gt;

&lt;p&gt;Para migrar do 3.6 Flash, use o &lt;a href="https://apidog.com/pt/blog/gemini-3-6-to-3-7-flash-migration-guide?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de migração do Gemini 3.6 para o 3.7 Flash&lt;/a&gt;. O desconto introdutório, por si só, pode justificar o teste de regressão.&lt;/p&gt;

&lt;p&gt;Mudanças de preço não são exclusivas do Gemini. A DeepSeek também reajustou sua API, levando equipes a rever seus orçamentos de tokens. Veja o &lt;a href="https://apidog.com/pt/blog/deepseek-api-price-increase-cost-optimization?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de aumento de preços e otimização de custos da DeepSeek&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A implicação prática é simples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;um protótipo de US$ 3 vira US$ 6;&lt;/li&gt;
&lt;li&gt;um pipeline de US$ 10.000/mês vira US$ 20.000/mês.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meça antes de o reajuste entrar em vigor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cinco formas de reduzir gastos com tokens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Limite tokens de saída por endpoint
&lt;/h3&gt;

&lt;p&gt;Defina &lt;code&gt;maxOutputTokens&lt;/code&gt; de acordo com o objetivo da rota:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"generationConfig"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maxOutputTokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplos de limites práticos:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Limite inicial sugerido&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classificação&lt;/td&gt;
&lt;td&gt;50–100 tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resposta de suporte&lt;/td&gt;
&lt;td&gt;Até 500 tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resumo estruturado&lt;/td&gt;
&lt;td&gt;500–1.500 tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Planejamento de agente&lt;/td&gt;
&lt;td&gt;Conforme a complexidade da tarefa&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ajuste com base em respostas reais. O objetivo não é truncar conteúdo útil, mas impedir saídas descontroladas.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Armazene contexto estático em cache
&lt;/h3&gt;

&lt;p&gt;Se cada requisição envia o mesmo prompt de sistema de 3.000 tokens, políticas e instruções, você paga repetidamente por conteúdo idêntico.&lt;/p&gt;

&lt;p&gt;Use cache de contexto para conteúdo estático e verifique as regras e taxas atuais na &lt;a href="https://ai.google.dev/gemini-api/docs" rel="noopener noreferrer"&gt;documentação da API Gemini&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para o chatbot do exemplo, armazenar em cache um prefixo estático de 1.500 tokens pode reduzir mais da metade do custo de entrada desse trecho repetido.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Use processamento em lote para jobs não interativos
&lt;/h3&gt;

&lt;p&gt;Pipelines de documentos, classificações noturnas e tarefas de enriquecimento geralmente não precisam de resposta imediata.&lt;/p&gt;

&lt;p&gt;A estratégia é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;enfileirar os jobs;&lt;/li&gt;
&lt;li&gt;agrupar payloads;&lt;/li&gt;
&lt;li&gt;executar processamento em lote;&lt;/li&gt;
&lt;li&gt;aceitar maior latência em troca de custo reduzido.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4. Roteie cada tarefa para o modelo adequado
&lt;/h3&gt;

&lt;p&gt;Nem toda requisição precisa do Gemini 3.7 Flash.&lt;/p&gt;

&lt;p&gt;Use modelos menores para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classificação;&lt;/li&gt;
&lt;li&gt;roteamento;&lt;/li&gt;
&lt;li&gt;extração curta;&lt;/li&gt;
&lt;li&gt;normalização;&lt;/li&gt;
&lt;li&gt;validação simples de formatos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reserve o 3.7 Flash para tarefas que usam sua capacidade: planejamento em múltiplas etapas, depuração, fluxos com ferramentas e contexto mais complexo.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Prototipe no nível gratuito
&lt;/h3&gt;

&lt;p&gt;Use a cota gratuita do AI Studio para validar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompts;&lt;/li&gt;
&lt;li&gt;schemas de saída;&lt;/li&gt;
&lt;li&gt;limites de tokens;&lt;/li&gt;
&lt;li&gt;comportamento em payloads representativos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O &lt;a href="https://apidog.com/pt/blog/get-free-unlimited-gemini-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de acesso gratuito à API Gemini&lt;/a&gt; explica até onde vai o caminho gratuito e onde estão seus limites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rastreie custo por endpoint com o Apidog
&lt;/h2&gt;

&lt;p&gt;Estimativas definem o orçamento; medições por requisição evitam surpresas. As respostas do Gemini incluem &lt;code&gt;usageMetadata&lt;/code&gt;, com contagens de tokens de entrada e saída.&lt;/p&gt;

&lt;p&gt;Um exemplo de resposta pode conter campos como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"usageMetadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"promptTokenCount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"candidatesTokenCount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, configure esse fluxo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Salve uma requisição para cada endpoint de produção, como chat, resumo de documento e etapa de agente.&lt;/li&gt;
&lt;li&gt;Armazene a chave em uma variável de ambiente:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   GEMINI_API_KEY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Execute cenários com payloads realistas.&lt;/li&gt;
&lt;li&gt;Extraia:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;usageMetadata.promptTokenCount&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;usageMetadata.candidatesTokenCount&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Adicione asserções para impedir regressões de token.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Por exemplo, se seu endpoint de chat não deveria ultrapassar 2.500 tokens de entrada, trate isso como uma regra de teste. Uma mudança no prompt que ultrapasse o limite deve falhar antes do deploy.&lt;/p&gt;

&lt;p&gt;O princípio é o mesmo de monitorar latência: tokens também sofrem regressão, mas a consequência aparece na fatura.&lt;/p&gt;

&lt;p&gt;Multiplique as contagens medidas pelos dois níveis de preço deste artigo para obter custo por endpoint baseado em respostas reais. Para estruturar cenários de teste, consulte o &lt;a href="https://apidog.com/pt/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de teste de API para engenheiros de QA&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quando o preço do Gemini 3.7 Flash dobra?
&lt;/h3&gt;

&lt;p&gt;Em 1º de janeiro de 2027. A taxa introdutória de US$ 0,75 por 1 milhão de tokens de entrada e US$ 3,75 por 1 milhão de tokens de saída vale até 31 de dezembro de 2026. Depois, passa para US$ 1,50 e US$ 7,50.&lt;/p&gt;

&lt;h3&gt;
  
  
  O Gemini 3.7 Flash é mais barato que o Gemini 3.6 Flash?
&lt;/h3&gt;

&lt;p&gt;No lançamento, sim. O preço introdutório do 3.7 Flash é metade do preço de lançamento do 3.6 Flash, enquanto o DeepSWE v1.1 passou de 49,0% para 65,3%. Para detalhes, consulte o &lt;a href="https://apidog.com/pt/blog/gemini-3-7-flash-specs-pricing-reference?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de referência rápida do Gemini 3.7 Flash&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  O preço introdutório se aplica ao Vertex AI?
&lt;/h3&gt;

&lt;p&gt;As taxas deste artigo são da API Gemini faturada por chave do AI Studio. O Vertex AI usa faturamento do Google Cloud, SKUs próprios e termos empresariais. Confirme os valores no console de faturamento do GCP e na página oficial de preços.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que conta como token de entrada?
&lt;/h3&gt;

&lt;p&gt;Tudo o que você envia: texto, imagens, vídeo, áudio e páginas de PDF convertidos em tokens. Documentos longos e requisições com mídia são fontes comuns de surpresa no custo de entrada.&lt;/p&gt;

&lt;p&gt;Após cada chamada, consulte &lt;code&gt;usageMetadata&lt;/code&gt; para obter a contagem real.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como estimar tokens antes de enviar a requisição?
&lt;/h3&gt;

&lt;p&gt;Use o endpoint &lt;code&gt;countTokens&lt;/code&gt; para medir o payload sem gerar uma resposta. Como alternativa, envie amostras representativas e leia &lt;code&gt;usageMetadata&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Evite estimar apenas por intuição: tokenizadores variam entre famílias de modelos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde o 3.7 Flash se encaixa na sua pilha
&lt;/h2&gt;

&lt;p&gt;O Gemini 3.7 Flash combina capacidade de modelo para tarefas pesadas com uma janela de desconto cujo fim já está definido. A abordagem prática é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;mover para o 3.7 Flash as cargas que realmente precisam dessa capacidade;&lt;/li&gt;
&lt;li&gt;medir tokens por endpoint durante o período introdutório;&lt;/li&gt;
&lt;li&gt;projetar o custo com a taxa padrão;&lt;/li&gt;
&lt;li&gt;limitar saída e contexto;&lt;/li&gt;
&lt;li&gt;migrar rotas simples para modelos menores;&lt;/li&gt;
&lt;li&gt;usar os dados coletados para planejar janeiro antes de a fatura chegar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Baixe o Apidog&lt;/a&gt; para manter requisições Gemini, ambientes, asserções de token e verificações de custo no mesmo espaço de trabalho.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Novidades do Gemini 3.7 Flash: Recursos, Benchmarks e Acesso à API</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Fri, 14 Aug 2026 07:58:07 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/novidades-do-gemini-37-flash-recursos-benchmarks-e-acesso-a-api-19ie</link>
      <guid>https://dev.to/lucas_ferreira/novidades-do-gemini-37-flash-recursos-benchmarks-e-acesso-a-api-19ie</guid>
      <description>&lt;p&gt;Gemini 3.7 Flash é o mais novo modelo de IA robusto do Google, lançado em 13 de agosto de 2026, três semanas após o Gemini 3.6 Flash. Ele mantém a janela de contexto de 1M de tokens e a entrada multimodal do predecessor, mas traz ganhos relevantes em benchmarks de codificação e agentes, com preço introdutório de API de US$ 0,75 por 1M de tokens de entrada. O Google o descreve como seu modelo de IA robusto mais inteligente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A cadência de lançamento é o ponto mais relevante: o Google entregou o 3.7 Flash apenas três semanas depois do 3.6 Flash, enquanto o &lt;a href="https://www.axios.com/2026/08/13/google-gemini-37-flash" rel="noopener noreferrer"&gt;Gemini 3.5 Pro permanece atrasado&lt;/a&gt;. Na prática, isso coloca as novidades de engenharia primeiro no modelo intermediário. Os benchmarks publicados indicam esse avanço: DeepSWE sobe 16 pontos, AutomationBench quase dobra e o preço introdutório é metade da taxa de lançamento do 3.6 Flash.&lt;/p&gt;

&lt;p&gt;Este guia reúne as mudanças, benchmarks, períodos de preço, opções de acesso e uma chamada cURL para testar o modelo. Para aprofundar a implementação, consulte o &lt;a href="https://apidog.com/pt/blog/how-to-use-gemini-3-7-flash-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia rápido da API Gemini 3.7 Flash&lt;/a&gt;. Você também pode usar o &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para executar seus prompts atuais contra os dois modelos antes de migrar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resumo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Lançado em 13 de agosto de 2026, três semanas após o 3.6 Flash.&lt;/li&gt;
&lt;li&gt;ID do modelo: &lt;code&gt;gemini-3.7-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Benchmarks de código e agentes melhoraram:

&lt;ul&gt;
&lt;li&gt;DeepSWE v1.1: de 49,0% para 65,3%.&lt;/li&gt;
&lt;li&gt;AutomationBench: de 17,0% para 30,4%.&lt;/li&gt;
&lt;li&gt;WebDev Arena: de 1538 para 1588 Elo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Preço introdutório: US$ 0,75 por 1M de tokens de entrada e US$ 3,75 por 1M de tokens de saída.&lt;/li&gt;
&lt;li&gt;Preço padrão a partir de 1º de janeiro de 2027: US$ 1,50 de entrada e US$ 7,50 de saída por 1M de tokens.&lt;/li&gt;
&lt;li&gt;Contexto de entrada de 1M de tokens, saída de até 64k tokens e entrada multimodal.&lt;/li&gt;
&lt;li&gt;Disponível na API Gemini, AI Studio, aplicativo Gemini, Gemini Spark, Google Antigravity, Android Studio e Gemini Enterprise, em mais de 160 países.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O que é o Gemini 3.7 Flash
&lt;/h2&gt;

&lt;p&gt;Flash é o nível intermediário da linha Gemini: mais barato e rápido que o Pro, mais capaz que o Flash-Lite e voltado a cargas de trabalho de alto volume em produção. O Gemini 3.7 Flash é o terceiro lançamento Flash da linha 3.x.&lt;/p&gt;

&lt;p&gt;O &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-3-7-flash/" rel="noopener noreferrer"&gt;anúncio oficial do Google&lt;/a&gt; posiciona o modelo principalmente para codificação e fluxos agênticos, não apenas para chat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyz5bxakqovt9d06iter4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyz5bxakqovt9d06iter4.png" alt="Gemini 3.7 Flash" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As especificações permanecem iguais às do 3.6 Flash:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contexto:&lt;/strong&gt; 1M de tokens de entrada e até 64k tokens de saída.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entrada multimodal:&lt;/strong&gt; texto, imagem, vídeo, áudio e PDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saída:&lt;/strong&gt; texto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; chamada de função, pesquisa como ferramenta e uso de computador.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Segurança:&lt;/strong&gt; salvaguardas CBRN e cibernéticas atualizadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A mudança principal está no comportamento. O Google afirma que o 3.7 Flash depura melhor, gera código implementável com mais frequência, lida melhor com obstáculos, pede esclarecimentos em solicitações ambíguas e segue instruções com maior fidelidade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Melhorias nos benchmarks: 3.6 vs. 3.7
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Gemini 3.6 Flash&lt;/th&gt;
&lt;th&gt;Gemini 3.7 Flash&lt;/th&gt;
&lt;th&gt;Mudança&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE v1.1 (codificação agêntica)&lt;/td&gt;
&lt;td&gt;49,0%&lt;/td&gt;
&lt;td&gt;65,3%&lt;/td&gt;
&lt;td&gt;+16,3 pts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FrontierCode 1.1 Main&lt;/td&gt;
&lt;td&gt;34,4%&lt;/td&gt;
&lt;td&gt;43,6%&lt;/td&gt;
&lt;td&gt;+9,2 pts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebDev Arena (Elo)&lt;/td&gt;
&lt;td&gt;1538&lt;/td&gt;
&lt;td&gt;1588&lt;/td&gt;
&lt;td&gt;+50 Elo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GDP.pdf (raciocínio de documentos)&lt;/td&gt;
&lt;td&gt;22,0%&lt;/td&gt;
&lt;td&gt;34,0%&lt;/td&gt;
&lt;td&gt;+12,0 pts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutomationBench (tarefas de agente)&lt;/td&gt;
&lt;td&gt;17,0%&lt;/td&gt;
&lt;td&gt;30,4%&lt;/td&gt;
&lt;td&gt;+13,4 pts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Outras métricas divulgadas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;90,7%&lt;/strong&gt; no Harvey LAB-AA, benchmark de raciocínio jurídico.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;97,0%&lt;/strong&gt; na recuperação de contexto longo com 128k agulhas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Os maiores ganhos aparecem em tarefas de várias etapas. Para workloads com ferramentas, repositórios, documentos extensos ou fluxos que exigem planejamento, o salto no AutomationBench e no DeepSWE é mais relevante do que uma melhoria isolada em respostas de chat.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://9to5google.com/2026/08/13/gemini-3-7-flash-launch/" rel="noopener noreferrer"&gt;cobertura do lançamento&lt;/a&gt; destacou o resultado do DeepSWE. Para comparar como diferenças de benchmark afetam tarefas reais entre modelos concorrentes, consulte a &lt;a href="https://apidog.com/pt/blog/grok-4-6-vs-gpt-5-6-vs-claude-fable-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comparação entre Grok 4.6, GPT 5.6 e Claude&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que testar em codificação e agentes
&lt;/h2&gt;

&lt;p&gt;Em vez de migrar diretamente, valide os pontos que o Google destaca com um conjunto de regressão próprio.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Depuração em múltiplos arquivos
&lt;/h3&gt;

&lt;p&gt;Use bugs reais ou reproduções mínimas do seu repositório. Avalie se o modelo encontra a causa raiz, não apenas um workaround.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Você está analisando um bug em um serviço Python.

Arquivos relevantes:
- api/routes/users.py
- services/user_service.py
- repositories/user_repository.py

Sintoma:
POST /users retorna 500 apenas quando o e-mail já existe.

Identifique a causa raiz, indique o arquivo e a linha provável,
e proponha um patch mínimo com testes.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O ganho no DeepSWE é a métrica mais próxima para esse tipo de tarefa.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Código executável na primeira resposta
&lt;/h3&gt;

&lt;p&gt;Peça uma implementação com contrato explícito: linguagem, dependências permitidas, formato de saída e testes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Implemente uma função TypeScript `groupByStatus`.

Restrições:
- Não usar bibliotecas externas.
- Não mutar o array de entrada.
- Retornar Record&amp;lt;string, Item[]&amp;gt;.
- Inclua testes com Vitest.
- Responda somente com dois blocos de código:
  1. implementação
  2. testes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois, execute o resultado automaticamente no CI ou em um sandbox. O objetivo é medir quantas respostas passam sem edição manual.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Recuperação após falhas de ferramenta
&lt;/h3&gt;

&lt;p&gt;Em fluxos com function calling, simule falhas de API, arquivos ausentes e respostas incompletas. Verifique se o agente adapta o plano ou repete a mesma chamada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A ferramenta `get_customer` retornou 404 para o ID informado.
Não tente novamente com o mesmo ID.
Explique a próxima ação necessária e peça apenas o dado que falta.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O AutomationBench é especialmente relevante para esse comportamento.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Solicitações ambíguas
&lt;/h3&gt;

&lt;p&gt;Teste se o modelo pergunta antes de assumir requisitos críticos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Crie uma API de pagamentos para meu aplicativo.

Antes de propor a implementação, faça perguntas sobre:
- provedor de pagamento;
- moeda;
- recorrência;
- requisitos de conformidade;
- ambiente de deploy.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Fidelidade de formato
&lt;/h3&gt;

&lt;p&gt;Inclua restrições estruturais em prompts longos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Responda em JSON válido com este formato:

{
  "risks": [{"severity": "low|medium|high", "description": "string"}],
  "recommendation": "string"
}

Não inclua Markdown, comentários, campos extras ou texto fora do JSON.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Preços: metade do preço até 31 de dezembro de 2026
&lt;/h2&gt;

&lt;p&gt;A API Gemini possui duas faixas de preço para o Gemini 3.7 Flash:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Período&lt;/th&gt;
&lt;th&gt;Entrada por 1M de tokens&lt;/th&gt;
&lt;th&gt;Saída por 1M de tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Até 31 de dezembro de 2026&lt;/td&gt;
&lt;td&gt;US$ 0,75&lt;/td&gt;
&lt;td&gt;US$ 3,75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A partir de 1º de janeiro de 2027&lt;/td&gt;
&lt;td&gt;US$ 1,50&lt;/td&gt;
&lt;td&gt;US$ 7,50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A taxa introdutória é metade do custo de lançamento do Gemini 3.6 Flash. Porém, o preço dobra em 1º de janeiro de 2027.&lt;/p&gt;

&lt;p&gt;Para evitar surpresas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confira a &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;página oficial de preços&lt;/a&gt; antes de colocar o modelo em produção.&lt;/li&gt;
&lt;li&gt;Faça seu orçamento de longo prazo com a tarifa padrão de 2027.&lt;/li&gt;
&lt;li&gt;Registre &lt;code&gt;usageMetadata&lt;/code&gt; em todas as chamadas.&lt;/li&gt;
&lt;li&gt;Separe custos de entrada, saída e chamadas de ferramentas no seu dashboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para exemplos de cálculo em chatbots, processamento de documentos e loops de agentes, consulte a &lt;a href="https://apidog.com/pt/blog/gemini-3-7-flash-pricing-explained?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;análise de preços do Gemini 3.7 Flash&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde usar o modelo
&lt;/h2&gt;

&lt;p&gt;O Google disponibilizou o 3.7 Flash em mais de 160 países:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API Gemini:&lt;/strong&gt; acesso direto ao modelo &lt;code&gt;gemini-3.7-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI Studio:&lt;/strong&gt; playground para testar prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aplicativo Gemini:&lt;/strong&gt; interface de chat para consumidores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini Spark:&lt;/strong&gt; para assinantes AI Pro e Ultra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Antigravity:&lt;/strong&gt; ambiente de desenvolvimento agêntico.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Android Studio:&lt;/strong&gt; assistência de código no IDE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini Enterprise:&lt;/strong&gt; oferta gerenciada para organizações.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para workloads corporativos, também existe o caminho via Vertex AI em &lt;code&gt;aiplatform.googleapis.com&lt;/code&gt;, com OAuth, IAM e registro de auditoria.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que o Flash chegou antes do Gemini 3.5 Pro
&lt;/h2&gt;

&lt;p&gt;A ordem é incomum: normalmente o modelo carro-chefe chega antes das variantes intermediárias. Neste caso, o Google lançou o 3.6 Flash no fim de julho, o 3.7 Flash três semanas depois e o Gemini 3.5 Pro continua sem data.&lt;/p&gt;

&lt;p&gt;Segundo a Axios, o Google está lançando atualizações do Flash antes do próximo carro-chefe enquanto o Pro permanece atrasado.&lt;/p&gt;

&lt;p&gt;Para desenvolvedores, o efeito prático é simples: não trate mais o Flash como uma opção secundária. Se sua carga prioriza custo, latência e escala, é provável que o Flash seja o primeiro modelo a receber capacidades novas de agente.&lt;/p&gt;

&lt;p&gt;Se você já usa o 3.6, consulte o &lt;a href="https://apidog.com/pt/blog/gemini-3-6-to-3-7-flash-migration-guide?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de migração do Gemini 3.6 para o 3.7 Flash&lt;/a&gt;. Para muitas bases de código, a alteração começa pela troca do ID do modelo, seguida de uma rodada de regressão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como testar a API em cinco minutos
&lt;/h2&gt;

&lt;p&gt;Primeiro, crie uma chave de API no &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Depois, exporte a chave e faça uma requisição:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"AIza..."&lt;/span&gt;

curl &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-goog-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "contents": [{
      "parts": [{
        "text": "Review this function for bugs: def dedupe(items): return list(set(items))"
      }]
    }],
    "generationConfig": {
      "temperature": 0.4,
      "maxOutputTokens": 1024
    }
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A resposta inclui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;candidates&lt;/code&gt;: respostas geradas pelo modelo.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;content.parts&lt;/code&gt;: texto da resposta.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;usageMetadata&lt;/code&gt;: contagem de tokens de entrada e saída.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitore &lt;code&gt;usageMetadata&lt;/code&gt; desde o primeiro dia. Esse campo é a base para acompanhar custo por requisição, usuário, fluxo ou ambiente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Habilitar streaming
&lt;/h3&gt;

&lt;p&gt;Para receber tokens progressivamente via Server-Sent Events, substitua o endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:generateContent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;por:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:streamGenerateContent?alt=sse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-goog-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "contents": [{
      "parts": [{ "text": "Explique recursão em uma frase." }]
    }]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comparar 3.6 e 3.7 de forma prática
&lt;/h2&gt;

&lt;p&gt;Depois que a primeira chamada funcionar, compare os dois modelos com as mesmas entradas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Salve prompts reais do seu produto.&lt;/li&gt;
&lt;li&gt;Execute cada prompt contra &lt;code&gt;gemini-3.6-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Repita contra &lt;code&gt;gemini-3.7-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Registre resposta, latência, tokens de entrada, tokens de saída e resultado da validação.&lt;/li&gt;
&lt;li&gt;Defina critérios objetivos de aprovação, como testes passando, JSON válido ou nota humana.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, importe a especificação da Generative Language API, associe &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; ao cabeçalho &lt;code&gt;x-goog-api-key&lt;/code&gt; como variável de ambiente e defina o ID do modelo como variável de caminho.&lt;/p&gt;

&lt;p&gt;Assim, você pode alternar entre &lt;code&gt;gemini-3.6-flash&lt;/code&gt; e &lt;code&gt;gemini-3.7-flash&lt;/code&gt; sem duplicar requisições, acompanhar respostas SSE e salvar exemplos para regressões futuras.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perguntas frequentes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O Gemini 3.7 Flash é gratuito?
&lt;/h3&gt;

&lt;p&gt;A API Gemini possui um nível gratuito no AI Studio com cota diária, adequado para prototipagem. O uso pago começa em US$ 0,75 por 1M de tokens de entrada até 31 de dezembro de 2026.&lt;/p&gt;

&lt;p&gt;Para entender os limites, consulte o guia de &lt;a href="https://apidog.com/pt/blog/get-free-unlimited-gemini-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;acesso gratuito à API Gemini&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual é a diferença entre Gemini 3.6 Flash e 3.7 Flash?
&lt;/h3&gt;

&lt;p&gt;As especificações principais permanecem iguais: janela de contexto, limite de saída, modalidades e suporte a ferramentas.&lt;/p&gt;

&lt;p&gt;Os ganhos estão em codificação e agentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSWE: +16,3 pontos.&lt;/li&gt;
&lt;li&gt;AutomationBench: +13,4 pontos.&lt;/li&gt;
&lt;li&gt;WebDev Arena: +50 Elo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O Google também afirma melhorias em depuração, seguimento de instruções e planejamento em várias etapas.&lt;/p&gt;

&lt;h3&gt;
  
  
  O Gemini 3.7 Flash substitui o Gemini 3.5 Pro?
&lt;/h3&gt;

&lt;p&gt;Não. O Pro continua sendo a categoria carro-chefe para tarefas de raciocínio mais difíceis, enquanto o Gemini 3.5 Pro ainda está em desenvolvimento.&lt;/p&gt;

&lt;p&gt;O 3.7 Flash é voltado a cargas de produção de alto volume, em que custo e latência importam junto com qualidade.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que muda no preço em 1º de janeiro de 2027?
&lt;/h3&gt;

&lt;p&gt;A tarifa introdutória termina. O preço passa para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;US$ 1,50 por 1M de tokens de entrada.&lt;/li&gt;
&lt;li&gt;US$ 7,50 por 1M de tokens de saída.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para workloads que continuarão em 2027, projete os custos com a tarifa padrão.&lt;/p&gt;

&lt;h3&gt;
  
  
  O Gemini 3.7 Flash processa imagens e PDFs?
&lt;/h3&gt;

&lt;p&gt;Sim. Ele aceita texto, imagens, vídeos, áudio e PDFs no array &lt;code&gt;contents&lt;/code&gt;. A saída continua sendo somente texto.&lt;/p&gt;

&lt;p&gt;O benchmark GDP.pdf passou de 22,0% para 34,0%, o que indica uma melhoria divulgada pelo Google para compreensão de documentos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde o 3.7 Flash se encaixa na sua pilha
&lt;/h2&gt;

&lt;p&gt;O Gemini 3.7 Flash combina benchmarks melhores para agentes, compatibilidade com as especificações do 3.6 e uma janela de preço introdutório. Isso reduz o custo de testá-lo agora, mas não elimina a necessidade de avaliação com dados reais.&lt;/p&gt;

&lt;p&gt;A sequência recomendada é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reutilize seu conjunto de prompts atual.&lt;/li&gt;
&lt;li&gt;Execute-o contra &lt;code&gt;gemini-3.6-flash&lt;/code&gt; e &lt;code&gt;gemini-3.7-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Compare qualidade, latência e &lt;code&gt;usageMetadata&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Valide resultados com testes automatizados ou revisão humana.&lt;/li&gt;
&lt;li&gt;Faça o orçamento com o preço padrão de 2027.&lt;/li&gt;
&lt;li&gt;Migre apenas os fluxos em que o 3.7 demonstrar ganho mensurável.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Use o &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para centralizar essa comparação: salve respostas do 3.6 como exemplos, reproduza as mesmas requisições no 3.7 e confirme se os ganhos de benchmark aparecem na sua carga de trabalho.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como usar a Gemini 3.7 Flash API?</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Fri, 14 Aug 2026 07:57:13 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/como-usar-a-gemini-37-flash-api-4035</link>
      <guid>https://dev.to/lucas_ferreira/como-usar-a-gemini-37-flash-api-4035</guid>
      <description>&lt;p&gt;O Google lançou o Gemini 3.7 Flash em 13 de agosto de 2026, três semanas após o 3.6 Flash, descrevendo-o como “nosso modelo de trabalho mais inteligente”. Para desenvolvedores, a atualização é direta: os benchmarks de codificação agêntica melhoraram significativamente — DeepSWE v1.1 passou de 49,0% para 65,3% —, o preço de lançamento é metade do valor inicial do 3.6 Flash e a superfície da API não mudou. Se você já usa Gemini, a migração começa trocando o ID do modelo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Este guia mostra como obter uma chave de API, testar uma chamada com cURL, portar a integração para Python e Node.js, usar streaming, ajustar &lt;code&gt;generationConfig&lt;/code&gt; e validar prompts no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;. Segundo o &lt;a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-3-7-flash/" rel="noopener noreferrer"&gt;anúncio oficial&lt;/a&gt;, o modelo oferece contexto de 1M de tokens, saída de até 64k tokens, entrada multimodal, chamada de função, pesquisa como ferramenta e uso de computador.&lt;/p&gt;

&lt;p&gt;Se você já desenvolveu com a geração anterior, o formato da requisição continua igual ao do &lt;a href="https://apidog.com/pt/blog/how-to-use-gemini-3-flash-preview-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia da API Preview do Gemini 3 Flash&lt;/a&gt;. Aqui, o foco é no fluxo de trabalho do 3.7.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modelo:&lt;/strong&gt; &lt;code&gt;gemini-3.7-flash&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint síncrono:&lt;/strong&gt; &lt;code&gt;POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autenticação:&lt;/strong&gt; cabeçalho &lt;code&gt;x-goog-api-key: &amp;lt;KEY&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preço de lançamento:&lt;/strong&gt; US$ 0,75 por 1M de tokens de entrada e US$ 3,75 por 1M de tokens de saída até 31 de dezembro de 2026. A partir de 1º de janeiro de 2027, os valores passam para US$ 1,50 e US$ 7,50.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limites:&lt;/strong&gt; 1M de tokens de contexto e 64k tokens de saída.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entrada:&lt;/strong&gt; texto, imagem, vídeo, áudio e PDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming:&lt;/strong&gt; use &lt;code&gt;:streamGenerateContent?alt=sse&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Migração do 3.6:&lt;/strong&gt; troque o ID do modelo e execute testes de regressão nos prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teste antes de codificar:&lt;/strong&gt; valide o endpoint no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, armazene a chave como variável de ambiente e acompanhe eventos SSE ao vivo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quando usar o Gemini 3.7 Flash
&lt;/h2&gt;

&lt;p&gt;Os modelos Flash priorizam velocidade e custo, mas o 3.7 reduziu bastante a diferença em capacidade. Em comparação com o Gemini 3.6 Flash:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSWE v1.1: &lt;strong&gt;49,0% → 65,3%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;FrontierCode 1.1 Main: &lt;strong&gt;34,4% → 43,6%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;AutomationBench: &lt;strong&gt;17,0% → 30,4%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;WebDev Arena Elo: &lt;strong&gt;1538 → 1588&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frew8dv6kb73tnkos70b1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frew8dv6kb73tnkos70b1.png" alt="Benchmarks do Gemini 3.7 Flash" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use o 3.7 Flash especialmente quando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Você executa loops de agentes:&lt;/strong&gt; o ganho no AutomationBench indica melhor planejamento em múltiplas etapas e chamadas de ferramentas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Você gera ou revisa código:&lt;/strong&gt; os resultados em DeepSWE e FrontierCode favorecem tarefas de depuração, revisão e geração de código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Você processa documentos:&lt;/strong&gt; o GDP.pdf passou de 22,0% para 34,0%, e PDFs são aceitos como entrada de primeira classe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Você precisa de multimodalidade com orçamento controlado:&lt;/strong&gt; texto, imagens, vídeos, áudios e PDFs usam o mesmo array &lt;code&gt;contents&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para mais contexto sobre recursos, benchmark Harvey LAB-AA e salvaguardas atualizadas, consulte &lt;a href="https://apidog.com/pt/blog/whats-new-in-gemini-3-7-flash?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;as novidades do Gemini 3.7 Flash&lt;/a&gt;. A &lt;a href="https://www.axios.com/2026/08/13/google-gemini-37-flash" rel="noopener noreferrer"&gt;Axios relata&lt;/a&gt; que o Google está entregando atualizações Flash antes do próximo modelo principal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Obtenha uma chave de API
&lt;/h2&gt;

&lt;p&gt;Há dois caminhos principais.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Studio: prototipagem rápida
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Abra &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;aistudio.google.com/apikey&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Clique em &lt;strong&gt;Obter chave de API&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Selecione um projeto do Google Cloud.&lt;/li&gt;
&lt;li&gt;Copie a chave gerada.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A chave funciona com &lt;code&gt;generativelanguage.googleapis.com&lt;/code&gt;. O AI Studio oferece um nível gratuito para prototipagem, e o Gemini 3.7 Flash está disponível em mais de 160 países.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vertex AI: uso em produção no GCP
&lt;/h3&gt;

&lt;p&gt;Use Vertex AI se sua infraestrutura já está no Google Cloud. Nesse caso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a autenticação usa OAuth, contas de serviço ou tokens de curta duração;&lt;/li&gt;
&lt;li&gt;as chamadas usam &lt;code&gt;aiplatform.googleapis.com&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;você obtém IAM, logs de auditoria e endpoints regionais.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ID do modelo e o corpo da requisição permanecem iguais; mudam a URL e a autenticação.&lt;/p&gt;

&lt;p&gt;Exporte a chave localmente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"AIza..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nunca inclua a chave diretamente no código ou como &lt;code&gt;?key=&lt;/code&gt; em URLs de produção. Strings de consulta podem aparecer em logs de servidor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Endpoint e autenticação
&lt;/h2&gt;

&lt;p&gt;Para uma chamada síncrona:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para streaming com Server-Sent Events:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Envie a chave no cabeçalho:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x-goog-api-key: $GEMINI_API_KEY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Faça sua primeira chamada com cURL
&lt;/h2&gt;

&lt;p&gt;Crie uma requisição mínima para confirmar credenciais, endpoint e formato de resposta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-goog-api-key: &lt;/span&gt;&lt;span class="nv"&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "Review this SQL for injection risk: SELECT * FROM orders WHERE id = ${orderId}"
      }]
    }],
    "generationConfig": {
      "temperature": 0.3,
      "maxOutputTokens": 1024
    }
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A resposta inclui:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;candidates&lt;/code&gt;: candidatos gerados;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;candidates[].content.parts&lt;/code&gt;: texto ou chamadas de função;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;candidates[].finishReason&lt;/code&gt;: motivo de término;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;usageMetadata&lt;/code&gt;: contagem de tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Observe que a API do Google usa &lt;code&gt;contents&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt; e &lt;code&gt;parts&lt;/code&gt;, e não o formato &lt;code&gt;messages&lt;/code&gt; de provedores compatíveis com OpenAI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Início rápido em Python
&lt;/h2&gt;

&lt;p&gt;Instale ou atualize o SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; google-generativeai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Faça uma chamada com instrução de sistema e configuração de geração:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-3.7-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;system_instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a code reviewer. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Flag issues as blocking or non-blocking.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_output_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this Flask route for security issues:&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;@app.route(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/user/&amp;lt;id&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;def get_user(id):&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    return db.execute(f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;SELECT * FROM users WHERE id = {id}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input tokens:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage_metadata&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_token_count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output tokens:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage_metadata&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;candidates_token_count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Envie um PDF
&lt;/h3&gt;

&lt;p&gt;A entrada multimodal usa o mesmo fluxo. Faça upload do arquivo e passe a referência como parte do conteúdo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;invoice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upload_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;q3-invoice.pdf&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="n"&gt;invoice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extract the invoice number, total, and due date as JSON.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse é um caso alinhado ao ganho do modelo no benchmark GDP.pdf: extração estruturada a partir de documentos reais.&lt;/p&gt;

&lt;h2&gt;
  
  
  Início rápido em Node.js
&lt;/h2&gt;

&lt;p&gt;Instale o SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @google/generative-ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;responseMimeType&lt;/code&gt; e &lt;code&gt;responseSchema&lt;/code&gt; para obter JSON estruturado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;GoogleGenerativeAI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@google/generative-ai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;genAI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;GoogleGenerativeAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;genAI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getGenerativeModel&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gemini-3.7-flash&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;generationConfig&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;maxOutputTokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;responseMimeType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;responseSchema&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;severity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;enum&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blocking&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;non-blocking&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;array&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;severity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;issues&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generateContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Review this Express handler: app.get('/search', (req, res) =&amp;gt; res.send(eval(req.query.q)))&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;&lt;span class="p"&gt;()));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;responseSchema&lt;/code&gt; só deve ser usado junto com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;responseMimeType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assim, o código downstream recebe uma estrutura analisável em vez de texto livre.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use streaming para respostas progressivas
&lt;/h2&gt;

&lt;p&gt;Para interfaces de chat e recursos voltados ao usuário, use streaming.&lt;/p&gt;

&lt;p&gt;Em Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain the N+1 query problem with a concrete ORM example.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em HTTP puro, use o endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:streamGenerateContent?alt=sse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada linha &lt;code&gt;data:&lt;/code&gt; contém um payload parcial com &lt;code&gt;candidates&lt;/code&gt;. O bloco final inclui &lt;code&gt;usageMetadata&lt;/code&gt;, portanto a contagem completa de tokens só está disponível quando o stream termina.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ajuste &lt;code&gt;generationConfig&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Estes são os parâmetros mais úteis no dia a dia:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parâmetro&lt;/th&gt;
&lt;th&gt;Tipo&lt;/th&gt;
&lt;th&gt;Uso prático&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;maxOutputTokens&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;integer&lt;/td&gt;
&lt;td&gt;Limita a saída, até 64k tokens. É a principal alavanca de custo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;temperature&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Vai de 0 a 2. Use 0,2–0,4 para código e extração; 0,7+ para conteúdo criativo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;responseMimeType&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;application/json&lt;/code&gt; para saída JSON.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;responseSchema&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;object&lt;/td&gt;
&lt;td&gt;Define uma estrutura rígida quando combinado com JSON.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;topP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Controla a amostragem nucleus. Mantenha o padrão salvo se estiver ajustando intencionalmente.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stopSequences&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;array&lt;/td&gt;
&lt;td&gt;Interrompe a geração em delimitadores específicos.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Os tokens de saída custam US$ 3,75 por milhão durante a taxa de lançamento e US$ 7,50 a partir de janeiro de 2027. Defina &lt;code&gt;maxOutputTokens&lt;/code&gt; com base no tamanho realmente necessário para a resposta. Veja exemplos de cálculo em nossa &lt;a href="https://apidog.com/pt/blog/gemini-3-7-flash-pricing-explained?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;análise de preços do Gemini 3.7 Flash&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Além de &lt;code&gt;generationConfig&lt;/code&gt;, a requisição aceita &lt;code&gt;tools&lt;/code&gt; e &lt;code&gt;toolConfig&lt;/code&gt; para declarações de funções, pesquisa como ferramenta e uso de computador. Para implementar esse fluxo, consulte o &lt;a href="https://apidog.com/pt/blog/gemini-3-7-flash-function-calling-tutorial?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;tutorial de chamada de função do Gemini 3.7 Flash&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Teste o endpoint no Apidog antes de integrar ao app
&lt;/h2&gt;

&lt;p&gt;Iterar prompts apenas em scripts pode ser lento e caro: editar, executar, inspecionar e repetir consome tokens a cada ciclo. Primeiro, fixe o contrato da requisição em um cliente de API; depois, leve a versão validada para o SDK.&lt;/p&gt;

&lt;p&gt;No &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, siga este fluxo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Crie um projeto&lt;/strong&gt; e importe a especificação OpenAPI da Generative Language API a partir da &lt;a href="https://ai.google.dev/gemini-api/docs" rel="noopener noreferrer"&gt;documentação da API Gemini&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crie a variável de ambiente&lt;/strong&gt; &lt;code&gt;GEMINI_API_KEY&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vincule a variável ao cabeçalho&lt;/strong&gt; &lt;code&gt;x-goog-api-key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crie uma variável para o modelo&lt;/strong&gt;, como &lt;code&gt;GEMINI_MODEL=gemini-3.7-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monte o array &lt;code&gt;contents&lt;/code&gt;&lt;/strong&gt; no editor JSON e valide o corpo antes do envio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teste o endpoint SSE&lt;/strong&gt; para acompanhar blocos de streaming em tempo real.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salve respostas válidas como exemplos&lt;/strong&gt; para usar fixtures em testes posteriores, sem chamar a API real.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Depois, transforme os casos salvos em cenários de teste com asserções para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;finishReason&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;formato da resposta;&lt;/li&gt;
&lt;li&gt;campos obrigatórios;&lt;/li&gt;
&lt;li&gt;contagens em &lt;code&gt;usageMetadata&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse padrão permite executar regressões sempre que um prompt for alterado. Para expandir a estratégia, veja o &lt;a href="https://apidog.com/pt/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de testes de API para engenheiros de QA&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tratamento de erros e limites de taxa
&lt;/h2&gt;

&lt;p&gt;A API retorna um objeto &lt;code&gt;error&lt;/code&gt; de nível superior com &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt; e &lt;code&gt;message&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Código&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Causa comum&lt;/th&gt;
&lt;th&gt;Ação recomendada&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;&lt;code&gt;INVALID_ARGUMENT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Corpo malformado, papel incorreto ou &lt;code&gt;contents&lt;/code&gt; vazio.&lt;/td&gt;
&lt;td&gt;Valide o JSON antes de enviar.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;401&lt;/td&gt;
&lt;td&gt;&lt;code&gt;UNAUTHENTICATED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Chave ausente ou revogada.&lt;/td&gt;
&lt;td&gt;Reexporte &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; e valide a chave no AI Studio.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403&lt;/td&gt;
&lt;td&gt;&lt;code&gt;PERMISSION_DENIED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Projeto sem acesso ou faturamento.&lt;/td&gt;
&lt;td&gt;Verifique o projeto e o status de faturamento.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;429&lt;/td&gt;
&lt;td&gt;&lt;code&gt;RESOURCE_EXHAUSTED&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limite de taxa ou cota diária atingida.&lt;/td&gt;
&lt;td&gt;Use espera com jitter, agrupe chamadas ou altere o plano.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;&lt;code&gt;INTERNAL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falha temporária do servidor.&lt;/td&gt;
&lt;td&gt;Tente novamente com backoff exponencial.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;503&lt;/td&gt;
&lt;td&gt;&lt;code&gt;UNAVAILABLE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Serviço sobrecarregado.&lt;/td&gt;
&lt;td&gt;Tente novamente após alguns segundos; no Vertex, tente outra região.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Implemente retentativas para &lt;code&gt;429&lt;/code&gt; e erros &lt;code&gt;5xx&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;RETRYABLE_STATUS_CODES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;429&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;503&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;retry_with_backoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_attempts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_attempts&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;max_attempts&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;raise&lt;/span&gt;

            &lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;uniform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também vale seguir três práticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;monitore o consumo e alerte ao atingir 80% da cota;&lt;/li&gt;
&lt;li&gt;consulte os valores atuais na &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;página de preços e limites da API Gemini&lt;/a&gt;, sem fixar números no código;&lt;/li&gt;
&lt;li&gt;mantenha o ID do modelo em variável de ambiente para permitir rollback rápido.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GEMINI_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gemini-3.7-flash"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O Gemini 3.7 Flash é gratuito?
&lt;/h3&gt;

&lt;p&gt;O AI Studio oferece um nível gratuito com cota diária para prototipagem. A tarifa de lançamento é de US$ 0,75 por 1M de tokens de entrada até 31 de dezembro de 2026. Para entender os níveis disponíveis, consulte o guia de &lt;a href="https://apidog.com/pt/blog/get-free-unlimited-gemini-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;acesso gratuito à API Gemini&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual é a diferença entre AI Studio e Vertex AI?
&lt;/h3&gt;

&lt;p&gt;O modelo e o corpo da requisição são os mesmos. A diferença está na infraestrutura:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Studio:&lt;/strong&gt; chave de API e &lt;code&gt;generativelanguage.googleapis.com&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vertex AI:&lt;/strong&gt; OAuth, &lt;code&gt;aiplatform.googleapis.com&lt;/code&gt;, IAM, logs de auditoria e endpoints regionais.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comece no AI Studio para prototipar e migre para Vertex AI antes de direcionar tráfego de produção.&lt;/p&gt;

&lt;h3&gt;
  
  
  Posso enviar imagens, áudio e PDFs?
&lt;/h3&gt;

&lt;p&gt;Sim. Texto, imagem, vídeo, áudio e PDF podem ser enviados no array &lt;code&gt;contents&lt;/code&gt;, inline como base64 ou por referência com a API Files. A saída é texto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qual é o limite de contexto e saída?
&lt;/h3&gt;

&lt;p&gt;O modelo aceita até 1M de tokens de entrada e gera até 64k tokens de saída. Mesmo com uma janela longa, dividir entradas grandes pode reduzir custo, pois tokens de entrada também são cobrados.&lt;/p&gt;

&lt;h3&gt;
  
  
  Devo migrar do Gemini 3.6 Flash?
&lt;/h3&gt;

&lt;p&gt;Para cargas de trabalho de agentes e código, os ganhos de benchmark justificam testar a migração. A alteração inicial é apenas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gemini-3.6-flash → gemini-3.7-flash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Antes de enviar tráfego de produção, execute testes de regressão nos prompts. Consulte o &lt;a href="https://apidog.com/pt/blog/gemini-3-6-to-3-7-flash-migration-guide?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de migração do Gemini 3.6 para o 3.7 Flash&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onde o Gemini 3.7 Flash se encaixa na sua stack
&lt;/h2&gt;

&lt;p&gt;O Gemini 3.7 Flash combina custo menor com ganhos relevantes em agentes, código e processamento de documentos. O padrão de adoção mais seguro é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;comece pela chamada cURL;&lt;/li&gt;
&lt;li&gt;valide a estrutura de &lt;code&gt;contents&lt;/code&gt; e a resposta;&lt;/li&gt;
&lt;li&gt;teste prompts e streaming em um cliente de API;&lt;/li&gt;
&lt;li&gt;mova a integração validada para Python ou Node.js;&lt;/li&gt;
&lt;li&gt;mantenha o modelo configurável por variável de ambiente para rollback.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para importar a especificação do Gemini, armazenar a chave uma única vez e testar requisições síncronas, streaming e ferramentas no mesmo workspace, &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;baixe o Apidog&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ChatCompletions vs Anthropic Messages vs Responses API: Análise e Comparativo dos Formatos de API do DeepSeek V4 Pro</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 13 Aug 2026 09:03:06 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/chatcompletions-vs-anthropic-messages-vs-responses-api-analise-e-comparativo-dos-formatos-de-api-5agh</link>
      <guid>https://dev.to/lucas_ferreira/chatcompletions-vs-anthropic-messages-vs-responses-api-analise-e-comparativo-dos-formatos-de-api-5agh</guid>
      <description>&lt;h1&gt;
  
  
  DeepSeek V4 Pro: como testar ChatCompletions, Messages e Responses API
&lt;/h1&gt;

&lt;p&gt;DeepSeek-V4-Pro-0813 atingiu disponibilidade geral em 12 de agosto de 2026 e é servido pelo ID de modelo perene &lt;code&gt;deepseek-v4-pro&lt;/code&gt; em &lt;code&gt;https://api.deepseek.com&lt;/code&gt;. A plataforma também oferece o modelo mais econômico &lt;code&gt;deepseek-v4-flash&lt;/code&gt; (&lt;a href="https://www.unite.ai/deepseek-ships-v4-pro-as-its-flagship-model-leaves-preview/" rel="noopener noreferrer"&gt;Unite.AI cobriu o anúncio de GA&lt;/a&gt;). As especificações incluem janela de contexto de 1M de tokens, saída máxima de 384K tokens, chamada de ferramenta, saídas estruturadas e três modos de pensamento que expõem o raciocínio em &lt;code&gt;reasoning_content&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A particularidade não está apenas nas especificações: o mesmo modelo aceita três dialetos de API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI ChatCompletions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anthropic Messages&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek Responses API&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na prática, você pode apontar um cliente OpenAI existente, um agente construído para Claude ou um loop de agente no estilo Codex para os mesmos pesos do modelo. O endpoint e o payload mudam; o modelo continua sendo o mesmo.&lt;/p&gt;

&lt;p&gt;Este guia mostra uma requisição funcional para cada formato, explica as diferenças que afetam a implementação e apresenta uma forma de testar os três em um único projeto &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, usando variáveis de ambiente compartilhadas. Para configurar a conta e fazer a primeira chamada, consulte &lt;a href="https://apidog.com/pt/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como usar a API DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;deepseek-v4-pro&lt;/code&gt; está em GA em &lt;code&gt;https://api.deepseek.com&lt;/code&gt;; &lt;code&gt;deepseek-v4-flash&lt;/code&gt; compartilha as mesmas interfaces por um preço menor.&lt;/li&gt;
&lt;li&gt;O V4 Pro aceita os formatos OpenAI ChatCompletions, Anthropic Messages e DeepSeek Responses API.&lt;/li&gt;
&lt;li&gt;Especificações: 1M de contexto, até 384K de saída, tool calling, saídas estruturadas e &lt;code&gt;reasoning_content&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Preço: $0.435/M tokens de entrada em cache miss, $0.003625/M em cache hit e $0.87/M tokens de saída.&lt;/li&gt;
&lt;li&gt;Os formatos diferem no prompt de sistema, em &lt;code&gt;max_tokens&lt;/code&gt;, nos esquemas de ferramentas e nos eventos de streaming.&lt;/li&gt;
&lt;li&gt;Use um projeto Apidog com &lt;code&gt;{{DEEPSEEK_API_KEY}}&lt;/code&gt; e URLs-base por formato para enviar o mesmo prompt e comparar respostas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Por que um modelo fala três dialetos?
&lt;/h2&gt;

&lt;p&gt;Cada formato oferece compatibilidade com uma base de ferramentas já existente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ChatCompletions&lt;/strong&gt; é a opção de menor atrito para SDKs, frameworks e integrações compatíveis com OpenAI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic Messages&lt;/strong&gt; permite reutilizar agentes, harnesses de avaliação e ferramentas construídas para Claude, incluindo Claude Code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responses API&lt;/strong&gt; atende fluxos de agentes com múltiplas etapas, saída tipada e estado de conversação no servidor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O V4 Pro também aparece em agregadores, como na &lt;a href="https://openrouter.ai/deepseek/deepseek-v4-pro-0813" rel="noopener noreferrer"&gt;página do OpenRouter para deepseek-v4-pro-0813&lt;/a&gt;. Este artigo, porém, foca na API proprietária da DeepSeek. Para uma visão geral da família, veja &lt;a href="https://apidog.com/pt/blog/use-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como usar o DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formato 1: OpenAI ChatCompletions
&lt;/h2&gt;

&lt;p&gt;Use este formato se sua aplicação já envia um array &lt;code&gt;messages&lt;/code&gt; para APIs compatíveis com OpenAI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementação com SDK Python
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.deepseek.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a precise technical writer.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain idempotency keys in two sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  O que manter na migração
&lt;/h3&gt;

&lt;p&gt;A estrutura é a conhecida:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O prompt de sistema entra como a primeira mensagem com &lt;code&gt;role: "system"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ferramentas usam o objeto aninhado &lt;code&gt;function&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Streaming retorna deltas &lt;code&gt;chat.completion.chunk&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O stream termina com &lt;code&gt;data: [DONE]&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ao usar um modo de pensamento, trate &lt;code&gt;reasoning_content&lt;/code&gt; como um campo adicional ao lado de &lt;code&gt;content&lt;/code&gt;. Não assuma que a resposta terá apenas o texto final.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quando usar
&lt;/h3&gt;

&lt;p&gt;Escolha ChatCompletions quando você já usa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SDK &lt;code&gt;openai&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;LangChain ou frameworks semelhantes;&lt;/li&gt;
&lt;li&gt;wrappers internos compatíveis com OpenAI;&lt;/li&gt;
&lt;li&gt;coleções e testes construídos para Chat Completions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A anatomia da requisição é a mesma mostrada em &lt;a href="https://apidog.com/pt/blog/how-to-test-chatgpt-api-with-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como testar a API ChatGPT com Apidog&lt;/a&gt;, trocando apenas host, chave e modelo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formato 2: Anthropic Messages
&lt;/h2&gt;

&lt;p&gt;O formato Messages parece semelhante ao ChatCompletions, mas possui diferenças que impedem uma tradução mecânica do payload.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diferenças importantes
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;O prompt de sistema fica no campo de topo &lt;code&gt;system&lt;/code&gt;, fora do array &lt;code&gt;messages&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;max_tokens&lt;/code&gt; é obrigatório.&lt;/li&gt;
&lt;li&gt;As ferramentas usam &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; e &lt;code&gt;input_schema&lt;/code&gt; diretamente, sem o wrapper &lt;code&gt;function&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Chamadas de ferramenta retornam como blocos &lt;code&gt;tool_use&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Os resultados devem voltar como blocos &lt;code&gt;tool_result&lt;/code&gt; em uma mensagem de usuário.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Implementação com SDK Python
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.deepseek.com/anthropic&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Confirme o caminho atual na documentação da DeepSeek
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a precise technical writer.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain idempotency keys in two sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuração por variáveis de ambiente
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;https://api.deepseek.com/anthropic
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$DEEPSEEK_API_KEY&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;deepseek-v4-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Como tratar a resposta e o streaming
&lt;/h3&gt;

&lt;p&gt;Ao contrário de ChatCompletions, o conteúdo é retornado como uma lista de blocos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No streaming, espere eventos SSE tipados, como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;message_start
content_block_delta
message_stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A autenticação segue as convenções de cabeçalho da especificação Anthropic, não o padrão bearer token de ChatCompletions. Consulte a &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentação da API DeepSeek&lt;/a&gt; para os detalhes atuais da interface compatível.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quando usar
&lt;/h3&gt;

&lt;p&gt;Escolha Messages quando sua stack já é nativa de Claude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agentes compatíveis com Anthropic;&lt;/li&gt;
&lt;li&gt;Claude Code;&lt;/li&gt;
&lt;li&gt;harnesses de avaliação para Claude;&lt;/li&gt;
&lt;li&gt;clientes que já manipulam blocos de conteúdo e eventos SSE tipados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O formato corresponde à anatomia explicada no &lt;a href="https://apidog.com/pt/blog/claude-opus-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia da API Claude Opus 5&lt;/a&gt;, permitindo testar DeepSeek e Claude com corpos de requisição equivalentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formato 3: DeepSeek Responses API
&lt;/h2&gt;

&lt;p&gt;A Responses API é a interface voltada a agentes. Em vez de enviar um único array &lt;code&gt;messages&lt;/code&gt;, você combina:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;instructions&lt;/code&gt; para instruções de alto nível;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;input&lt;/code&gt; como string ou lista de itens tipados;&lt;/li&gt;
&lt;li&gt;opcionalmente, referências a respostas anteriores para manter estado no servidor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Requisição básica com cURL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.deepseek.com/responses &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "deepseek-v4-pro",
    "instructions": "You are an API review agent. Be terse.",
    "input": "Review this OpenAPI diff and list any breaking changes: [diff here]",
    "stream": false
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  O que muda em relação aos outros formatos
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Estado no lado do servidor
&lt;/h4&gt;

&lt;p&gt;Em vez de reenviar todo o histórico, uma requisição posterior pode apontar para uma resposta anterior usando &lt;code&gt;previous_response_id&lt;/code&gt;, conforme a especificação Responses.&lt;/p&gt;

&lt;p&gt;Isso reduz a complexidade de loops de agentes com várias etapas.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Saída tipada
&lt;/h4&gt;

&lt;p&gt;A resposta não é uma única mensagem. Ela pode conter itens distintos para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;raciocínio;&lt;/li&gt;
&lt;li&gt;texto;&lt;/li&gt;
&lt;li&gt;chamadas de ferramenta;&lt;/li&gt;
&lt;li&gt;resultados de ferramentas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seu orquestrador pode processar cada item conforme seu tipo, em vez de inferir tudo a partir de uma string.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Streaming semântico
&lt;/h4&gt;

&lt;p&gt;Em vez de deltas genéricos, espere eventos de ciclo de vida como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;response.output_text.delta
response.completed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso é útil quando o agente precisa reagir a eventos específicos sem interpretar manualmente chunks SSE.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool calling na Responses API
&lt;/h3&gt;

&lt;p&gt;As ferramentas e seus resultados usam itens compatíveis com a especificação Responses, incluindo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;function_call&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;function_call_output&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antes de implantar, valide o formato exato suportado pela DeepSeek em &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;api-docs.deepseek.com&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quando usar
&lt;/h3&gt;

&lt;p&gt;Escolha a Responses API para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agentes no estilo Codex;&lt;/li&gt;
&lt;li&gt;fluxos de trabalho longos e multi-etapas;&lt;/li&gt;
&lt;li&gt;orquestradores que se beneficiam de itens de saída tipados;&lt;/li&gt;
&lt;li&gt;aplicações que querem delegar o estado da conversa ao servidor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para uma conclusão simples de chat, ChatCompletions normalmente exige menos código.&lt;/p&gt;

&lt;h2&gt;
  
  
  Os três formatos lado a lado
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;OpenAI ChatCompletions&lt;/th&gt;
&lt;th&gt;Anthropic Messages&lt;/th&gt;
&lt;th&gt;DeepSeek Responses API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;POST /chat/completions&lt;/code&gt; em &lt;code&gt;api.deepseek.com&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;POST /v1/messages&lt;/code&gt; na base compatível com Anthropic (&lt;code&gt;/anthropic&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;POST /responses&lt;/code&gt; em &lt;code&gt;api.deepseek.com&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Formato da requisição&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Array &lt;code&gt;messages&lt;/code&gt;; sistema como primeira mensagem&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;system&lt;/code&gt; no topo + mensagens alternadas&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;instructions&lt;/code&gt; no topo + &lt;code&gt;input&lt;/code&gt; como string ou lista&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Limite de saída&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Opcional&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;max_tokens&lt;/code&gt; obrigatório&lt;/td&gt;
&lt;td&gt;Opcional conforme a especificação Responses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Definições de ferramenta&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Objeto &lt;code&gt;function&lt;/code&gt; aninhado com &lt;code&gt;parameters&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;input_schema&lt;/code&gt; plano por ferramenta&lt;/td&gt;
&lt;td&gt;Entradas planas no formato Responses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resultado de ferramenta&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mensagem com &lt;code&gt;role: "tool"&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Bloco &lt;code&gt;tool_result&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Item &lt;code&gt;function_call_output&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Streaming&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deltas &lt;code&gt;chat.completion.chunk&lt;/code&gt;, finalizados por &lt;code&gt;[DONE]&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Eventos &lt;code&gt;message_start&lt;/code&gt;, &lt;code&gt;content_block_delta&lt;/code&gt; e &lt;code&gt;message_stop&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Eventos semânticos, como &lt;code&gt;response.output_text.delta&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Estado da conversa&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cliente reenvia o histórico&lt;/td&gt;
&lt;td&gt;Cliente reenvia o histórico&lt;/td&gt;
&lt;td&gt;Referência opcional a resposta anterior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Melhor para&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ferramentas OpenAI existentes&lt;/td&gt;
&lt;td&gt;Ferramentas e agentes nativos de Claude&lt;/td&gt;
&lt;td&gt;Agentes com estado e fluxos estilo Codex&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Mesmo modelo, mesmo preço, três contratos de comunicação. Por isso, valide o comportamento com requisições reais em vez de depender apenas da compatibilidade declarada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Teste os três em um único projeto Apidog
&lt;/h2&gt;

&lt;p&gt;Use uma coleção única no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para comparar os formatos de forma repetível.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Crie três pastas
&lt;/h3&gt;

&lt;p&gt;Organize as requisições por formato:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deepseek-v4/
├── chat-completions/
│   ├── simple-completion
│   ├── tool-calling
│   └── streaming
├── anthropic-messages/
│   ├── simple-completion
│   ├── tool-calling
│   └── streaming
└── responses/
    ├── simple-completion
    ├── tool-calling
    └── streaming
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Defina variáveis compartilhadas
&lt;/h3&gt;

&lt;p&gt;Crie variáveis de ambiente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DEEPSEEK_API_KEY
BASE_URL=https://api.deepseek.com
ANTHROPIC_BASE=https://api.deepseek.com/anthropic
MODEL=deepseek-v4-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assim, alternar entre &lt;code&gt;deepseek-v4-pro&lt;/code&gt; e &lt;code&gt;deepseek-v4-flash&lt;/code&gt; exige mudar apenas uma variável.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Envie o mesmo prompt
&lt;/h3&gt;

&lt;p&gt;Use o mesmo prompt em cada formato e compare a resposta bruta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatCompletions: &lt;code&gt;choices[0].message.content&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Messages: lista &lt;code&gt;content&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Responses: itens de saída tipados&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa comparação mostra onde sua camada de parsing precisa mudar.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Compare os streams
&lt;/h3&gt;

&lt;p&gt;Ative &lt;code&gt;stream: true&lt;/code&gt; em cada requisição e observe os eventos SSE:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatCompletions: chunks que terminam em &lt;code&gt;[DONE]&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Messages: eventos nomeados por bloco;&lt;/li&gt;
&lt;li&gt;Responses: eventos de ciclo de vida.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se você ainda não depurou SSE, consulte &lt;a href="https://apidog.com/pt/blog/how-to-stream-api-responses-sse?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como fazer streaming de respostas da API com SSE&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Adicione asserções de regressão
&lt;/h3&gt;

&lt;p&gt;Valide os campos que sua integração realmente consome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;caminho do texto final;&lt;/li&gt;
&lt;li&gt;ID da chamada de ferramenta;&lt;/li&gt;
&lt;li&gt;motivo de finalização;&lt;/li&gt;
&lt;li&gt;presença de &lt;code&gt;reasoning_content&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;formato dos eventos de streaming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Execute a coleção novamente sempre que a DeepSeek publicar uma atualização de snapshot.&lt;/p&gt;

&lt;p&gt;Essa estrutura de três pastas também se torna documentação viva: quando surgir uma dúvida sobre &lt;code&gt;input_schema&lt;/code&gt;, &lt;code&gt;tool_result&lt;/code&gt; ou eventos de stream, consulte uma requisição salva com uma resposta real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Notas de migração
&lt;/h2&gt;

&lt;h3&gt;
  
  
  De OpenAI para DeepSeek V4 Pro
&lt;/h3&gt;

&lt;p&gt;Altere apenas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;base_url&lt;/code&gt; para &lt;code&gt;https://api.deepseek.com&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;a chave da API;&lt;/li&gt;
&lt;li&gt;o modelo para &lt;code&gt;deepseek-v4-pro&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mantenha mensagens, definições de ferramenta e handlers de streaming. Antes de implantar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;execute os parâmetros não essenciais na sua coleção de testes;&lt;/li&gt;
&lt;li&gt;faça seu parser aceitar &lt;code&gt;reasoning_content&lt;/code&gt; ao lado de &lt;code&gt;content&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  De Anthropic para DeepSeek V4 Pro
&lt;/h3&gt;

&lt;p&gt;Altere:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;a URL-base para o endpoint compatível com Anthropic;&lt;/li&gt;
&lt;li&gt;a chave de autenticação;&lt;/li&gt;
&lt;li&gt;o modelo.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Como o formato Messages é preservado, clientes que seguem a especificação devem manter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;max_tokens&lt;/code&gt; obrigatório;&lt;/li&gt;
&lt;li&gt;blocos de conteúdo;&lt;/li&gt;
&lt;li&gt;ferramentas com &lt;code&gt;input_schema&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;eventos SSE tipados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para ferramentas configuradas por ambiente, a migração pode ser apenas as três linhas &lt;code&gt;export&lt;/code&gt; mostradas anteriormente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Para a Responses API
&lt;/h3&gt;

&lt;p&gt;A migração para Responses não é uma troca de configuração. Você precisa adaptar a camada de requisição e parsing, pois ela não se traduz mecanicamente de ChatCompletions ou Messages.&lt;/p&gt;

&lt;p&gt;Adote-a quando precisar especificamente de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;estado de conversação gerenciado pelo servidor;&lt;/li&gt;
&lt;li&gt;itens de saída tipados;&lt;/li&gt;
&lt;li&gt;eventos de streaming orientados ao ciclo de vida;&lt;/li&gt;
&lt;li&gt;orquestração de agentes multi-etapas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em qualquer direção, migre a configuração e execute a coleção de regressão antes de confiar no tráfego de produção.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Qual formato um projeto novo deve escolher?
&lt;/h3&gt;

&lt;p&gt;Use &lt;strong&gt;ChatCompletions&lt;/strong&gt; por padrão, devido ao suporte amplo de ferramentas. Escolha &lt;strong&gt;Messages&lt;/strong&gt; se sua stack já for nativa de Claude. Escolha a &lt;strong&gt;Responses API&lt;/strong&gt; para agentes multi-etapas que se beneficiem de estado no servidor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Posso apontar o Claude Code para o DeepSeek V4 Pro?
&lt;/h3&gt;

&lt;p&gt;Sim. Defina &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; para o endpoint compatível com Anthropic da DeepSeek, use a chave DeepSeek como token de autenticação e configure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;deepseek-v4-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse é o benefício prático da compatibilidade com o formato Messages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tool calling e saídas estruturadas funcionam nos três formatos?
&lt;/h3&gt;

&lt;p&gt;O modelo suporta ambos. Cada formato expõe ferramentas segundo sua própria especificação:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;funções aninhadas em ChatCompletions;&lt;/li&gt;
&lt;li&gt;ferramentas com &lt;code&gt;input_schema&lt;/code&gt; em Messages;&lt;/li&gt;
&lt;li&gt;itens de função no estilo Responses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teste seus esquemas em cada interface antes de implantar. Diferenças nos formatos de schema são um dos pontos mais comuns de divergência entre APIs compatíveis.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Aumento de Preço da DeepSeek API: Manual de Otimização de Custos para Desenvolvedores</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 13 Aug 2026 08:33:48 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/aumento-de-preco-da-deepseek-api-manual-de-otimizacao-de-custos-para-desenvolvedores-3o95</link>
      <guid>https://dev.to/lucas_ferreira/aumento-de-preco-da-deepseek-api-manual-de-otimizacao-de-custos-para-desenvolvedores-3o95</guid>
      <description>&lt;p&gt;DeepSeek construiu sua base de desenvolvedores com uma troca simples: modelos quase de ponta a preços que tornavam o custo irrelevante. Em 6 de agosto de 2026, a empresa alertou que essa troca está prestes a mudar. Em um anúncio primeiramente coberto por &lt;a href="https://dataconomy.com/2026/08/06/deepseek-significant-api-price-increase-2026/" rel="noopener noreferrer"&gt;Dataconomy&lt;/a&gt;, a DeepSeek disse que os preços da API aumentarão “em breve” e que o aumento deverá ser “significativo”. Sem números, sem data efetiva e sem detalhamento por modelo ou nível de preço.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;O contexto torna o aviso crível. A DeepSeek cita aumento dos custos de computação, gargalos de capacidade e tráfego massivo em V4-Flash e V4-Pro. Esta é a segunda mudança de preço em menos de um mês: tarifas de pico e fora de pico chegaram em meados de julho, e o V4-Pro 0813 atingiu disponibilidade geral em 12 de agosto. A &lt;a href="https://www.eweek.com/news/deepseek-api-price-hike-low-cost-edge-apac/" rel="noopener noreferrer"&gt;eWeek&lt;/a&gt; enquadra a mudança como um teste da vantagem de baixo custo que tornou a DeepSeek uma escolha econômica para equipes na APAC e além.&lt;/p&gt;

&lt;p&gt;Você não controla as novas taxas. Mas pode controlar quantos tokens compra, qual modelo usa, em que horário envia as requisições e qual provedor atende cada rota.&lt;/p&gt;

&lt;p&gt;Este guia mostra como agir antes do reajuste, incluindo cenários de 1,5x, 2x e 3x para uma carga de trabalho de exemplo.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A DeepSeek anunciou um aumento “significativo” no preço da API em 6 de agosto de 2026, sem informar valor, data ou impacto por modelo.&lt;/li&gt;
&lt;li&gt;Sua maior alavanca é o cache automático de prefixo de prompt: entradas em cache custam menos de 1% da taxa de cache-miss. Estabilize os prefixos agora.&lt;/li&gt;
&lt;li&gt;Roteie por tarefa: use V4-Flash para chamadas simples e de alto volume; reserve V4-Pro para raciocínio profundo.&lt;/li&gt;
&lt;li&gt;Limite o esforço de pensamento por rota para não pagar tokens de raciocínio em tarefas mecânicas.&lt;/li&gt;
&lt;li&gt;Execute cargas em lote nas janelas fora de pico introduzidas pela DeepSeek em julho.&lt;/li&gt;
&lt;li&gt;Mantenha um segundo provedor pronto. A OpenRouter precifica modelos DeepSeek de forma independente, e uma suíte de testes no &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pode validar o failover.&lt;/li&gt;
&lt;li&gt;Mesmo em um cenário especulativo de 3x, a saída do V4-Pro custaria $2,61 por milhão de tokens, abaixo dos $25–30 por milhão atribuídos por comparações públicas a concorrentes de ponta.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  O que a DeepSeek anunciou — e o que não anunciou
&lt;/h2&gt;

&lt;p&gt;A divulgação é limitada:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Os preços da API aumentarão “em breve”.&lt;/li&gt;
&lt;li&gt;O aumento será “significativo”.&lt;/li&gt;
&lt;li&gt;As causas são custos de computação, gargalos de capacidade e tráfego intenso nos endpoints V4-Flash e V4-Pro.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em 13 de agosto, as taxas atuais ainda se aplicavam.&lt;/p&gt;

&lt;p&gt;O que continua desconhecido:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O percentual do aumento.&lt;/li&gt;
&lt;li&gt;A data efetiva.&lt;/li&gt;
&lt;li&gt;Se V4-Flash e V4-Pro subirão pelo mesmo fator.&lt;/li&gt;
&lt;li&gt;Se cache-hit e cache-miss escalarão igualmente.&lt;/li&gt;
&lt;li&gt;Se cargas de trabalho de raciocínio terão tratamento diferente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Discussões no Hacker News especulam aumentos entre 2x e 3x, mas não há confirmação oficial. Planeje para uma faixa de cenários, não para um único número.&lt;/p&gt;

&lt;p&gt;Estas são as tarifas que os cenários multiplicariam:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Entrada (cache miss)&lt;/th&gt;
&lt;th&gt;Entrada (cache hit)&lt;/th&gt;
&lt;th&gt;Saída&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4-Pro&lt;/td&gt;
&lt;td&gt;$0,435 / M tokens&lt;/td&gt;
&lt;td&gt;$0,003625 / M tokens&lt;/td&gt;
&lt;td&gt;$0,87 / M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4-Flash&lt;/td&gt;
&lt;td&gt;$0,14 / M tokens&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;$0,28 / M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ambos os modelos têm janela de contexto de 1M tokens. Consulte o &lt;a href="https://apidog.com/pt/blog/deepseek-v4-api-pricing/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de preços da API DeepSeek V4&lt;/a&gt; para o detalhamento e acompanhe o cartão de tarifas atualizado na &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentação da API DeepSeek&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Duas proporções orientam as decisões deste artigo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A entrada com cache custa menos de 1% da entrada sem cache.&lt;/li&gt;
&lt;li&gt;O V4-Pro custa aproximadamente 3x o V4-Flash em entrada e saída.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Passo 1: meça sua exposição antes do aumento
&lt;/h2&gt;

&lt;p&gt;Um aumento de preço é apenas um multiplicador sobre o seu consumo atual. Antes de alterar prompts, modelos ou rotas, instrumente as chamadas para saber exatamente onde estão os tokens.&lt;/p&gt;

&lt;p&gt;Registre, no mínimo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Funcionalidade ou endpoint que disparou a chamada.&lt;/li&gt;
&lt;li&gt;Modelo utilizado.&lt;/li&gt;
&lt;li&gt;Tokens de entrada.&lt;/li&gt;
&lt;li&gt;Tokens de saída.&lt;/li&gt;
&lt;li&gt;Tokens atendidos pelo cache.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;usage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;

&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;llm_call&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;extra&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;feature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ticket-summarizer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_tokens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completion_tokens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cache_hit_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_cache_hit_tokens&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O padrão de atribuição por funcionalidade, painéis e economia unitária está em &lt;a href="https://apidog.com/pt/blog/track-openai-api-spend-per-feature/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como rastrear o gasto da API OpenAI por funcionalidade&lt;/a&gt; e pode ser aplicado à DeepSeek sem mudanças estruturais.&lt;/p&gt;

&lt;p&gt;Com uma semana de dados, responda:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quais funcionalidades consomem a maior parte do orçamento?&lt;/li&gt;
&lt;li&gt;Qual porcentagem dos tokens de entrada atinge o cache?&lt;/li&gt;
&lt;li&gt;Quais rotas usam V4-Pro para trabalho que V4-Flash poderia executar?&lt;/li&gt;
&lt;li&gt;Em qual multiplicador de preço cada funcionalidade deixa de ser economicamente viável?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Esse quarto item é seu limite de decisão para trocar ou dividir tráfego entre provedores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 2: maximize os hits de cache
&lt;/h2&gt;

&lt;p&gt;A DeepSeek armazena prefixos de prompt automaticamente. Quando os tokens iniciais de uma requisição correspondem aos de uma requisição recente, o prefixo repetido é cobrado como cache-hit.&lt;/p&gt;

&lt;p&gt;No V4-Pro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cache miss: $0,435 por milhão de tokens de entrada.&lt;/li&gt;
&lt;li&gt;Cache hit: $0,003625 por milhão de tokens de entrada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não há flags de controle de cache ou TTL para gerenciar. O desconto depende de a estrutura do prompt ser repetível. Para revisar a mecânica, consulte &lt;a href="https://apidog.com/pt/blog/what-is-prompt-caching/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;o que é cache de prompt e como funciona&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Estruture prompts como estático primeiro, dinâmico por último
&lt;/h3&gt;

&lt;p&gt;O cache corresponde a prefixos exatos de tokens. Organize os prompts nesta ordem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Prompt do sistema estável]
[Políticas estáveis]
[Definições de ferramentas em ordem determinística]
[Exemplos few-shot estáveis]
[Contexto de sessão ou documentos recuperados]
[Mensagem atual do usuário]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aplique estas regras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coloque primeiro o conteúdo que nunca muda: instruções do sistema, políticas, ferramentas e exemplos.&lt;/li&gt;
&lt;li&gt;Mantenha os mesmos bytes e a mesma ordem em todas as chamadas.&lt;/li&gt;
&lt;li&gt;Empurre dados variáveis para o final: mensagens do usuário, documentos recuperados, IDs e contexto de sessão.&lt;/li&gt;
&lt;li&gt;Remova timestamps, IDs de requisição e saudações personalizadas do início do prompt.&lt;/li&gt;
&lt;li&gt;Garanta que listas de ferramentas e objetos JSON sejam serializados em ordem determinística.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um timestamp no prompt do sistema pode invalidar todo o prefixo. O mesmo vale para um array de ferramentas cuja ordem muda entre requisições.&lt;/p&gt;

&lt;p&gt;Isso é especialmente relevante em loops de agentes. Se o agente reenvia a conversa inteira a cada turno, todo o conteúdo anterior à mensagem mais recente pode ser atendido pelo cache — desde que o prefixo permaneça estável.&lt;/p&gt;

&lt;h3&gt;
  
  
  Calcule a taxa de acerto por resposta
&lt;/h3&gt;

&lt;p&gt;A DeepSeek expõe dados de cache no objeto &lt;code&gt;usage&lt;/code&gt;, conforme a &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentação da API DeepSeek&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;

&lt;span class="n"&gt;hit_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_cache_hit_tokens&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_cache_hit_tokens&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_cache_miss_tokens&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Envie essa métrica para seu painel por funcionalidade:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;metrics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;gauge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;llm.cache_hit_rate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hit_rate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;feature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ticket-summarizer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se uma rota repetitiva tiver taxa baixa de cache-hit, revise o prefixo antes de aceitar o custo como inevitável.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 3: roteie por tarefa, não por hábito
&lt;/h2&gt;

&lt;p&gt;O V4-Pro custa aproximadamente 3x o V4-Flash. Esse custo pode ser justificável para raciocínio profundo, mas não para reformatação de JSON ou classificação simples.&lt;/p&gt;

&lt;p&gt;Audite os dados coletados no Passo 1 e defina rotas explícitas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Forma da carga de trabalho&lt;/th&gt;
&lt;th&gt;Modelo recomendado&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Classificação, extração, formatação e roteamento de intenção&lt;/td&gt;
&lt;td&gt;V4-Flash, pensamento mínimo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resumos, respostas RAG e geração de rascunhos&lt;/td&gt;
&lt;td&gt;V4-Flash primeiro; promover para Pro somente quando avaliações falharem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loops de agente, depuração difícil e análise de arquitetura&lt;/td&gt;
&lt;td&gt;V4-Pro, com orçamento de pensamento&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Evite deixar a escolha de modelo implícita no código. Centralize-a em uma função ou camada de roteamento:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;select_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;flash_tasks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;classification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;extraction&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;formatting&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;intent-routing&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;summarization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;task_type&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;flash_tasks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Limite o esforço de pensamento por rota
&lt;/h3&gt;

&lt;p&gt;Rastros de raciocínio são cobrados como tokens de saída. No V4-Pro, saída custa $0,87 por milhão de tokens.&lt;/p&gt;

&lt;p&gt;Defina uma política simples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tarefas mecânicas: sem pensamento ou pensamento mínimo.&lt;/li&gt;
&lt;li&gt;Tarefas com avaliação intermediária: esforço moderado.&lt;/li&gt;
&lt;li&gt;Agentes e análise complexa: pensamento profundo apenas quando a qualidade mensurável justificar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não reduza qualidade por intuição. Faça a alteração, rode suas avaliações e compare os resultados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Mova uma rota do V4-Pro para o V4-Flash.
2. Execute o conjunto de avaliações.
3. Compare taxa de aprovação, precisão e latência.
4. Mantenha a mudança se os critérios continuarem atendidos.
5. Promova novamente para Pro apenas as entradas que falharem.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Passo 4: mova trabalhos em lote para horários fora de pico
&lt;/h2&gt;

&lt;p&gt;A DeepSeek introduziu precificação de pico e fora de pico em meados de julho. As janelas e descontos atuais estão no cartão de tarifas da &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentação da API DeepSeek&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Priorize cargas sem usuário aguardando resposta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execuções noturnas de avaliação.&lt;/li&gt;
&lt;li&gt;Preenchimento de embeddings.&lt;/li&gt;
&lt;li&gt;Rotulagem de datasets.&lt;/li&gt;
&lt;li&gt;Suítes de regressão de prompts no CI.&lt;/li&gt;
&lt;li&gt;Geração de relatórios.&lt;/li&gt;
&lt;li&gt;Processamento de filas internas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em vez de disparar essas tarefas sob demanda, use uma fila com horário de liberação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;nightly-evaluation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;release_at&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;off_peak_window&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;payload&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;evaluation_batch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;queue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enqueue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;job&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essa otimização não exige nova validação de qualidade: os tokens e o modelo são os mesmos; apenas o horário muda.&lt;/p&gt;

&lt;p&gt;A ressalva é que a DeepSeek não informou se a diferença entre pico e fora de pico sobreviverá ao próximo reajuste. Aproveite as tarifas atuais e revise a configuração quando a tabela de preços for atualizada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sua conta em cenários de 1,5x, 2x e 3x
&lt;/h2&gt;

&lt;p&gt;Os valores abaixo são cenários ilustrativos, não previsões. A DeepSeek não anunciou multiplicadores, e não há garantia de que todos os níveis de preço escalarão uniformemente.&lt;/p&gt;

&lt;p&gt;Carga mensal de exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;V4-Pro:&lt;/strong&gt; 400M tokens de entrada, 60% de cache-hit e 60M tokens de saída.

&lt;ul&gt;
&lt;li&gt;Cache miss: $69,60&lt;/li&gt;
&lt;li&gt;Cache hit: $0,87&lt;/li&gt;
&lt;li&gt;Saída: $52,20&lt;/li&gt;
&lt;li&gt;Total Pro: $122,67&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V4-Flash:&lt;/strong&gt; 600M tokens de entrada e 120M tokens de saída.

&lt;ul&gt;
&lt;li&gt;Entrada: $84,00&lt;/li&gt;
&lt;li&gt;Saída: $33,60&lt;/li&gt;
&lt;li&gt;Total Flash: $117,60&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fatura base:&lt;/strong&gt; $240,27.&lt;/p&gt;

&lt;p&gt;A coluna otimizada aplica os Passos 2 e 3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Taxa de cache-hit do Pro sobe de 60% para 85%.&lt;/li&gt;
&lt;li&gt;Saída do Pro cai de 60M para 45M tokens por meio de orçamentos de pensamento.&lt;/li&gt;
&lt;li&gt;V4-Flash permanece inalterado.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cenário de taxa&lt;/th&gt;
&lt;th&gt;Conta não otimizada&lt;/th&gt;
&lt;th&gt;Otimizada (Passos 2–3)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Taxas atuais&lt;/td&gt;
&lt;td&gt;$240&lt;/td&gt;
&lt;td&gt;$184&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aumento de 1,5x&lt;/td&gt;
&lt;td&gt;$360&lt;/td&gt;
&lt;td&gt;$276&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aumento de 2x&lt;/td&gt;
&lt;td&gt;$481&lt;/td&gt;
&lt;td&gt;$368&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aumento de 3x&lt;/td&gt;
&lt;td&gt;$721&lt;/td&gt;
&lt;td&gt;$552&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A leitura prática é simples: uma carga otimizada com aumento de 2x ($368) custa aproximadamente o mesmo que uma carga não otimizada com aumento de 1,5x ($360).&lt;/p&gt;

&lt;p&gt;As economias estruturais acompanham qualquer multiplicador. Uma redução de 23% vale cerca de $56 hoje e $168 em um cenário de 3x.&lt;/p&gt;

&lt;p&gt;O desconto fora de pico não está incluído na tabela porque depende da programação vigente. Portanto, a coluna otimizada é conservadora.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando trocar modelos supera a otimização
&lt;/h2&gt;

&lt;p&gt;Mesmo no cenário especulativo de 3x, a saída do V4-Pro chegaria a $2,61 por milhão de tokens. Comparações públicas colocam a saída de concorrentes de ponta entre $25 e $30 por milhão.&lt;/p&gt;

&lt;p&gt;A vantagem de custo diminui, mas não desaparece automaticamente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Otimize e permaneça quando
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek passa nas suas avaliações de qualidade.&lt;/li&gt;
&lt;li&gt;Seu tráfego possui prompts cacheáveis.&lt;/li&gt;
&lt;li&gt;As rotas podem ser encaminhadas entre Flash e Pro.&lt;/li&gt;
&lt;li&gt;Você tem capacidade de engenharia para implementar as mudanças antes do reajuste.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Troque ou divida o tráfego quando
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sua taxa de cache-hit é estruturalmente baixa porque cada requisição carrega documentos longos e únicos.&lt;/li&gt;
&lt;li&gt;Você paga por V4-Pro em tarefas que um modelo menor de outro provedor aprova nas suas avaliações.&lt;/li&gt;
&lt;li&gt;O multiplicador anunciado ultrapassa o limite econômico calculado no Passo 1.&lt;/li&gt;
&lt;li&gt;Você precisa reduzir risco operacional de depender de um único provedor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para a maioria das equipes, a resposta será híbrida:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mantenha DeepSeek nas rotas em que vence em custo por avaliação aprovada.&lt;/li&gt;
&lt;li&gt;Mova rotas em que outro modelo entrega melhor custo ou qualidade.&lt;/li&gt;
&lt;li&gt;Execute testes de paridade continuamente entre provedores.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A DeepSeek informou que os preços vão subir, mas ainda não detalhou quanto, quando ou como cada modelo será afetado.&lt;/p&gt;

&lt;p&gt;Use esse período para executar ações mensuráveis:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instrumente gasto e tokens por funcionalidade.&lt;/li&gt;
&lt;li&gt;Estabilize os prefixos de prompt para aumentar cache-hit.&lt;/li&gt;
&lt;li&gt;Roteie tarefas simples para V4-Flash.&lt;/li&gt;
&lt;li&gt;Limite pensamento em rotas que não exigem raciocínio profundo.&lt;/li&gt;
&lt;li&gt;Programe workloads em lote para janelas fora de pico.&lt;/li&gt;
&lt;li&gt;Valide um segundo provedor antes de precisar dele.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para testar o failover, &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;baixe o Apidog gratuitamente&lt;/a&gt;. Crie a suíte uma vez, execute-a contra &lt;a href="http://api.deepseek.com" rel="noopener noreferrer"&gt;api.deepseek.com&lt;/a&gt; e contra seu fallback usando ambientes separados por provedor, e agende execuções para garantir que ambos continuem compatíveis.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como Usar Function Calling com a API DeepSeek V4 Pro</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 13 Aug 2026 08:33:02 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/como-usar-function-calling-com-a-api-deepseek-v4-pro-1gh4</link>
      <guid>https://dev.to/lucas_ferreira/como-usar-function-calling-com-a-api-deepseek-v4-pro-1gh4</guid>
      <description>&lt;p&gt;DeepSeek tirou o V4 Pro da prévia em 12 de agosto de 2026, e a &lt;a href="https://www.unite.ai/deepseek-ships-v4-pro-as-its-flagship-model-leaves-preview/" rel="noopener noreferrer"&gt;cobertura de lançamento&lt;/a&gt; destaca fluxos de trabalho de agente: codificação, uso de ferramentas e tarefas de longo prazo que encadeiam dezenas de etapas sem perder o contexto. Nesse cenário, a chamada de função (&lt;em&gt;function calling&lt;/em&gt;) é o recurso central da API. Este guia mostra como definir ferramentas, executar o loop completo de um agente com o SDK Python &lt;code&gt;openai&lt;/code&gt; e validar o fluxo no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Se você ainda não tem uma chave de API DeepSeek, configure uma com nosso guia sobre &lt;a href="https://apidog.com/pt/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como usar a API DeepSeek V4&lt;/a&gt; e retorne a este tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;deepseek-v4-pro&lt;/code&gt; (compilação GA DeepSeek-V4-Pro-0813) suporta chamadas de função no estilo OpenAI: envie um array &lt;code&gt;tools&lt;/code&gt;, receba &lt;code&gt;tool_calls&lt;/code&gt; e retorne resultados como mensagens &lt;code&gt;tool&lt;/code&gt;. O SDK &lt;code&gt;openai&lt;/code&gt; padrão funciona com &lt;code&gt;https://api.deepseek.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O loop completo do agente tem cerca de 30 linhas de Python: chame o modelo, execute ferramentas, adicione os resultados ao histórico e repita até receber uma resposta final.&lt;/li&gt;
&lt;li&gt;Chamadas paralelas e saídas estruturadas são suportadas. O modo de raciocínio adiciona &lt;code&gt;reasoning_content&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;O cache de prefixo automático precifica tokens de entrada com acerto de cache em US$ 0,003625 por milhão de tokens, 120x menos que uma falha de cache.&lt;/li&gt;
&lt;li&gt;A qualidade da chamada de ferramenta depende das descrições e dos esquemas. Teste suas ferramentas reais com o modelo ao vivo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Por que a chamada de ferramenta é o principal caso de uso do V4 Pro
&lt;/h2&gt;

&lt;p&gt;A DeepSeek construiu o V4 Pro para agentes, e as especificações refletem requisitos comuns de runtimes de agentes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Especificação&lt;/th&gt;
&lt;th&gt;DeepSeek V4 Pro&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Arquitetura&lt;/td&gt;
&lt;td&gt;MoE esparsa: 1,6T parâmetros totais, 49B ativos por token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Janela de contexto&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Saída máxima&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preço de entrada&lt;/td&gt;
&lt;td&gt;US$ 0,435/M tokens (falha de cache), US$ 0,003625/M (acerto de cache)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preço de saída&lt;/td&gt;
&lt;td&gt;US$ 0,87/M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chamada de função&lt;/td&gt;
&lt;td&gt;Array &lt;code&gt;tools&lt;/code&gt; compatível com OpenAI e respostas &lt;code&gt;tool_calls&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outras interfaces&lt;/td&gt;
&lt;td&gt;Formato Anthropic Messages, API DeepSeek Responses&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A janela de 1M de tokens permite carregar o histórico e os resultados de ferramentas em tarefas longas. O cache de prefixo reduz o custo de reenviar esse histórico a cada rodada. O modelo também está listado no &lt;a href="https://openrouter.ai/deepseek/deepseek-v4-pro-0813" rel="noopener noreferrer"&gt;OpenRouter como &lt;code&gt;deepseek-v4-pro-0813&lt;/code&gt;&lt;/a&gt; para comparações entre provedores.&lt;/p&gt;

&lt;p&gt;Há uma ressalva importante: na &lt;a href="https://news.ycombinator.com/item?id=49274600" rel="noopener noreferrer"&gt;discussão de lançamento no Hacker News&lt;/a&gt;, desenvolvedores relataram que o desempenho de chamadas de ferramenta varia com o ambiente de teste, o &lt;em&gt;scaffolding&lt;/em&gt; do prompt e o estilo do esquema. Benchmarks não substituem testes com seus endpoints, parâmetros e regras de negócio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como funciona a chamada de função da DeepSeek
&lt;/h2&gt;

&lt;p&gt;O modelo não executa funções diretamente. Ele retorna uma solicitação estruturada, por exemplo: “chame &lt;code&gt;get_order&lt;/code&gt; com &lt;code&gt;{"order_id": "ORD-10442"}&lt;/code&gt;”.&lt;/p&gt;

&lt;p&gt;Seu aplicativo executa a função, devolve o resultado ao modelo e continua o fluxo.&lt;/p&gt;

&lt;p&gt;O ciclo é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Envie &lt;code&gt;messages&lt;/code&gt; e o array &lt;code&gt;tools&lt;/code&gt;, com cada ferramenta descrita em JSON Schema.&lt;/li&gt;
&lt;li&gt;O modelo retorna &lt;code&gt;tool_calls&lt;/code&gt; e &lt;code&gt;finish_reason: "tool_calls"&lt;/code&gt; quando precisa de uma ferramenta.&lt;/li&gt;
&lt;li&gt;Analise os argumentos e execute a função no seu backend.&lt;/li&gt;
&lt;li&gt;Adicione o resultado como uma mensagem com &lt;code&gt;role: "tool"&lt;/code&gt;, vinculada ao ID da chamada.&lt;/li&gt;
&lt;li&gt;Repita até o modelo retornar uma resposta final sem &lt;code&gt;tool_calls&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Se você já usou &lt;a href="https://apidog.com/pt/blog/openai-function-calling?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;chamada de função da OpenAI&lt;/a&gt;, o formato é o mesmo. Em muitos casos, basta alterar a URL base e o nome do modelo. Os &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentos oficiais da DeepSeek&lt;/a&gt; também descrevem um endpoint de Mensagens compatível com Anthropic e uma API de Respostas, mas este artigo usa a interface compatível com OpenAI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 1: configure o cliente
&lt;/h2&gt;

&lt;p&gt;Instale o SDK e defina sua chave:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;openai
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure o cliente apontando para a API da DeepSeek:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.deepseek.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os exemplos usam &lt;code&gt;model="deepseek-v4-pro"&lt;/code&gt;, que se refere à compilação GA DeepSeek-V4-Pro-0813.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 2: defina um esquema de ferramenta
&lt;/h2&gt;

&lt;p&gt;Vamos criar um agente de suporte para uma loja online. A primeira ferramenta consulta pedidos.&lt;/p&gt;

&lt;p&gt;Uma definição de ferramenta contém:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Um nome estável para a função.&lt;/li&gt;
&lt;li&gt;Uma descrição clara de quando ela deve ser usada.&lt;/li&gt;
&lt;li&gt;Um JSON Schema para validar os parâmetros.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Busca um pedido de cliente pelo ID. Retorna status, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;transportadora, código de rastreio e previsão de entrega. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Use esta ferramenta quando o usuário perguntar onde está &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;um pedido ou qual é seu status.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;order_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ID do pedido no formato &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ORD-10442&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;order_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A descrição influencia diretamente a decisão do modelo. Se ela for vaga, o modelo pode ignorar a ferramenta ou selecionar uma função incorreta.&lt;/p&gt;

&lt;p&gt;Agora implemente a função local. Neste exemplo, ela usa dados simulados; em produção, substitua-a pela chamada ao seu serviço de pedidos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Substitua pelo seu serviço real de pedidos.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;fake_db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ORD-10442&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;shipped&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;carrier&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DHL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tracking_number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;4281337005&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;estimated_delivery&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2026-08-15&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ORD-10587&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;processing&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;estimated_ship_date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2026-08-14&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;fake_db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ID de pedido desconhecido: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Passo 3: faça sua primeira chamada de ferramenta
&lt;/h2&gt;

&lt;p&gt;Envie uma pergunta que exige consulta ao sistema de pedidos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Você é um agente de suporte de uma loja online.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Onde está meu pedido ORD-10442?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# get_order
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# {"order_id": "ORD-10442"}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em vez de inventar uma resposta, o modelo solicita que seu código execute &lt;code&gt;get_order&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Um payload de resposta típico é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"chatcmpl-8f3a1c"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"chat.completion"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek-v4-pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"choices"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"index"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tool_calls"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"call_0_f1c29a44"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_order"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;order_id&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;ORD-10442&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"finish_reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tool_calls"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"usage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;312&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"completion_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"total_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;336&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt_cache_hit_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt_cache_miss_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;312&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Três detalhes são essenciais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;finish_reason&lt;/code&gt; igual a &lt;code&gt;"tool_calls"&lt;/code&gt; indica que você deve executar ferramentas.&lt;/li&gt;
&lt;li&gt;Cada chamada tem um &lt;code&gt;id&lt;/code&gt; exclusivo, que precisa ser retornado em &lt;code&gt;tool_call_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;arguments&lt;/code&gt; é uma string JSON. Faça o parsing e valide o conteúdo antes de executar qualquer operação.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Passo 4: execute a função e retorne o resultado
&lt;/h2&gt;

&lt;p&gt;Adicione ao histórico a mensagem do assistente que contém &lt;code&gt;tool_calls&lt;/code&gt;. Em seguida, adicione uma mensagem &lt;code&gt;tool&lt;/code&gt; com o resultado da execução.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;tool_call&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool_call_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="n"&gt;final&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;final&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Seu pedido ORD-10442 foi enviado pela DHL e deve chegar
# em 15 de agosto de 2026. Código de rastreio: 4281337005.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O vínculo pelo &lt;code&gt;tool_call_id&lt;/code&gt; é obrigatório: para cada item em &lt;code&gt;tool_calls&lt;/code&gt;, envie uma mensagem &lt;code&gt;tool&lt;/code&gt; correspondente antes da próxima chamada ao modelo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 5: implemente o ciclo completo do agente
&lt;/h2&gt;

&lt;p&gt;Agentes reais encadeiam chamadas: consultar um pedido, buscar uma política de reembolso, verificar estoque e redigir uma resposta. O padrão é sempre o mesmo: chamar o modelo, executar as ferramentas solicitadas e repetir até obter uma resposta normal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;TOOLS_BY_NAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;get_order&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_rounds&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Executa o agente até obter uma resposta final ou atingir o limite.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_rounds&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;fn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TOOLS_BY_NAME&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;fn&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Ferramenta desconhecida: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;)&lt;/span&gt;

                &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;

            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool_call_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="p"&gt;})&lt;/span&gt;

    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;RuntimeError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;O agente não terminou após &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;max_rounds&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; rodadas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O limite &lt;code&gt;max_rounds&lt;/code&gt; é uma proteção operacional. Ele evita que um modelo preso em chamadas repetidas gere custos e execuções indefinidas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chamadas de ferramenta paralelas
&lt;/h2&gt;

&lt;p&gt;Para uma pergunta como “compare o status de &lt;code&gt;ORD-10442&lt;/code&gt; e &lt;code&gt;ORD-10587&lt;/code&gt;”, o V4 Pro pode retornar várias chamadas em uma única resposta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"tool_calls"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"call_0_a7d1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_order"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;order_id&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;ORD-10442&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"call_1_b3e9"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"function"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_order"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;order_id&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;ORD-10587&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O loop anterior já suporta esse caso: ele cria uma mensagem &lt;code&gt;tool&lt;/code&gt; para cada &lt;code&gt;tool_call&lt;/code&gt;. Se suas ferramentas forem independentes, você pode executar o lote concorrentemente com &lt;code&gt;asyncio&lt;/code&gt;, um pool de threads ou sua fila de jobs.&lt;/p&gt;

&lt;p&gt;Isso difere da &lt;a href="https://apidog.com/pt/blog/gpt-5-6-programmatic-tool-calling?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;chamada de ferramenta programática do GPT-5.6&lt;/a&gt;, em que o modelo escreve código de orquestração em um sandbox. No modelo da DeepSeek, a execução continua sob controle do seu runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modo de raciocínio (&lt;em&gt;thinking mode&lt;/em&gt;) e ferramentas
&lt;/h2&gt;

&lt;p&gt;O V4 Pro oferece três modos de raciocínio. Você pode usar mais esforço de raciocínio em rodadas de planejamento e ignorá-lo em consultas rotineiras. Consulte os &lt;a href="https://api-docs.deepseek.com" rel="noopener noreferrer"&gt;documentos oficiais&lt;/a&gt; para os nomes e padrões dos modos.&lt;/p&gt;

&lt;p&gt;Com o raciocínio ativado, a API retorna &lt;code&gt;reasoning_content&lt;/code&gt; junto com &lt;code&gt;tool_calls&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;thinking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enabled&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reasoning_content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O rastreamento pode ajudar a identificar por que o modelo escolheu uma ferramenta ou interpretou um parâmetro de forma incorreta.&lt;/p&gt;

&lt;p&gt;Antes de adicionar a mensagem do assistente ao histórico, remova &lt;code&gt;reasoning_content&lt;/code&gt; quando não precisar preservá-lo. Reserve o raciocínio para etapas de planejamento, pois ele é cobrado como saída a US$ 0,87/M tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tratamento de erros: quando o modelo erra uma chamada
&lt;/h2&gt;

&lt;p&gt;Chamadas malformadas são raras, mas precisam ser tratadas. Não interrompa o agente por causa de um JSON inválido ou de parâmetros fora das regras de negócio. Retorne o erro como resultado da ferramenta para que o modelo possa corrigir a chamada na próxima rodada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;jsonschema&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ValidationError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;validate&lt;/span&gt;

&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;instance&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;except &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JSONDecodeError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ValidationError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Argumentos inválidos: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hint&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Chame get_order novamente usando um order_id no formato &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="sh"&gt;"'&lt;/span&gt;&lt;span class="s"&gt;ORD-10442&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O campo &lt;code&gt;hint&lt;/code&gt; torna a correção explícita e costuma ser suficiente para o modelo tentar novamente com argumentos válidos.&lt;/p&gt;

&lt;p&gt;Trate erros de ferramenta também como eventos de segurança. Um modelo induzido a chamar &lt;code&gt;delete_order&lt;/code&gt; com argumentos maliciosos é tão perigoso quanto as credenciais disponíveis para essa ferramenta. Use &lt;a href="https://apidog.com/pt/blog/ai-agent-api-key-least-privilege?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;chaves de API com o menor privilégio para agentes de IA&lt;/a&gt; e limite o escopo de cada integração.&lt;/p&gt;

&lt;h2&gt;
  
  
  Teste e depure chamadas de ferramenta com Apidog antes de lançar
&lt;/h2&gt;

&lt;p&gt;Cada ferramenta é um invólucro em torno de uma API, e o modelo passa a ser um consumidor dessa API. Se o endpoint for ambíguo, inconsistente ou retornar erros difíceis de interpretar, o agente herdará esse problema.&lt;/p&gt;

&lt;p&gt;Use o &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para validar o fluxo antes de conectar o agente à produção:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Projete a API de suporte primeiro.&lt;/strong&gt; Defina &lt;code&gt;GET /orders/{order_id}&lt;/code&gt; no designer visual do Apidog. Mantenha o JSON Schema da ferramenta alinhado à especificação da API para evitar divergências.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simule antes de o backend existir.&lt;/strong&gt; O mock inteligente do Apidog pode gerar respostas realistas a partir do esquema, permitindo testar &lt;code&gt;get_order&lt;/code&gt; enquanto o serviço real ainda está em desenvolvimento.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspecione payloads brutos.&lt;/strong&gt; Envie o mesmo corpo com &lt;code&gt;messages&lt;/code&gt; e &lt;code&gt;tools&lt;/code&gt; para &lt;code&gt;https://api.deepseek.com&lt;/code&gt; pelo Apidog. Inspecione o JSON de &lt;code&gt;tool_calls&lt;/code&gt; para identificar propriedades aninhadas incorretamente e argumentos serializados duas vezes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transforme conversas em cenários de teste.&lt;/strong&gt; Valide &lt;code&gt;finish_reason&lt;/code&gt;, nomes de ferramentas e formatos de argumentos. Execute a suíte a cada alteração de esquema. Como o comportamento depende do formato das ferramentas, uma regressão baseada nos seus cenários reais é mais útil que benchmarks genéricos.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Veja também &lt;a href="https://apidog.com/pt/blog/ai-agent-apidog-test-harness?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como conectar um agente de IA a uma estrutura de teste Apidog&lt;/a&gt; para um padrão mais aprofundado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Baixe o Apidog&lt;/a&gt; gratuitamente para acompanhar. O servidor de mock e os cenários de teste estão incluídos na camada gratuita.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quanto custam os ciclos de agente — e por que o cache decide isso
&lt;/h2&gt;

&lt;p&gt;Um agente relê o histórico inteiro a cada rodada. Na décima rodada, o prompt de sistema, as definições de ferramentas e os resultados anteriores voltam a fazer parte da entrada.&lt;/p&gt;

&lt;p&gt;O cache de prefixo automático do V4 Pro reduz esse custo porque a entrada de cada rodada tende a ser igual à rodada anterior, acrescida de novas mensagens. Assim, a maior parte do prefixo pode ser cobrada a US$ 0,003625/M tokens, em vez de US$ 0,435/M tokens.&lt;/p&gt;

&lt;p&gt;Reler uma conversa de 100K tokens custa aproximadamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sem cache:&lt;/strong&gt; US$ 0,0435&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Com cache:&lt;/strong&gt; US$ 0,0004&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitore &lt;code&gt;prompt_cache_hit_tokens&lt;/code&gt; e &lt;code&gt;prompt_cache_miss_tokens&lt;/code&gt; no bloco &lt;code&gt;usage&lt;/code&gt; para observar a taxa de acerto real.&lt;/p&gt;

&lt;p&gt;Para manter o cache eficiente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Não altere mensagens já enviadas.&lt;/li&gt;
&lt;li&gt;Mantenha o array &lt;code&gt;tools&lt;/code&gt; estável entre as rodadas.&lt;/li&gt;
&lt;li&gt;Evite reordenar ferramentas ou mudar descrições durante uma conversa.&lt;/li&gt;
&lt;li&gt;Serialize os schemas de forma consistente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nosso guia sobre &lt;a href="https://apidog.com/pt/blog/what-is-prompt-caching?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;o que é cache de prompt&lt;/a&gt; cobre a mecânica em mais detalhes.&lt;/p&gt;

&lt;p&gt;Embora &lt;code&gt;deepseek-v4-flash&lt;/code&gt; a US$ 0,14/US$ 0,28 possa parecer atraente para roteamento de ferramenta de uso único, ele regride em ciclos com mais de 10 chamadas encadeadas. Para agentes com múltiplas etapas, o Pro é a opção mais segura.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  As definições de ferramentas custam tokens?
&lt;/h3&gt;

&lt;p&gt;Sim. O array &lt;code&gt;tools&lt;/code&gt; faz parte da entrada de cada solicitação. Mantenha-o estável para que ele entre no prefixo em cache após a primeira rodada e seja cobrado pela taxa de acerto de cache.&lt;/p&gt;

&lt;h3&gt;
  
  
  Posso combinar chamada de função com saídas estruturadas?
&lt;/h3&gt;

&lt;p&gt;Sim. Um padrão comum é:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ferramentas buscam dados intermediários.&lt;/li&gt;
&lt;li&gt;O modelo processa esses dados.&lt;/li&gt;
&lt;li&gt;Um esquema de saída estruturado formata a resposta final.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Assim, seu código downstream recebe JSON previsível sem precisar analisar texto livre.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A chamada de função no DeepSeek V4 Pro é simples de implementar: defina schemas compatíveis com OpenAI, processe &lt;code&gt;tool_calls&lt;/code&gt; e devolva resultados em mensagens &lt;code&gt;tool&lt;/code&gt; vinculadas pelo ID.&lt;/p&gt;

&lt;p&gt;O loop do Passo 5 é a base da arquitetura. O ponto crítico não é apenas o código: são os schemas, a validação, os limites de execução, as permissões das credenciais e os testes de regressão.&lt;/p&gt;

&lt;p&gt;Projete as APIs de suporte de forma deliberada, simule endpoints cedo e mantenha cenários de teste para as chamadas reais do seu agente no &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;. Isso reduz o risco de uma alteração de esquema quebrar silenciosamente o fluxo em produção.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok 4.6 vs GPT-5.6 vs Claude Fable 5: Qual Modelo Escolher para Desenvolvedores API</title>
      <dc:creator>Lucas</dc:creator>
      <pubDate>Thu, 13 Aug 2026 08:31:45 +0000</pubDate>
      <link>https://dev.to/lucas_ferreira/grok-46-vs-gpt-56-vs-claude-fable-5-qual-modelo-escolher-para-desenvolvedores-api-3cnn</link>
      <guid>https://dev.to/lucas_ferreira/grok-46-vs-gpt-56-vs-claude-fable-5-qual-modelo-escolher-para-desenvolvedores-api-3cnn</guid>
      <description>&lt;p&gt;O Grok 4.6 foi lançado em 12 de agosto com uma proposta que muda a comparação entre modelos de fronteira: ele empata com o GPT-5.6 Sol no Índice de Inteligência Artificial, mas custa US$ 6 por milhão de tokens de saída, contra US$ 30. Muitos comparativos ainda usam o Grok 4.5, que estava distante da fronteira em capacidade. Com o 4.6, o preço passou a ser um fator relevante na decisão.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Experimente o Apidog hoje&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;A resposta curta é: o GPT-5.6 Sol continua sendo a escolha mais forte para agentes de codificação em escala de repositório; o Claude Fable 5 lidera, por pouco, em trabalho autônomo de longa duração; e o Grok 4.6 se tornou a opção de melhor custo-benefício, próxima o suficiente em capacidade para exigir uma justificativa clara para os preços dos concorrentes. A escolha depende da sua carga de trabalho. Abaixo estão os benchmarks, as diferenças de API e um método reproduzível para testar os três modelos na sua própria stack. Para executar esse teste, o &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; permite acessar as três APIs lado a lado em um único workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Índice de Inteligência:&lt;/strong&gt; Claude Fable 5 lidera com 62; Grok 4.6 e GPT-5.6 Sol empatam com 61.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preço de saída por 1M de tokens:&lt;/strong&gt; Grok 4.6 custa US$ 6; Claude Opus 4.8, US$ 25; GPT-5.6 Sol, US$ 30.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Janela de contexto:&lt;/strong&gt; GPT-5.6 Sol tem 1,05M de tokens; Claude Fable 5, 1M; Grok 4.6, 500K.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codificação:&lt;/strong&gt; Sol Max lidera o DeepSWE (73,0% vs. 65,9% do Grok); Fable 5 Max lidera o FrontierCode (63,6% vs. 61,3%).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentes:&lt;/strong&gt; Fable 5 Max lidera o APEX-Agents com 59,2%; Grok 4.6 (57,5%) supera Sol Max (56,7%).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custo por tarefa concluída:&lt;/strong&gt; a Artificial Analysis mediu US$ 0,84 para o Grok 4.6, o menor valor entre os modelos de fronteira.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decisão prática:&lt;/strong&gt; não escolha apenas por benchmark. Execute um teste com 20 prompts reais da sua aplicação.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Especificações e preços lado a lado
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Grok 4.6&lt;/th&gt;
&lt;th&gt;GPT-5.6 Sol&lt;/th&gt;
&lt;th&gt;Claude Fable 5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Desenvolvedor&lt;/td&gt;
&lt;td&gt;xAI&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Índice de Inteligência&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Janela de contexto&lt;/td&gt;
&lt;td&gt;500K&lt;/td&gt;
&lt;td&gt;1,05M&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preço de entrada / 1M&lt;/td&gt;
&lt;td&gt;US$ 2&lt;/td&gt;
&lt;td&gt;US$ 12&lt;/td&gt;
&lt;td&gt;US$ 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preço de saída / 1M&lt;/td&gt;
&lt;td&gt;US$ 6&lt;/td&gt;
&lt;td&gt;US$ 30&lt;/td&gt;
&lt;td&gt;US$ 25*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variante rápida/premium&lt;/td&gt;
&lt;td&gt;2x o preço&lt;/td&gt;
&lt;td&gt;Nível Sol Max&lt;/td&gt;
&lt;td&gt;Nível Fable 5 Max&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estilo de API&lt;/td&gt;
&lt;td&gt;Compatível com OpenAI&lt;/td&gt;
&lt;td&gt;Nativo OpenAI&lt;/td&gt;
&lt;td&gt;Anthropic Messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Corte de conhecimento&lt;/td&gt;
&lt;td&gt;Fev. de 2026&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;* Os preços do Claude exibidos são do Opus 4.8. Os preços do nível Fable 5 variam conforme a configuração de esforço. Consulte o &lt;a href="https://apidog.com/pt/blog/gpt-5-6-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guia de preços do GPT-5.6&lt;/a&gt; e a &lt;a href="https://apidog.com/pt/blog/cut-claude-api-bill?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;análise de redução de custos do Claude&lt;/a&gt; para ver as matrizes completas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faplyoofjyfvpk8fq90u0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faplyoofjyfvpk8fq90u0.png" alt="Comparação de preços e capacidades entre Grok 4.6, GPT-5.6 Sol e Claude Fable 5" width="800" height="713"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A diferença de preço é o ponto principal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Na entrada, o Grok cobra um sexto do preço do OpenAI.&lt;/li&gt;
&lt;li&gt;Na saída, cobra um quinto.&lt;/li&gt;
&lt;li&gt;Em agentes, onde uma tarefa pode executar dezenas de chamadas e gerar transcrições longas de ferramentas, essa diferença pode separar um agente de US$ 50/dia de um agente de US$ 250/dia.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benchmarks de codificação: Sol para profundidade, Grok para valor
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Grok 4.6&lt;/th&gt;
&lt;th&gt;GPT-5.6 Sol Max&lt;/th&gt;
&lt;th&gt;Claude Fable 5 Max&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE v1.1 — correções em escala de repositório&lt;/td&gt;
&lt;td&gt;65,9%&lt;/td&gt;
&lt;td&gt;73,0%&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FrontierCode v1.1 Estendido&lt;/td&gt;
&lt;td&gt;61,3%&lt;/td&gt;
&lt;td&gt;60,6%&lt;/td&gt;
&lt;td&gt;63,6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CursorBench v3.2&lt;/td&gt;
&lt;td&gt;69,9%&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;APEX-Agents&lt;/td&gt;
&lt;td&gt;57,5%&lt;/td&gt;
&lt;td&gt;56,7%&lt;/td&gt;
&lt;td&gt;59,2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench v2.1&lt;/td&gt;
&lt;td&gt;88,4%&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use esses números como um critério inicial de roteamento:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT-5.6 Sol Max para tarefas de maior impacto em repositórios.&lt;/strong&gt; A vantagem de 7 pontos no DeepSWE importa em correções complexas e navegação em grandes bases de código. Se o seu agente altera projetos existentes com pouca supervisão, o Sol é a escolha mais segura. Veja a &lt;a href="https://apidog.com/pt/blog/gpt-5-6-vs-claude-fable-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comparação entre GPT-5.6 Sol e Claude Fable 5&lt;/a&gt; para mais detalhes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Fable 5 para execução autônoma longa e consistente.&lt;/strong&gt; Ele lidera o índice composto, o FrontierCode e o APEX-Agents. Esse perfil é útil quando um erro no meio do fluxo pode invalidar uma hora de progresso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grok 4.6 como modelo padrão sensível a custo.&lt;/strong&gt; Ele lidera CursorBench e Terminal-Bench, permanece próximo nos demais benchmarks e custa uma fração dos concorrentes. Use-o para a maior parte do tráfego e escale apenas os casos difíceis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses são números de lançamento amplamente reportados pelos fornecedores. Os benchmarks de lançamento do Grok 4.5 &lt;a href="https://apidog.com/pt/blog/grok-4-5-benchmarks?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;exigiram leitura cuidadosa&lt;/a&gt;, e a mesma cautela vale para todos os modelos desta comparação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meça custo por tarefa, não apenas custo por token
&lt;/h2&gt;

&lt;p&gt;Preço por token não basta quando os modelos têm níveis diferentes de verbosidade, repetição e sucesso no uso de ferramentas.&lt;/p&gt;

&lt;p&gt;Um modelo barato que falha em uma execução de terminal pode gerar custos maiores de revisão, rerun e reparo do que a economia inicial de tokens. A métrica mais útil é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;custo por tarefa concluída = custo total das execuções / tarefas concluídas com sucesso
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na avaliação independente da Artificial Analysis, o Grok 4.6 teve média de &lt;strong&gt;US$ 0,84 por tarefa de agente&lt;/strong&gt;, o menor valor entre os modelos de fronteira. Isso foi influenciado não apenas pelo preço, mas também por um uso de tokens relativamente disciplinado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemplo de custo por tarefa
&lt;/h3&gt;

&lt;p&gt;Considere um agente de codificação que usa, em média:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;500K tokens de entrada por tarefa;&lt;/li&gt;
&lt;li&gt;100K tokens de saída por tarefa.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Custo de entrada&lt;/th&gt;
&lt;th&gt;Custo de saída&lt;/th&gt;
&lt;th&gt;Custo por tarefa&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Grok 4.6&lt;/td&gt;
&lt;td&gt;US$ 1,00&lt;/td&gt;
&lt;td&gt;US$ 0,60&lt;/td&gt;
&lt;td&gt;US$ 1,60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 4.8&lt;/td&gt;
&lt;td&gt;US$ 5,00&lt;/td&gt;
&lt;td&gt;US$ 2,50&lt;/td&gt;
&lt;td&gt;US$ 7,50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;US$ 6,00&lt;/td&gt;
&lt;td&gt;US$ 3,00&lt;/td&gt;
&lt;td&gt;US$ 9,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Em 1.000 tarefas mensais, o Grok pode economizar aproximadamente US$ 6.000 a US$ 7.400 em relação às alternativas, desde que a taxa de sucesso se mantenha na sua carga de trabalho.&lt;/p&gt;

&lt;p&gt;A condição é essencial: valide a qualidade antes de migrar o tráfego.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ergonomia da API: avalie o custo de integração
&lt;/h2&gt;

&lt;p&gt;Além de benchmark e preço, considere quanto trabalho será necessário para integrar, alternar e observar os modelos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grok 4.6
&lt;/h3&gt;

&lt;p&gt;O Grok 4.6 é compatível com o formato da OpenAI. Se o seu cliente já usa uma API no estilo OpenAI, normalmente basta trocar a URL base:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SUA_XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ele também está disponível no OpenRouter, Vercel e Cloudflare para usuários de gateways.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.6 Sol
&lt;/h3&gt;

&lt;p&gt;O GPT-5.6 Sol oferece o ecossistema mais amplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responses API;&lt;/li&gt;
&lt;li&gt;chamada programática de ferramentas;&lt;/li&gt;
&lt;li&gt;SDKs próprios;&lt;/li&gt;
&lt;li&gt;integrações de terceiros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consulte &lt;a href="https://apidog.com/pt/blog/how-to-use-gpt-5-6-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;como usar a API GPT-5.6&lt;/a&gt; para a estrutura de níveis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Fable 5
&lt;/h3&gt;

&lt;p&gt;O Claude Fable 5 usa a API Messages da Anthropic, com formato de requisição diferente. O modelo oferece boa confiabilidade no uso de ferramentas e um parâmetro de esforço que permite trocar custo por capacidade dentro do mesmo modelo.&lt;/p&gt;

&lt;p&gt;Na prática:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A migração entre &lt;strong&gt;Grok e OpenAI&lt;/strong&gt; tende a ter menos atrito.&lt;/li&gt;
&lt;li&gt;A migração para ou a partir da &lt;strong&gt;Anthropic&lt;/strong&gt; exige adaptação de payloads.&lt;/li&gt;
&lt;li&gt;Se você pretende rotear requisições entre provedores, isole o cliente de LLM atrás de uma interface própria.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;ModelProvider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;xai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;anthropic&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;LLMRequest&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;system&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ModelProvider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;LLMRequest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Normalize payloads and responses here.&lt;/span&gt;
  &lt;span class="c1"&gt;// Keep provider-specific code out of business logic.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Janelas de contexto: quando 500K é suficiente
&lt;/h2&gt;

&lt;p&gt;No papel, a janela de 1,05M de tokens do GPT-5.6 Sol é mais do que o dobro da janela de 500K do Grok 4.6. O Claude Fable 5 fica próximo, com 1M.&lt;/p&gt;

&lt;p&gt;Na prática, pergunte:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sua aplicação realmente precisa manter mais de 500K tokens úteis em uma única requisição?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Uma janela de 500K comporta aproximadamente 350.000 palavras: uma base de código inteira de um serviço médio, um ano de transcrições de suporte ou centenas de páginas de documentos legais.&lt;/p&gt;

&lt;p&gt;Casos que realmente podem exigir mais de 500K tokens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;análise de monorepo completo;&lt;/li&gt;
&lt;li&gt;transcrições muito longas de agentes em múltiplas sessões sem sumarização;&lt;/li&gt;
&lt;li&gt;processamento pontual de grandes conjuntos documentais.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mesmo nesses cenários, duas regras continuam válidas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A qualidade degrada quando o contexto enche.&lt;/strong&gt; Recuperar informação com 80% da janela ocupada tende a ser pior do que com 20%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entrada extensa aumenta rapidamente o custo.&lt;/strong&gt; Preencher a janela inteira do Sol custa cerca de US$ 12,60 por requisição no preço de tabela; preencher a do Grok custa cerca de US$ 1.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Se os seus prompts passam frequentemente de 400K tokens, a solução não é apenas escolher uma janela maior. Você precisa de uma estratégia de recuperação, cache e sumarização.&lt;/p&gt;

&lt;h2&gt;
  
  
  Corte de conhecimento e maturidade do ecossistema
&lt;/h2&gt;

&lt;p&gt;O Grok 4.6 tem corte de conhecimento em &lt;strong&gt;1º de fevereiro de 2026&lt;/strong&gt;, o mais recente dos três. Isso pode ajudar agentes de codificação que precisam reconhecer frameworks e bibliotecas em rápida evolução.&lt;/p&gt;

&lt;p&gt;Ainda assim, trate o conhecimento paramétrico como complemento. Uma stack de agentes robusta deve usar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;documentação versionada;&lt;/li&gt;
&lt;li&gt;busca semântica;&lt;/li&gt;
&lt;li&gt;RAG;&lt;/li&gt;
&lt;li&gt;ferramentas de consulta ao repositório;&lt;/li&gt;
&lt;li&gt;fontes externas controladas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ecossistema apresenta o cenário inverso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI&lt;/strong&gt; possui a superfície mais profunda de integrações de terceiros.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt; tem forte presença em frameworks de agentes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;xAI&lt;/strong&gt; se beneficia da compatibilidade com o formato da OpenAI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A compatibilidade da xAI reduz o esforço de adoção, especialmente para clientes que já usam chat completions. Porém, recursos como APIs de lote, camadas de cache e controles de uso granular são menos maduros do que os oferecidos pelos provedores incumbentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qual modelo usar para cada tarefa
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cenário&lt;/th&gt;
&lt;th&gt;Modelo recomendado&lt;/th&gt;
&lt;th&gt;Motivo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agente de codificação autônomo em escala de repositório&lt;/td&gt;
&lt;td&gt;GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;Liderança no DeepSWE e menor risco em tarefas complexas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trabalho de conhecimento de longa duração&lt;/td&gt;
&lt;td&gt;Claude Fable 5&lt;/td&gt;
&lt;td&gt;Melhor índice composto e melhor resultado em agentes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alto volume e sensibilidade a custo&lt;/td&gt;
&lt;td&gt;Grok 4.6&lt;/td&gt;
&lt;td&gt;Capacidade próxima da fronteira com custo muito menor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Roteador de modelos&lt;/td&gt;
&lt;td&gt;Grok 4.6 como padrão; Sol/Fable para escalonamento&lt;/td&gt;
&lt;td&gt;Reduz custo sem sacrificar os casos mais difíceis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codificação interativa em IDE&lt;/td&gt;
&lt;td&gt;Grok 4.6&lt;/td&gt;
&lt;td&gt;Liderança no CursorBench e variante rápida 2x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sessões de IDE baseadas em Cursor&lt;/td&gt;
&lt;td&gt;Grok 4.6&lt;/td&gt;
&lt;td&gt;Foi treinado após &lt;a href="https://apidog.com/pt/blog/grok-4-5-cursor-training-data?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;treinamento em sessões reais do Cursor&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Uma política simples de roteamento pode começar assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Envie todas as tarefas para Grok 4.6.
2. Avalie risco, tamanho do diff, falhas de ferramenta e confiança.
3. Escale tarefas críticas ou falhas repetidas para GPT-5.6 Sol ou Claude Fable 5.
4. Registre custo, latência, sucesso e necessidade de intervenção humana.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Teste os três modelos na sua stack em uma tarde
&lt;/h2&gt;

&lt;p&gt;Benchmarks medem médias. O que importa é o comportamento nos prompts, ferramentas, esquemas e repositórios que sua equipe usa todos os dias.&lt;/p&gt;

&lt;p&gt;Use o &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; para criar um teste comparativo reproduzível.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft4nunh8k7j2cqe322c36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft4nunh8k7j2cqe322c36.png" alt="Configuração de ambientes para comparar APIs de modelos no Apidog" width="799" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Crie um projeto com três ambientes
&lt;/h3&gt;

&lt;p&gt;Configure um ambiente para cada provedor:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Ambiente&lt;/th&gt;
&lt;th&gt;Base URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;xAI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://api.x.ai/v1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;URL da API OpenAI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;URL da API Anthropic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Adicione a autenticação de cada provedor como variável de ambiente. Assim, a mesma coleção pode alternar entre fornecedores usando um menu suspenso.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Colete 20 prompts reais
&lt;/h3&gt;

&lt;p&gt;Não use perguntas genéricas. Monte um conjunto com tarefas reais do produto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bugs reportados por usuários;&lt;/li&gt;
&lt;li&gt;solicitações reais de pull request;&lt;/li&gt;
&lt;li&gt;transformações de dados;&lt;/li&gt;
&lt;li&gt;chamadas de ferramenta;&lt;/li&gt;
&lt;li&gt;prompts que falharam anteriormente;&lt;/li&gt;
&lt;li&gt;pelo menos cinco casos conhecidos por serem difíceis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inclua o mesmo prompt de sistema, as mesmas ferramentas e os mesmos documentos de contexto para todos os modelos.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Defina critérios de sucesso antes da execução
&lt;/h3&gt;

&lt;p&gt;Crie asserções para os indicadores que realmente importam:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resposta válida;&lt;/li&gt;
&lt;li&gt;conformidade com JSON Schema;&lt;/li&gt;
&lt;li&gt;presença e estrutura correta da chamada de ferramenta;&lt;/li&gt;
&lt;li&gt;uso de tokens no objeto &lt;code&gt;usage&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;latência máxima;&lt;/li&gt;
&lt;li&gt;conteúdo esperado no resultado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para workloads com tool calling, valide explicitamente o JSON retornado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"create_pull_request"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Corrigir erro de validação"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"branch"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fix/validation-error"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Modelos falham nesse ponto com mais frequência do que em respostas textuais. Uma resposta bem escrita não é suficiente se a chamada de ferramenta não pode ser analisada pelo seu runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Execute cada prompt três vezes por modelo
&lt;/h3&gt;

&lt;p&gt;Saídas de LLM variam. Uma única execução pode esconder instabilidade.&lt;/p&gt;

&lt;p&gt;Para cada combinação de prompt e modelo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;20 prompts × 3 execuções × 3 modelos = 180 execuções
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exporte os resultados e registre:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Métrica&lt;/th&gt;
&lt;th&gt;Como calcular&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Taxa de sucesso&lt;/td&gt;
&lt;td&gt;tarefas concluídas / tarefas executadas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custo médio por execução&lt;/td&gt;
&lt;td&gt;custo total / execuções&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custo por sucesso&lt;/td&gt;
&lt;td&gt;custo total / tarefas concluídas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latência p50 e p95&lt;/td&gt;
&lt;td&gt;distribuição de tempo de resposta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Taxa de erro de ferramenta&lt;/td&gt;
&lt;td&gt;chamadas inválidas / chamadas totais&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intervenção humana&lt;/td&gt;
&lt;td&gt;tarefas que exigiram correção manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A métrica principal deve ser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;custo por sucesso = custo total do modelo / tarefas concluídas com sucesso
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Preserve o conjunto de avaliação
&lt;/h3&gt;

&lt;p&gt;Mantenha os prompts, critérios e resultados versionados no repositório.&lt;/p&gt;

&lt;p&gt;Quando uma nova versão de modelo for lançada:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;execute o mesmo conjunto;&lt;/li&gt;
&lt;li&gt;compare com o baseline;&lt;/li&gt;
&lt;li&gt;valide regressões;&lt;/li&gt;
&lt;li&gt;atualize a política de roteamento.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A escolha de modelo passou a ser uma decisão trimestral. Equipes com um framework de avaliação pronto mudam semanas antes de equipes que decidem por demonstrações isoladas.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;O Grok 4.6 é melhor que o GPT-5.6 Sol?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Eles empatam no índice composto, com 61. O Sol lidera com clareza a codificação em escala de repositório no DeepSWE (73,0% vs. 65,9%). O Grok lidera CursorBench e Terminal-Bench e custa 5x menos na saída. A escolha depende de a sua carga se parecer mais com manutenção de repositório ou com uma sessão de IDE.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;O Grok 4.6 é melhor que o Claude Fable 5?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
O Fable 5 lidera o índice, o FrontierCode e o APEX-Agents, todos por pequena margem. A vantagem do Grok é o preço. Para trabalho autônomo crítico e orientado à precisão, Fable 5; para volume sensível a custo, Grok.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qual é o modelo de fronteira mais barato em 2026?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
O Grok 4.6, a US$ 2 por milhão de tokens de entrada e US$ 6 por milhão de tokens de saída, além da medição independente de US$ 0,84 por tarefa de agente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Devo migrar meu agente de produção para o Grok 4.6?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Não apenas com base em benchmarks. Execute o teste comparativo com a sua carga real. A diferença de preço só compensa se a taxa de sucesso se mantiver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Posso usar os três modelos com um único formato de API?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Em grande parte, sim. O Grok 4.6 é compatível com o formato de chat completions da OpenAI e pode compartilhar código cliente com o GPT-5.6. O Claude requer a API Messages da Anthropic, ou um gateway como OpenRouter para normalizar as interfaces.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A janela de contexto menor do Grok 4.6 importa?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Para a maioria das cargas de trabalho de agentes e chat, não. Os 500K tokens estão muito acima do uso típico, e todos os modelos degradam perto do limite. A diferença importa para monorepos inteiros ou conjuntos documentais muito grandes processados em uma única chamada.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
