Memory Recall e resumos do chat

Todo modelo de IA só consegue ler uma quantidade limitada de texto de cada vez, chamada de janela de contexto. Em um chat longo, as mensagens mais antigas saem dessa janela e a IA esquece o que aconteceu. Marinara Engine (chamado de Marinara daqui em diante) tem várias formas de trazer esse histórico de volta. Este guia mostra como ativar cada uma e o que fazer quando ela não funciona.

Qual recurso de memória usar?

Comece pelo Memory Recall. Ele funciona sem nenhuma configuração extra, porque Marinara pode usar um modelo de embeddings embutido, no seu computador. Acrescente os resumos quando os chats ficarem muito longos.

RecursoO que ele fazFunciona em
Memory RecallProcura, nas mensagens antigas, os trechos relacionados ao que você acabou de dizer e os acrescenta ao prompt.Todos os modos
Chat SummarySubstitui as mensagens antigas por recapitulações curtas.Roleplay
Automatic SummarizationResume cada dia e depois cada semana. Sempre ativada.Conversation
Advanced Memory RecallGerencia em conjunto o histórico atual, os resumos de cena e os trechos recuperados. Opcional.Roleplay e Game Mode

O Memory Recall e os resumos fazem trabalhos diferentes e podem rodar juntos. O Game Mode tem o Memory Recall e, se você quiser, o Advanced Memory Recall (veja No Game Mode). Ele não tem um recurso de resumo próprio.

Memory Recall

O Memory Recall usa embeddings. Um embedding é uma impressão digital numérica do significado de uma mensagem. Marinara guarda as mensagens antigas em pequenos grupos chamados de blocos. Ele compara a impressão digital da sua nova mensagem com as impressões digitais guardadas e acrescenta ao prompt os blocos mais parecidos.

Ativar o Memory Recall

  1. Abra um chat e clique em Chat Settings (configurações do chat).
  2. Localize a seção Memory Recall.
  3. Ative Enable Memory Recall (ativar o Memory Recall).

A configuração vale para cada chat. Ela começa ativada nos chats de Conversation e nos chats de Roleplay ou Game que têm uma cena ativa. Nos outros chats, ela começa desativada. Desativá-la interrompe a recuperação, mas não exclui as memórias guardadas.

Se não funcionou: o Memory Recall precisa de uma fonte de embeddings (próxima seção). Se você não definir nenhuma, Marinara usa o modelo embutido, então a maioria das pessoas pode pular essa seção. Confira se a seção Memory Recall aparece. Algumas versões em contêiner, conhecidas como Marinara Lite, desativam o recurso por completo.

Definir a fonte de embeddings (opcional)

O Memory Recall precisa de um modelo que crie as impressões digitais. Se você não definir nada, Marinara usa o modelo de embeddings embutido (veja abaixo), que é a resposta simples para a maioria das pessoas. Para usar um serviço, defina-o em uma conta, não nas configurações do chat.

Antes de começar: você precisa de uma conta que ofereça embeddings. Veja Conectando a um provedor de IA.

  1. Abra Connections (Conexões) e edite a conta.
  2. Localize a seção Semantic search (embeddings) (busca semântica por embeddings).
  3. Digite o nome de um modelo de embeddings, por exemplo text-embedding-3-small.
  4. Opcional: defina Embedding endpoint URL (URL do endpoint de embedding) para mudar o endereço.
  5. Opcional: use Embedding provider (provedor de embeddings) para emprestar a chave e o endereço de outra conta. Same as this provider (o mesmo deste provedor) mantém os desta conta.

Alguns serviços não oferecem embeddings. Nesse caso, Marinara pede que você escolha uma conta dedicada a embeddings, como uma compatível com OpenAI, a Google ou o modelo embutido.

Para usar uma única fonte em todo lugar, escolha-a em Embeddings, em Connections → Defaults (Conexões → Padrões). As contas sem um modelo de embeddings próprio passam a usá-la. A configuração própria de uma conta continua tendo prioridade.

Sem uma conta de embeddings e sem um padrão em Embeddings, Marinara recorre a um modelo de embeddings embutido. Ele é baixado uma única vez e roda no seu computador, sem chave de API. Veja Como configurar o Built-in model.

A mesma configuração alimenta a busca semântica dos lorebooks, então você a configura uma vez para os dois.

Ver e gerenciar as memórias guardadas

  1. Abra Chat Settings → Memory Recall.
  2. Clique em Access memories for this chat (acessar memórias deste chat). A janela Memories for This Chat (memórias deste chat) se abre. Com o Advanced Memory ativado, o visualizador fica dentro do painel lateral de Roleplay.

