Por que agentes de IA não deveriam clicar na tela: como construir um plano de controle local para um app de desktop
Automação de tela é frágil e dá acesso demais. O KwaFlux deixa agentes de IA usarem o app com ferramentas tipadas e trabalhos que o próprio app monta.
Resposta rápida
O caminho mais tentador para um agente de IA usar um app de desktop é deixá-lo olhar a tela e clicar, como uma pessoa faria. Para um app de vídeo, esse é o design errado. Os cliques são frágeis, o agente alcança tudo o que um mouse alcança, e “ele clicou em Exportar” não prova que a exportação saiu certa.
- Deixar um agente de IA operar um app de desktop olhando capturas de tela e clicando funciona em demonstrações, mas é frágil, lento e dá ao agente tudo o que um mouse consegue fazer.
- O KwaFlux oferece, em vez disso, um plano de controle estruturado: ferramentas MCP tipadas, poucos parâmetros por chamada e verificações no app antes de qualquer coisa entrar na fila.
- O agente não escreve o trabalho completo. O worker do KwaFlux o reconstrói com o mesmo construtor de trabalhos que o app usa quando você clica em Exportar.
- As regras compartilhadas com o app são geradas, não copiadas, e os testes falham se as duas versões se afastarem.
O KwaFlux segue pelo outro caminho: um plano de controle local que aceita pedidos tipados, confere cada um e monta o trabalho real dentro do app.
Neste guia, você vai ver por que a automação de tela não dá conta desse trabalho, como as camadas do KwaFlux se encaixam, por que o agente só envia parâmetros pequenos e o que esse design deliberadamente não consegue fazer.
Conteúdo
- O que é um plano de controle para agentes de IA?
- Automação de tela vs. plano de controle
- As camadas, do chat ao worker
- Parâmetros pequenos, reconstruídos pelo app
- Uma única fonte de regras para o app e o agente
- O que o plano de controle verifica antes de pôr na fila
- Resultados em que o agente pode confiar
- Do que esse design abre mão
- Perguntas frequentes
O que é um plano de controle para agentes de IA?
Um plano de controle para agentes de IA é uma interface programática estreita que permite a um agente pedir a um aplicativo coisas específicas, enquanto o aplicativo mantém a autoridade para verificar, recusar e executar cada pedido.
No KwaFlux, a interface é um conjunto de ferramentas MCP, e a autoridade fica no app de desktop em execução. O agente pede; o KwaFlux decide.
Automação de tela vs. plano de controle
Agentes de computer use que trabalham a partir de capturas de tela são um avanço real e, para apps sem API, são a única opção. A própria documentação da Anthropic sobre a ferramenta de computer use é franca quanto aos limites. Ela observa que o modelo “às vezes age como se suas ações tivessem dado certo sem verificar explicitamente os resultados”, que menus suspensos e barras de rolagem “podem ser complicados” de operar com o mouse e que instruções em páginas da web ou em imagens “podem se sobrepor às suas instruções”. E recomenda rodar o computer use em “uma máquina virtual ou contêiner dedicado com privilégios mínimos”.
Para um app de vídeo no seu próprio computador, como o KwaFlux com o Reparo de qualidade e as ferramentas de conversão, esses limites pesam:
| Pergunta | Automação de tela | Plano de controle do KwaFlux |
|---|---|---|
| Como o agente escolhe as configurações? | Lê rótulos em uma captura de tela e clica | Preenche campos tipados cujos valores permitidos vêm da configuração do próprio app |
| O que acontece depois de um redesign da interface? | Os cliques podem cair no lugar errado | As ferramentas continuam funcionando; o contrato são os parâmetros, não o layout |
| O que o agente alcança? | Tudo o que estiver visível: configurações, páginas da conta, outros apps | Só as ferramentas oferecidas, cada uma verificada pelo app |
| Como ele sabe que um trabalho deu certo? | Olha a tela de novo | Recebe um ID de tarefa, progresso ao vivo e um resultado estruturado |
| Ele consegue acompanhar sozinho uma exportação longa? | Precisa continuar tirando capturas de tela | Aguarda a tarefa com atualizações de progresso, e dá para cancelar |
| Custo de contexto | Cada captura de tela custa cerca de 1.000 a 1.800 tokens de entrada, segundo a documentação da Anthropic | A lista inteira de ferramentas tem cerca de 51 KB de texto, carregada uma vez |
A última linha não é uma disputa de números exatos. A questão é que uma chamada estruturada custa o mesmo se a exportação levar dez segundos ou dez minutos, enquanto um agente que observa a tela paga por cada olhada.
As camadas, do chat ao worker
Um pedido passa por seis camadas. Cada camada tem uma função, e cada uma pode dizer não.

