Funcionalidades

Memória e responder a um trecho

Como cada conversa guarda um resumo e notas, os comandos /lembrar, /esquecer e /memoria, o painel, o @ para trazer outra conversa e o Responder.

O que cada conversa guarda

Cada conversa mantém uma memória própria, que o Ploy atualiza sozinho quando uma resposta termina e quando a conversa muda. Tem duas partes:

  • O resumo. Um relato curto e determinístico, feito por regras e não pelo modelo, com as secções Pedidos, Resultado, Ficheiros, Comandos e, se houve compactação, Resumo anterior.
  • As notas. Frases que guardas tu, com o /lembrar ou no painel.

O resumo tem limites, para a memória nunca crescer sem fim: guarda os pedidos (os dois primeiros e os quatro últimos, se houver mais de sete, cada um cortado a 240 caracteres), o último resultado (700 caracteres), até 14 ficheiros com a indicação de terem sido escritos, editados ou lidos, e até 8 comandos. Os segredos de formato conhecido (chaves privadas, tokens, password = ...) são substituídos por [redacted]. As notas são no máximo 30, de até 500 caracteres cada.

Os comandos

Comando O que faz
/lembrar <texto> Guarda uma nota. Responde «Guardei na memória desta conversa: ...».
/esquecer <número> Apaga a nota com esse número.
/memoria Mostra o resumo e as notas numeradas.
/lembrar o cliente prefere azul
/memoria
/esquecer 1

Estes três comandos não entram no resumo da conversa.

O painel

No cabeçalho de cada conversa há um botão «Memória desta conversa». Abre um painel com as secções do resumo e as notas, onde podes escrever uma nota nova («Guardar uma nota...») ou apagar uma. Antes da primeira resposta o painel diz «Ainda nada. A memória aparece depois da primeira resposta.» O painel lembra o essencial: a memória fica nesta conversa, e para a usar noutra escreves @ e escolhes esta.

Trazer outra conversa com o @

Numa conversa, escreve @ e aparece a lista das tuas outras conversas, com a mais recente primeiro. Cada linha mostra o título e o primeiro pedido da conversa. A lista deixa de fora a conversa em que estás, as conversas de trabalho do Nesko e as que ainda não têm memória. O ecrã de boas-vindas tem um arranque, «Usar outra conversa», que abre esta lista.

Ao escolheres uma, o ficheiro da sua memória entra no teu pedido. O texto vem entre aspas angulares (« »), com o aviso de que é a memória de outra conversa, para consulta: o modelo não o trata como instruções, e as aspas angulares que existam dentro do texto são substituídas por aspas retas, para ele não poder sair da citação.

Responder a um trecho

Seleciona um pedaço de uma resposta e aparece um botão «Responder» junto da seleção. Também podes carregar em Alt+R. O trecho abre a tua mensagem seguinte como citação, e fica visível por cima da tua resposta na mensagem enviada. Serve para dizeres «sobre esta parte» sem teres de copiar e colar.

Como a memória é guardada

  • Nos metadados da própria conversa, na chave ploy.memory.
  • Espelhada num ficheiro de texto em ~/.local/share/ploy/opencode/chats/<id>.md. É este ficheiro que o @ anexa.
  • Só é reescrita quando o conteúdo muda, e o ficheiro é apagado quando apagas a conversa.
  • Fica no teu Mac. Nada sai.

As conversas que já existiam quando esta funcionalidade chegou recebem a sua memória uma vez, em segundo plano, quando o serviço arranca. As conversas de trabalho do Nesko não têm memória: são maquinaria do motor.

Limites

O resumo é mecânico: guarda o que foi pedido e o último resultado, não compreende a conversa. Uma conversa longa fica reduzida a poucos pedidos e a uma só resposta final. Se precisas de um facto preciso numa outra conversa, guarda-o como nota. E o modelo que lê a memória é o de 8 mil milhões de parâmetros, que pode ignorar ou ler mal o que lá está.