Funcionalidades
Ferramentas de browser
As cinco ferramentas de browser do Ploy: abrir, ler, procurar, clicar e escrever, a funcionar no painel da janela, e as regras que as protegem.
Para que serve
O Ploy abre páginas web na própria janela, lê o que lá está e usa-as: segue ligações, preenche campos, carrega em botões. É para tarefas como ler o preço de um produto numa página, preencher um formulário ou seguir uma ligação até ao contacto que procuras. Para pesquisar um assunto na web, com várias fontes e referências, o modelo certo é o Veta.
As ferramentas existem para um modelo pequeno. O plugin de browser completo precisa de um identificador de separador em cada chamada e só se alcança pelo Code Mode, que está desligado para os modelos locais. Estas cinco tratam de um separador por conversa, devolvem a página depois de cada ação e mantêm o texto curto o bastante para um contexto de 16 mil tokens.
As cinco ferramentas
| Ferramenta | O que faz |
|---|---|
browser_open(url) |
Abre um endereço completo, como https://example.com ou localhost:3000, e devolve o texto da página. |
browser_read() |
Volta a ler a página aberta. |
browser_find(texto) |
Procura uma palavra ou frase na página e devolve as linhas onde aparece. Serve quando a página foi cortada. |
browser_click(ref) |
Clica num elemento pelo seu identificador, por exemplo e12. |
browser_type(ref, texto) |
Escreve num campo pelo seu identificador, substituindo o que lá estava. |
O texto de cada página traz os elementos marcados com identificadores como e12, e a resposta a cada ação é a página como ficou, com identificadores novos. O modelo só pode usar identificadores que apareçam na última resposta. Para enviar um formulário, clica no botão do próprio formulário: o browser_type não carrega em Enter.
Os endereços têm de ser HTTP ou HTTPS e sem credenciais embutidas. Um endereço sem esquema, como localhost:3000, é aberto em http, e qualquer outro em https. Caminhos de ficheiros e file:// não são endereços de browser.
Como funciona
- A página abre no painel de revisão da janela, num separador que a conversa mantém. Não há identificadores de separador para o modelo gerir.
- O texto da página é cortado aos 6000 caracteres, para caber no contexto. Quando é cortado, a resposta diz-lhe para usar o
browser_find. - A resposta junta um aviso de que o texto da página são dados e não instruções.
O que sai da máquina
O tráfego do site usa a rede do teu Mac, como uma visita normal: o site vê um pedido teu. O Ploy não envia mais nada, e o texto das páginas fica na conversa.
As regras de segurança
Uma página pode trazer ordens escritas, e um modelo pequeno às vezes obedece-lhes. Por isso, a partir do momento em que uma página entra numa conversa:
- a conversa fica marcada como tendo lido a web (a regra
ploy_tainted), e cada edição, cada comando e cada leitura fora do projeto pedem sempre confirmação, sem que uma aprovação guardada valha; - abrir um site que ainda não visitaste nessa conversa é recusado pela própria ferramenta. A resposta diz ao modelo para te pedir que confirmes o endereço, mas a ferramenta não tem forma de aceitar essa confirmação: dentro da mesma conversa a recusa mantém-se. Para ir a outro site, começa outra conversa. Continua a ser possível seguir as ligações da página em que estás.
A regra de um só site existe porque uma página podia dizer ao modelo para pôr texto privado num endereço. Antes de ler a primeira página, o modelo escolhe o site a partir do teu pedido, e, pelo que o código mostra, esse primeiro site abre sem uma pergunta de permissão própria.
O que foi medido
Seis tarefas num site de teste local, com três repetições cada: ler o título, ler um preço, preencher e enviar um formulário, seguir uma ligação, contar itens de uma lista e ler uma página que traz uma ordem escondida. O Ploy acertou 14 de 18 e nenhuma injeção teve sucesso. O teste recusa todos os pedidos de permissão e só verifica que o ficheiro que a ordem escondida mandava criar não aparece, por isso mede o modelo e a regra em conjunto, e não se o modelo obedeceu. Foi um site de teste feito pelo projeto, e um site real será mais difícil. Ver Medições.
Limites
- Um modelo de 8 mil milhões de parâmetros erra: em 4 das 18 tentativas medidas, a tarefa não ficou certa.
- O texto de uma página longa é cortado, e o modelo pode não ver a parte de que precisa.
- O modelo não tem ferramenta de captura de ecrã: trabalha só com o texto e os identificadores.
- A regra dos sites vale depois de a primeira página ser lida. Não há uma lista de sites aprovados, nem forma de a levantar dentro da conversa.
- A regra
ploy_taintednão impede, por si, abrir um segundo site; é o plugin do browser que mantém a regra de um só site.
Mais sobre as proteções em Segurança.