A janela mostra a quantidade de blocos guardados e uma contagem aproximada de tokens. Cada cartão de bloco mostra o período, a quantidade de mensagens, a hora de criação e um status.

StatusSignificado
VectorizedA impressão digital foi criada e está pronta para a busca.
Waiting for vectorA impressão digital ainda está sendo criada.
Embedding unavailableNenhuma fonte de embeddings conseguiu criá-la.

A barra de ferramentas tem ícones para exportar, importar, reconstruir e limpar as memórias.

Como o Memory Recall se comporta

Chat Summary (Roleplay)

O Chat Summary comprime as mensagens antigas em recapitulações curtas, chamadas de entradas de resumo. Cada entrada pode ser escrita pela IA ou por você, e cada uma pode ser ativada ou desativada. Ele existe só nos chats de Roleplay.

Abra Chat Settings e expanda Chat Summary, abaixo de Lorebooks. No computador, você pode abri-lo em uma janela própria. Veja Visão geral do painel Chat Settings.

Criar uma entrada de resumo

  1. Em Summary Scope (escopo do resumo), escolha Last para as mensagens mais recentes ou Range para um intervalo de mensagens.
  2. Clique em Generate (gerar) para a IA escrever uma entrada, ou em Write (escrever) para digitar uma você mesmo.

Cada entrada mostra um título, o intervalo de origem ou a quantidade de mensagens e uma estimativa de tokens. Você pode ativá-la ou desativá-la, expandi-la, editá-la com Edit ou excluí-la com Delete. Show Inactive e Hide Inactive mudam o que a lista mostra. Activate All e Deactivate All ativam ou desativam todas as entradas de uma vez.

Para mudar várias entradas, marque-as (no computador, clique com Shift para selecionar um intervalo) e use Enable selected (ativar selecionadas) ou Disable selected (desativar selecionadas).

Se Review Agent Outputs (revisar as saídas dos agentes) estiver ativado, os resumos da IA esperam a sua aprovação. Veja Aprovações de agentes e o Agent Suite.

Automatic Summaries

O painel Automatic Summaries (resumos automáticos) mantém os resumos em dia enquanto você conversa.

  1. Ative Enabled (ativado).
  2. Defina em Every (a cada) quantas mensagens do usuário passam entre um resumo e outro. O padrão é 5. A faixa vai de 1 a 200.
  3. Opcional: clique em Backfill Summary (preencher resumos) para resumir um chat antigo que nunca teve resumos. Aparece uma barra de progresso. Clique em Stop (parar) para encerrar antes do fim.

Prompt, provedor e tamanho da saída do resumo

Opções de exibição

A cauda de mensagens recentes limita as mensagens resumidas. Uma mensagem resumida mais antiga que a cauda fica de fora do prompt na hora, antes mesmo que o próximo resumo a oculte. Uma mensagem mais antiga que ainda não é coberta por nenhum resumo continua sendo enviada, porque deixá-la de fora faria com que ela se perdesse. Quando há mensagens assim, o Chat Summary mostra, abaixo de Recent message tail, quantas são. Clique em Backfill Summary para resumi-las.

Chats em grupo mesclados

