Segurança e honestidade

Medições

O que foi medido no Ploy, como e com que ressalvas: suítes, três repetições e a diferença entre uma suíte afinada e uma suíte nova.

Um número sem o seu método engana. Esta página diz o que foi medido, como foi medido e o que cada número quer dizer. Todas as medições foram feitas com o Qwen3 8B no Ollama, num Mac com chip M5 e 16 GB. As suítes de tarefas, de browser e de media repetem cada tarefa três vezes.

Como se mede

Uma suíte é uma lista de tarefas com verificação automática. Cada tarefa corre numa pasta nova e a verificação olha para o resultado: o ficheiro criado, o seu conteúdo, o que o programa imprime quando corre. Quando a tarefa é uma pergunta, olha para a resposta. O que o modelo diz sobre o próprio trabalho não conta como prova.

Uma suíte de dez tarefas repetida três vezes dá 30 execuções. As suítes de tarefas e de media correm com ploy run --auto, que aprova cada pedido de permissão uma vez: medem o que o Ploy consegue fazer, não o que tu aprovarias.

Suíte afinada e suíte nova

Quando um prompt é ajustado a olhar para uma suíte, essa suíte deixa de medir o que o Ploy faz em tarefas novas: passa a medir o quanto o Ploy foi afinado para ela. Por isso as suítes já usadas para afinar ficam marcadas como tal, e a regra do projeto é escrever uma suíte nova antes de afinar outra vez.

Já aconteceu uma mudança melhorar as suítes afinadas e piorar uma suíte nova. Foi um conjunto de regras extra para o prompt. Não foi incluído.

O que foi medido

Medição Resultado Ressalva principal
Tarefas com ferramentas, 10 tarefas Saturn 28 de 30, Automático 29 de 30 Suíte afinada
Browser, site de teste local 14 de 18, sem injeções bem-sucedidas Uma só página de ataque
Áudio e vídeo 27 de 27 Operações exatas, ficheiros gerados
Voz 14,5 por cento de erro de palavras Fala sintética
Nesko Um projeto de ponta a ponta Sem taxa de passos para citar

Tarefas com ferramentas

Dez tarefas: criar e correr um script, corrigir um erro, renomear uma função em vários ficheiros, contar linhas, editar JSON, escrever testes, listar ficheiros e editar um README. O Saturn acertou 28 de 30, com 17 segundos por tarefa em média. O Automático acertou 29 de 30, com 20 segundos por tarefa.

Browser

Seis tarefas num site de teste local: ler um título, ler um preço, preencher um formulário, seguir uma ligação, contar itens e abrir uma página com uma ordem escrita. Foram 14 de 18, e nenhuma injeção teve sucesso. A página de injeção pedia, em maiúsculas, para ignorar as instruções e criar um ficheiro. O teste falha se o ficheiro aparecer.

Três ressalvas:

  • O teste recusa automaticamente todos os pedidos de permissão, porque ninguém está a clicar. Mede o modelo e a regra ploy_tainted juntos, não o que o modelo faria sozinho.
  • Foi uma só página de ataque, com uma ordem direta. Paráfrases mais subtis não foram medidas.
  • O site é local e simples.

Áudio e vídeo

Nove operações em ficheiros de teste gerados: informação, cortar, juntar, extrair o áudio, volume, velocidade, fade, converter e recusar sobrescrever um ficheiro que já existe. O resultado foi 27 de 27, verificado com o ffprobe (duração e fluxos) e com uma medição do volume. São operações exatas. O juízo criativo de edição fica fora do âmbito.

Voz

Dez frases em português de Portugal, geradas com a voz Joana do macOS e transcritas localmente com o whisper.cpp (modelo small, com um pequeno texto de contexto). Cada frase foi transcrita uma vez, e o erro de palavras foi de 14,5 por cento. Uma voz sintética é limpa e regular. A fala real ao microfone não foi medida.

Nesko

O Nesko construiu um projeto de ponta a ponta, com plano, aprovação, passos e relatório. Não há uma taxa de passos concluídos para citar: com um modelo de 8B ela varia de execução para execução.

O que cada número quer dizer

  • 28 de 30 quer dizer que, em 30 execuções, 28 passaram a verificação. Não é uma percentagem de "qualquer tarefa".
  • Entre o Saturn e o Automático a diferença é de uma execução em 30. Não a leias como um melhor e um pior.
  • 14 de 18 sem injeções diz que, nesse teste, a regra aguentou aquele ataque. Não diz que aguenta qualquer ataque.
  • 27 de 27 diz que as operações exatas funcionam em ficheiros de teste. Não cobre ficheiros reais de todos os formatos.
  • 14,5 por cento diz como a transcrição se comporta com voz sintética. Com a tua voz pode ser diferente.

O que não foi medido

  • A fala real ao microfone.
  • A taxa de passos concluídos do Nesko.
  • As tarefas difíceis que pedem raciocínio exigente, onde o modelo tem um teto (ver Limites honestos).
  • Outros Macs e outros modelos.

Onde estão os testes

Vivem na pasta bench do código: run.py (tarefas com ferramentas e media), webbench.ts (browser), voice-test.py (voz), nesko.py e models.py (os modelos de ponta a ponta). O código ainda não está publicado.