Um agente de IA Claude que conseguia preencher todos os campos de texto de um formulário web parou subitamente na etapa final ao tentar anexar três imagens, expondo uma limitação não documentada no gerenciamento de upload de arquivos do Desktop App. A falha é importante porque transforma uma automação de ponta a ponta aparentemente completa em uma transferência manual, forçando os desenvolvedores a repensarem como constroem fluxos de trabalho baseados em IA.
Por que o problema surge agora
Os agentes Claude operam em três ambientes: uma interface de linha de comando (CLI), uma extensão do Visual Studio Code ou o Desktop App independente. Na CLI, o agente lê um arquivo de um diretório adicionado à sessão e faz o upload sem problemas. O Desktop App não replica esse comportamento. Mesmo quando o agente escreve um arquivo em sua própria pasta temporária, o aplicativo rejeita o upload, citando uma definição interna de arquivos “compartilhados” que nunca aparece na documentação pública.
A discrepância surgiu quando um usuário criou uma automação que preenchia um formulário, clicava em “salvar rascunho” e, em seguida, tentava anexar três imagens. Os campos de texto foram preenchidos perfeitamente, mas a etapa de upload retornava um erro todas as vezes.
O que os desenvolvedores tentaram
- Adicionaram os arquivos à pasta da sessão que o aplicativo cria.
- Usaram a ferramenta
directory-connectque permite ao agente visualizar uma pasta do host. - Anexaram as imagens diretamente na janela de chat.
- Criaram uma pasta de upload manual e direcionaram o formulário para ela.
Todas essas abordagens produziram o mesmo erro de rejeição. A janela do navegador que exibe o diálogo de seleção de arquivos funciona em modo de apenas leitura para automação de desktop. O agente consegue ver o diálogo, mas não pode clicar dentro dele ou digitar um caminho, portanto, truques de automação de interface de usuário (UI) falham.
Um “backdoor” frágil
O único método que funcionou utilizou a área de transferência do Windows:
- Um script PowerShell copia o arquivo de destino para a área de transferência.
- O agente envia o comando de teclas Ctrl + V.
- O navegador recebe o evento de colagem e faz o upload do arquivo.
Esse hack funciona, mas limpa a área de transferência do usuário, é limitado ao Windows e pode quebrar com qualquer atualização do Desktop App. Não é uma solução sustentável para pipelines de produção.
O que a limitação realmente significa
O problema central não é um bug de software; é uma superfície não documentada que trata as permissões de arquivo como uma propriedade do aplicativo host, em vez de uma simples flag do sistema de arquivos. Na CLI, o agente herda o acesso de leitura do processo, portanto, qualquer arquivo que a sessão consiga ver pode ser enviado. No Desktop App, o runtime isola a visão do sistema de arquivos do agente, permitindo apenas arquivos que atendam aos critérios ocultos de “compartilhamento”.
Como a restrição está integrada à arquitetura do Desktop App, as soluções alternativas que dependem de manipulação de UI ou pastas temporárias não tiveram sucesso.
Caminhos confiáveis a seguir
Se um fluxo de trabalho exigir uploads de arquivos, os desenvolvedores têm três opções confiáveis:
- Executar o agente a partir da CLI. Este ambiente respeita as permissões do sistema de arquivos da sessão e realiza o upload sem etapas extras.
- Usar a extensão do VS Code. A extensão espelha o modelo de permissões da CLI, permitindo que os agentes leiam e façam upload de arquivos que o editor consegue ver.
- Deixar a etapa de upload para um humano. Uma ação manual rápida de dois minutos é melhor do que passar horas projetando uma solução alternativa frágil.
Escolher as duas primeiras opções significa executar a automação fora do Desktop App.
Resumo
A capacidade de upload de arquivos em agentes de IA Claude não é universal entre os runtimes; ela depende de como o agente é iniciado. Para uma automação confiável, trate a CLI e a extensão do VS Code como os únicos ambientes que respeitam de forma consistente as permissões do sistema de arquivos. Ao usar o Desktop App, planeje uma transferência manual ou aceite um hack de área de transferência frágil. Ignorar essa distinção pode transformar um script de ponta a ponta fluido em um exercício de depuração dispendioso.