Em um chat em grupo mesclado, uma única resposta fala por todos os personagens. Uma parte de uma entrada escrita para determinados personagens, como {{#if char == "Kaito"}}…{{/if}}, é mantida para todos os personagens a quem ela se aplica e marcada com quem a conhece, por exemplo "known only to Kaito". Partes que só o Narrator (narrador) do Advanced Memory recebe ficam de fora. Em chats em grupo em que os personagens respondem um de cada vez e em chats com um só personagem, cada personagem lê as entradas como antes, e o Narrator lê todas as partes.

Automatic Summarization (Conversation)

Os chats de Conversation resumem cada dia do calendário e depois juntam as semanas concluídas em um resumo semanal. O prompt então leva só os resumos semanais, os resumos diários da semana atual e as mensagens de hoje. Isso roda sozinho e não pode ser desativado.

Editar os resumos

  1. Abra um chat de Conversation e clique em Chat Settings.
  2. Localize Automatic Summarization.
  3. Clique em Edit Summaries (editar resumos).

A janela lista primeiro as semanas e depois os dias que ainda não entraram em uma semana. Expanda uma entrada para editar o texto de Summary (resumo) e as linhas de Key Details (detalhes principais).

Definir quando um dia termina

Preencher os dias que faltam

Um dia pode ficar sem resumo, por exemplo depois que você importa um chat antigo. Na janela, o painel Missing Summaries (resumos que faltam) tem um botão Backfill (preencher). Ele tenta de novo até 14 dias recentes de cada vez. Trocar o modelo de resumo não reescreve as entradas de dia ou de semana que já existem.

Advanced Memory Recall (Roleplay e Game Mode)

O Advanced Memory Recall é um modo opcional que gerencia em conjunto a janela do histórico atual, os resumos de continuidade e os trechos antigos. Ele divide o chat em cenas, resume cada cena encerrada e recupera as cenas e as mensagens exatas que importam para cada resposta. Ele funciona sem o botão liga/desliga Agents e não precisa de nenhum agente baixado.

Como ativar

  1. Abra Chat Settings → Memory Recall.
  2. Ative Advanced Memory Recall. Você também pode ativar Automatic context and memory handling (gerenciamento automático de contexto e memória), abaixo de Agents, no assistente de configuração de Roleplay.
  3. Defina Maximum allowed context before compression (tokens) (contexto máximo permitido antes da compressão) dentro da janela de contexto do seu modelo.
  4. Defina Summary and recall budget (tokens) (orçamento de resumos e recuperação) dentro desse teto.
  5. Opcional: escolha um Helper model (modelo auxiliar).

Em um chat que já tem histórico, clique primeiro em Prepare existing history (preparar o histórico existente); veja abaixo. As configurações e o progresso aparecem no assistente e no painel lateral Chat Settings, no computador e no celular. O visualizador do arquivo fica no painel lateral.

Configurações

ConfiguraçãoPadrãoO que ela faz
Maximum allowed context before compression (tokens)65.000Quando o prompt de saída alcança esse tamanho, o contexto mais antigo é cortado e resumido para a recuperação.
Summary and recall budget (tokens)6.500Quanto do contexto vai para as memórias. O recomendado é pelo menos 10% do máximo.
Helper modelConta dos agentes, depois a conta do chatToma as decisões de cena e escreve os resumos e a continuidade.
Maximum recalled scenes (máximo de cenas recuperadas)3Limite máximo de cenas recuperadas por resposta. 0 desativa a recuperação opcional de cenas.
Moving context (contexto móvel)3 a 5 mensagensMensagens em cada trecho recuperado. 0 nos dois dá resumos sem trechos.
Standalone scene check interval (messages) (intervalo entre verificações de cena, em mensagens)5Quantas mensagens novas passam entre uma verificação de cena e outra.
Use Decision model (usar modelo de decisão)DesativadoDeixa um modelo de decisão encontrar os finais de cena e escolher as memórias.
Decide who sees new messages (decidir quem vê as novas mensagens)DesativadoSó em chats em grupo em que os personagens respondem um de cada vez.
Character recollections (recordações dos personagens)DesativadoDá a cada personagem a própria memória de uma cena.

O orçamento padrão é 10% do máximo padrão. Mudar o máximo depois não o altera. O teto cobre todo o prompt de saída estimado: instruções, mensagens, contexto recuperado, ferramentas e anexos. Tokens de resposta e margem de segurança são contados à parte. É uma estimativa, não um tokenizador exato nem um limite de cobrança.

Todas as chamadas de resumo de memória usam Chat Summary → Maximum output size, com pelo menos 8.196 tokens de saída para dar espaço ao raciocínio.

Preparar o histórico existente

  1. Clique em Prepare existing history. Os modelos resolvidos aparecem antes de começar.
  2. Espere. Ele percorre o histórico antigo em lotes e mostra a etapa atual.
  3. Use Cancel (cancelar) para parar. O trabalho concluído é mantido. Use Resume (retomar) para continuar, mesmo depois de fechar o painel lateral, reiniciar o servidor ou atualizar o aplicativo.

Uma chamada ao modelo que falha mantém a memória válida anterior e mostra um erro para tentar de novo. Não redefina a memória depois de uma falha: Resume reutiliza os resumos concluídos. A última cena em andamento continua aberta e é resumida quando termina.

Se o histórico recuperado mudar uma cena coberta por uma correção manual, desative essa memória para manter o texto dela como referência, ou exclua-a, e depois prepare de novo. Fix (corrigir) pula essa cena e a coloca na lista, em vez de parar.

Uma ramificação criada a partir de um chat preparado, por exemplo com Branch from here (ramificar a partir daqui), mantém o Advanced Memory. Uma ramificação criada dentro de uma cena reabre essa cena: o resumo antigo dela é descartado, e um novo é escrito quando ela termina. Um chat importado como uma nova ramificação é preparado normalmente.

Corrigir problemas de memória

Quando algo na memória de um chat está quebrado, um pontinho fixo na sua cor de destaque aparece no botão Chat Settings, e um aviso informa quantas cenas têm problemas. Cada conjunto de problemas é anunciado uma vez, e o pontinho continua lá até que eles sejam resolvidos. Em Chat Settings → Memory Recall, os problemas aparecem listados acima das configurações. Access memories for this chat mostra o mesmo pontinho.

Pressione Fix, no aviso ou na lista, para consertar todas as cenas sinalizadas de uma só vez. Ele usa o Helper model. Pause processing (pausar o processamento) o interrompe e Resume processing (retomar o processamento) continua. Fix:

Fix nunca reescreve um resumo que você editou à mão. Ele coloca esses resumos em need your review (precisam da sua revisão) e continua. Ele não pode mudar configurações por você, como o intervalo de conhecimento de um personagem ou uma conexão de decisão que funcione.

Quando termina, Fix mostra "Advanced Memory fixed N scenes" e os números das cenas que precisam de revisão. Selecione um número para abrir essa cena em Access memories for this chat. Se o painel Chat Settings estava fechado, um aviso com Show (mostrar) leva você até lá. O próximo Fix não volta a perguntar sobre uma cena que ele não conseguiu decidir, então salve você mesmo o acesso dos personagens a ela.

Reanalisar as cenas

Se alguma mudança de cena passou despercebida, por exemplo quando uma cena nunca terminou, use Re-scan scenes (reanalisar as cenas) em Chat Settings → Memory Recall.

  1. Informe o número da primeira e da última mensagem a verificar. Por padrão, o intervalo é o da cena em andamento.
  2. Pressione Re-scan (reanalisar).

Advanced Memory volta a procurar as mudanças de cena nessas mensagens e resume as cenas que mudaram. Ele usa o modelo de decisão quando Use Decision model está ativado e, caso contrário, o modelo auxiliar. As cenas fora do intervalo mantêm os limites e os resumos. Se um resumo que você editou fosse mudar, a reanálise é interrompida e indica essa cena.

Modelo de decisão opcional

Um modelo de decisão é um modelo pequeno que responde a perguntas de sim ou não. Ele vem desativado por padrão e é salvo para cada chat de Roleplay.

  1. Ative Use Decision model no Advanced Memory.
  2. Escolha um modelo em Memory Decision connection (conexão de decisão para memória). Em Built-in model (modelo embutido), ele lista os mesmos modelos que o Decision model (modelo de decisão) global. Um modelo que ainda não pode responder aparece acinzentado com o motivo, e um modelo parado é iniciado quando recebe uma pergunta. Em Connections, ele lista as suas contas de decisão salvas. Veja Modelos de decisão.

Essa escolha é independente do padrão global de decisão.

O modelo encontra os limites de cena durante a preparação do histórico e a verificação das cenas em andamento. Antes de uma nova resposta, ele escolhe as memórias em duas etapas. Veja Como funciona a recuperação por decisão para os detalhes.

As contas hospedadas recebem o texto recente da conversa e os resumos ou mensagens pré-selecionados que estão sendo avaliados, e podem cobrar por várias requisições por resposta. A recuperação filtra o acesso dos personagens antes de enviar os candidatos.

Decidir quem vê as novas mensagens

Em um chat em grupo de Roleplay em que os personagens respondem um de cada vez, Advanced Memory pode decidir quais personagens veem cada nova mensagem. Assim você não precisa ocultar cada fala de um personagem que saiu da cena. Chats em grupo mesclados e chats com um só personagem não oferecem essa opção.

  1. Ative Decide who sees new messages no Advanced Memory.

Cada nova mensagem, sua ou de um personagem, fica oculta para os personagens que não estão na cena. Ela usa o mesmo Hide from AI (ocultar da IA) por personagem do botão da própria mensagem, então o marcador de olho riscado mostra quem não pode vê-la. A sua mensagem é decidida assim que você a envia. As mensagens anteriores são decididas antes de o próximo personagem responder.

Com Advanced Memory ativado, uma nova resposta de personagem pode mudar de cena ou de ponto de vista com uma linha de quebra, como **, --- ou . A resposta é então salva como mensagens separadas do mesmo personagem, uma para cada parte.

Recordações dos personagens

Ative Character recollections para dar a cada personagem a própria memória de uma cena. A opção vem desativada por padrão.

Como elas continuam corretas:

Onde elas aparecem e quanto custam:

Editar e desativar:

No Game Mode

Os chats de Game Mode ativam o Advanced Memory Recall em Chat Settings → Memory Recall, da mesma forma. Sem ele, uma sessão de Game envia todo o histórico a cada turno até o limite de contexto, então uma sessão longa custa muito mais tokens de entrada por turno. Com ele, o prompt fica abaixo de Maximum allowed context before compression. A cena atual vai como mensagens do histórico atual, e as cenas anteriores vão como recapitulações e os momentos que a recuperação escolhe.

Solução de problemas

ProblemaSolução
O Memory Recall não recupera nadaConfira se há uma fonte de embeddings configurada. Se os blocos mostram Embedding unavailable, defina um modelo em Semantic search (embeddings) ou use o modelo embutido. Veja Como configurar o Built-in model.
Os blocos mostram Waiting for vectorDê tempo a eles. As impressões digitais são criadas depois das respostas.
Nada parece relacionadoA recuperação só acrescenta memórias bem relacionadas. Não acrescentar nada é normal.
A recuperação piorou depois de trocar de modelo de embeddingsUse o ícone de reconstruir em Memories for This Chat.
Os resumos não são geradosO chat precisa de uma conta de texto que funcione. O Chat Summary usa o Summary Provider. Se nenhuma funcionar, a geração é pulada.
Os resumos da IA nunca aparecemReview Agent Outputs pode estar esperando a sua aprovação.
Um resumo está travadoResumos com falha são tentados de novo depois de um intervalo. Use Backfill Summary (Roleplay) ou Backfill (Conversation).
Uma cena está marcada com Check who was therePressione Fix, ou abra a cena em Access memories for this chat e use Edit character access (editar acesso dos personagens).

Para outros problemas, veja Solução de problemas do Marinara Engine.

Referência do Advanced Memory

Detalhes de que a maioria dos leitores não precisa. As configurações acima funcionam sem que você leia isto.

Como as cenas são detectadas e resumidas

A janela atual e o orçamento

O que a recuperação retorna

Access memories for this chat

Abra essa janela para buscar resumos de cena numerados, ver os períodos e os públicos deles, editar Summary text (texto do resumo) ou ler as mensagens originais com Inspect source messages (inspecionar mensagens de origem). Você pode desativar registros, usar Reindex (reindexar), exportar e importar, ou usar Delete all memories (excluir todas as memórias) para reiniciar a preparação mantendo o chat e as configurações. As correções de resumos manuais são mantidas e invalidam a continuidade que depende deles. Delete summary (excluir resumo), no final de um resumo, o remove depois que você confirma o resumo e o público. Também funciona para entradas antigas de Continuity (continuidade) e Ongoing scene (cena em andamento). A preparação de rotina não recria as recapitulações excluídas.

Para manter uma cena fora da recuperação, desative o registro de memória dela. A ocultação específica por personagem continua controlando quem pode acessá-la. A ocultação global não a remove do arquivo.

Quem pode ler uma cena

Como funciona a recuperação por decisão

Posicionamento no preset

Os autores de presets podem posicionar estes marcadores de conteúdo com os controles de sempre de ordem das seções, nome, papel e grupo:

MarcadorConteúdo
chat_summaryEntradas constantes elegíveis dos Chat Summaries.
current_scene_summaryTrechos de origem da parte mais antiga de uma cena em andamento.
recalled_scenesTodos os resumos de cenas selecionados, cada um seguido do trecho dele.

Cada um segue o formato XML, Markdown ou None do preset. Componentes vazios não emitem nada. O primeiro marcador ativado determina a posição. Componentes sem um marcador ativado aparecem uma vez antes do histórico, então presets antigos continuam funcionando. O seletor de presets oferece só Recalled Scenes. Um marcador antigo recalled_messages é um alias, e um marcador recalled_scenes ativado tem prioridade. Esses marcadores ficam vazios com o Advanced Memory desativado.

Limites

A recuperação é seletiva, e os resumos podem perder nuances. Guarde as correções importantes na transcrição de origem ou no editor de resumos. Se os embeddings falharem, a recuperação limitada por texto e a continuidade válida continuam disponíveis. O arquivo nunca é inserido inteiro. Se as instruções ou um anexo não couberem no teto, reduza-os ou aumente o teto. Se a reserva de resposta não couber no contexto total do modelo, reduza o tamanho da saída ou escolha um modelo com contexto maior. Advanced Memory para em vez de excluir instruções silenciosamente.

O modo avançado assume a recuperação enquanto está ativado, então o Standard Recall não insere uma segunda cópia. Ele também substitui, nesse chat, a programação normal de resumos automáticos de Roleplay. Desativá-lo restaura as configurações normais. Lorebooks existentes e agentes baixáveis mantêm as próprias regras de escopo.

Guias relacionados