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
/lembrarou 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 1Estes 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á.