- O host de IA (Cursor, Claude, Codex e outros) inicia o servidor KwaFlux MCP como um processo local e conversa com ele pela entrada e saída padrão.
- O processo MCP transforma as chamadas de ferramenta em pedidos pequenos e tipados e verifica os caminhos do mesmo jeito que o app, antes de tocar em qualquer arquivo.
- O canal local liga o processo MCP ao app em execução: um pipe nomeado da sua conta de usuário no Windows, um socket que só a sua conta pode abrir no Mac. Toda conexão começa com um handshake de token. O post sobre o canal local trata dessa camada.
- O plano de controle no app verifica o pedido: o caminho é local e absoluto, o usuário fez login com o plano certo, a tarefa pertence a este agente, o agente está dentro do limite de taxa, a configuração de download permite?
- O agendador põe o trabalho na fila ao lado dos que você iniciou na janela, para que compartilhem a mesma GPU e a mesma lista de tarefas.
- O worker monta o trabalho completo, verifica um lease assinado para recursos pagos, executa o motor e grava o resultado ao lado do arquivo de origem.
Parâmetros pequenos, reconstruídos pelo app
Esta é a decisão que define todo o resto: o agente não envia uma descrição completa do trabalho.
Um trabalho de exportação do KwaFlux tem muitos campos: configurações do decodificador, escolha de modelos, tamanhos de bloco, opções do codificador, tratamento de cor e mais. Se o agente pudesse enviar essa estrutura inteira, duas coisas dariam errado. O modelo estaria inventando valores que não tem como verificar, e qualquer pessoa capaz de manipular o modelo, por um nome de arquivo ou uma página da web envenenados, alcançaria todos os parâmetros do motor.
Por isso, cada ferramenta recebe só os poucos campos que uma pessoa escolheria: o arquivo de entrada, o módulo, um tamanho de saída da lista do app, um nível de qualidade, um trecho de tempo para um GIF. Depois o worker monta o trabalho completo com o mesmo construtor de trabalhos que o app usa quando você clica em Exportar e o reduz ao contrato de parâmetros que o motor aceita em tempo de execução.
O resultado é que um trabalho iniciado pelo agente e um trabalho iniciado com cliques passam pelo mesmo código do construtor em diante. Descrevemos isso como “as mesmas regras de parâmetros do app”, e não como “saída idêntica”, porque algumas ferramentas são mais restritas via MCP. O post sobre os recursos lista essas diferenças.
Uma única fonte de regras para o app e o agente
Duas cópias das mesmas regras acabam se afastando. O KwaFlux evita manter duas cópias:
- O catálogo de módulos que o MCP oferece, com a rota, as configurações e os valores permitidos de cada módulo, é gerado a partir do mesmo arquivo de configuração das telas do app. As variantes para foto vêm da seção de imagem desse mesmo arquivo.
- Cinco conjuntos de regras são traduzidos diretamente do código-fonte do app para o servidor MCP: os níveis de resolução de saída, a escolha de contêiner e codec do Compressor, os parâmetros de algoritmo da área de trabalho de áudio, a lista de vozes da Mudança de voz IA e uma regra de detecção.
- Um teste de divergência falha se a versão do app de qualquer uma dessas regras mudar e a versão MCP não tiver sido gerada de novo.
A mesma ideia mantém as descrições das ferramentas enxutas, como mostra o post sobre o design das ferramentas.
O que o plano de controle verifica antes de pôr na fila
A especificação do MCP diz que os servidores devem (“MUST”) validar todas as entradas das ferramentas, implementar controles de acesso adequados, limitar a taxa de invocações das ferramentas e sanitizar as saídas das ferramentas. No KwaFlux, essas verificações ficam no app, não no script MCP, para que outro cliente não consiga pulá-las:
| Verificação | Regra |
|---|---|
| Caminho | Precisa ser um caminho local absoluto; caminhos de rede são recusados antes de qualquer arquivo ser aberto |
| Saída | Gravada ao lado da origem; em caso de conflito de nome, vira name(1).ext em vez de sobrescrever |
| Login e plano | Recursos pagos exigem login e um plano, e o worker verifica um lease assinado. Veja recursos pagos em chamadas de ferramenta de IA |
| Propriedade | O agente só pode pausar, retomar, cancelar ou repetir as tarefas que ele mesmo enviou |
| Taxa | No máximo 10 trabalhos novos por minuto no total e 6 por conexão; até 8 conexões |
| Tamanho da mensagem | Cada mensagem tem limite de 64 KiB; conexões ociosas são fechadas depois de 5 minutos |
| Downloads | Desativados por padrão; podem exigir que você clique em um pop-up na área de trabalho |
| Interruptor geral | Uma configuração desliga todo o controle por agentes |
Resultados em que o agente pode confiar
Toda ferramenta do KwaFlux declara um esquema de saída, então o resultado é um dado estruturado que o host pode validar, e não um parágrafo que o modelo precisa interpretar. Quando o host passa um token de progresso, o KwaFlux envia notificações de progresso enquanto a tarefa roda. Quando o usuário interrompe o pedido no host, o KwaFlux para de esperar e o agente pode cancelar a tarefa.
Os resultados das tarefas só dizem “saída pronta” quando a tarefa realmente deu certo, e trazem o nome do arquivo de saída. Uma tarefa na fila ou com falha não afirma ter produzido nada.
Do que esse design abre mão
Um plano de controle só vai até onde vão as suas ferramentas. Nove recursos do KwaFlux exigem que alguém desenhe sobre o quadro, clique em um objeto ou pessoa, ou avalie uma prévia, como a remoção de objetos e a substituição do céu. Poderíamos ter deixado o agente adivinhar coordenadas ou aceitado uma descrição de trabalho bruta. A primeira opção dá resultados que ninguém consegue prever, com um recibo dizendo que deu certo. A segunda remove a barreira que torna o design seguro. Por isso, esses recursos ficam no app, e o agente é instruído a mandar o usuário para lá.
Isso é uma escolha de produto, não uma lacuna que pretendemos fechar afrouxando as regras.
Conclusão
Se um agente precisa olhar pixels para usar o seu app, você não tem como verificar o que ele está prestes a fazer. Um plano de controle inverte isso: o agente pede em uma linguagem estreita e tipada, e o app verifica, monta e executa o trabalho com o próprio código. No KwaFlux, é assim que uma exportação iniciada por um agente passa pelo mesmo construtor de trabalhos que uma exportação que você inicia clicando.
O servidor MCP local do KwaFlux permite que Codex, Claude, Cursor e outros apps MCP coloquem trabalhos reais na fila do app de desktop. O processamento de IA roda na sua própria GPU e os seus arquivos de mídia não são enviados para processamento. Roda no Windows 10 (64 bits, versão 1809 ou mais recente), no Windows 11 e no macOS 12 ou mais recente em Apple Silicon. Importar arquivos e explorar o app não exigem conta. O login com um plano pago só é necessário para exportar, converter, reparar um arquivo ou baixar um arquivo de um link.
Teste no seu próprio material
Baixe o KwaFlux e veja os efeitos de graça no seu próprio material antes de pagar — sem conta, processado na sua GPU, sem enviar sua mídia para processamento. As prévias de vídeo duram 1, 3 ou 5 segundos; as de estabilização, 5, 15 ou 30 segundos.
Perguntas frequentes
Qual a diferença entre computer use e MCP?
O computer use permite que um modelo veja capturas de tela e envie comandos de mouse e teclado para qualquer app. O MCP permite que um app ofereça ferramentas específicas e tipadas que um modelo pode chamar. O computer use é genérico, mas frágil; o MCP é mais restrito, mas verificável.
Um agente de IA consegue controlar qualquer aplicativo de desktop?
Em parte. Com automação de tela, ele consegue operar a maioria dos apps, com os limites de confiabilidade que os próprios fornecedores documentam. Um controle confiável exige que o app ofereça uma API ou ferramentas MCP. Veja o que um assistente de IA pode fazer em um app de vídeo via MCP como exemplo.
Por que não deixar o modelo escrever comandos do ffmpeg?
Porque um comando gerado é tão bom quanto o palpite do modelo, e quem precisa executá-lo é o usuário. Chamar o motor do próprio app usa configurações que o app já testou, e o app pode recusar entradas inválidas.
Um servidor MCP deve aceitar configuração bruta vinda do modelo?
Em geral, não. A configuração bruta entrega ao modelo todos os parâmetros, inclusive os que mudam para onde os arquivos vão ou o que o programa faz. Entradas pequenas e tipadas, que o servidor expande, são mais fáceis de validar.
Os resultados das ferramentas MCP precisam de um esquema?
Não, mas ajuda. A especificação do MCP permite que uma ferramenta declare um esquema de saída, e os servidores que fazem isso precisam devolver resultados que correspondam a ele, para que os clientes possam validá-los.
Fontes
- Anthropic, "Computer use tool" (security considerations; reliability; screenshot token cost) (acessado em 2026-10-25)
- Model Context Protocol, "Tools" (2026-07-28; output schema; Security Considerations) (acessado em 2026-07-28)
- Model Context Protocol, "Progress" (2025-11-25; progressToken and progress notifications) (acessado em 2025-11-25)
- Model Context Protocol, "Cancellation" (2025-11-25; notifications/cancelled) (acessado em 2025-11-25)


