Motores de contexto do OpenClaw
Os quatro pontos do ciclo de vida da montagem, o legacy padrão, como escrever um motor em plugin com commitTurn e semânticas de transcrição, parâmetros de host aceitos, requisitos de capacidade do host, isolamento de falhas e o que ownsCompaction realmente significa
Tudo o que o modelo vê é montado por alguma coisa. No OpenClaw, essa coisa é um motor de contexto, e ele é plugável. O motor integrado preserva o comportamento original, mas é na interface por baixo dele que se encaixam estratégias com muita recuperação ou muito resumo. Veja os pontos do ciclo de vida, o contrato que um plugin precisa respeitar e os dois comportamentos de falha que impedem um motor ruim de silenciar o agente.
Quatro pontos do ciclo de vida
- O ingest é chamado quando uma nova mensagem entra na sessão, para que o motor possa armazená-la ou indexá-la; o assemble é chamado antes de cada execução do modelo e devolve um conjunto ordenado de mensagens, mais um acréscimo opcional ao prompt de sistema, que cabe no orçamento de tokens; o compact é chamado quando a janela está cheia ou quando o usuário pede; e um hook de pós-turno permite ao motor persistir estado, iniciar uma compactação em segundo plano ou atualizar índices.
- Um método maintain opcional faz a manutenção da transcrição após o bootstrap, um turno bem-sucedido ou uma compactação, usando um helper de reescrita segura, e pode ser declarado como trabalho em segundo plano para não bloquear a resposta; a compactação de orçamento enfileirada que aceita manutenção em segundo plano mantém o runtime preparado vivo durante a manutenção, as novas execuções e o descarte, então aceitar não significa que a limpeza terminou.
- Dois hooks opcionais de subagente preparam o estado compartilhado antes de uma execução filha começar e fazem a limpeza quando ela termina; o hook de preparação recebe as chaves de sessão pai e filha, o modo de contexto, os identificadores de transcrição disponíveis e um tempo de vida opcional, e pode devolver um handle de rollback que o OpenClaw chama quando a inicialização falha depois.
- O motor legacy integrado é deliberadamente enxuto: o ingest não faz nada, porque o gerenciador de sessões persiste as mensagens; o assemble repassa para o pipeline existente de sanitização, validação e limite; o compact delega para o resumo integrado; e o hook de pós-turno não faz nada. Ele não registra ferramentas e não acrescenta nada ao prompt de sistema.
ownsCompaction: false não significa que o OpenClaw recorra automaticamente ao caminho de compactação do motor legacy.
Escrevendo um motor
Um plugin registra um motor com um ID, um nome, a indicação de se ele é dono da compactação e os parâmetros de host que aceita; o OpenClaw cruza essa declaração com os campos disponíveis para cada método do ciclo de vida, de modo que chaves não declaradas ou desconhecidas nunca são injetadas, e um motor que omite a declaração recebe todos os campos atuais do host. Para turnos admitidos duráveis, um motor declara as duas semânticas de transcrição e implementa um método de commit como uma única escrita atômica e idempotente indexada por uma chave de avanço, devolvendo um status committed na primeira escrita e um status duplicate quando uma nova tentativa do host apresenta a mesma chave; o payload cobre apenas o intervalo que vai da entrada do usuário admitida até a entrada terminal aceita, e o histórico anterior é lido pelo cursor de transcrição. Sem a declaração completa e o método, o OpenClaw usa o caminho legacy para todo aquele turno lógico, incluindo as novas tentativas, deixa o slot configurado inalterado e tenta o motor de novo no próximo turno. O resultado do assemble traz as mensagens, uma contagem estimada de tokens, um acréscimo opcional ao prompt de sistema, uma flag de autoridade do prompt que decide qual estimativa a pré-verificação de estouro usa e um ciclo de vida de projeção opcional para hosts com threads persistentes no backend.
Requisitos e falhas
- Um motor pode declarar requisitos de capacidade do host, por exemplo, que precisa controlar o prompt real por meio do assemble; execuções de agente nativas e embutidas atendem a essa capacidade, enquanto backends genéricos de linha de comando não, então um motor que a exige é rejeitado antes de o processo iniciar, falhando de forma fechada com uma mensagem descritiva.
- Se um motor que não é o legacy estiver ausente, falhar na validação do contrato, lançar uma exceção durante a criação ou a partir de um método do ciclo de vida, o OpenClaw o coloca em quarentena durante o processo atual do gateway, rebaixa o trabalho de contexto para o legacy, para que as respostas continuem, e registra o erro com a operação que falhou, para que o operador possa reparar, atualizar ou desativar o plugin.
- Ser dono da compactação desativa a autocompactação integrada durante a tentativa e a pré-verificação genérica de estouro antes do prompt para aquela execução, deixando o motor responsável pela compactação manual, pela recuperação de estouro e por qualquer trabalho proativo; não ser dono dela mantém a autocompactação integrada disponível, mas ainda encaminha a compactação manual e a recuperação de estouro para o motor, e é por isso que um método compact que não faz nada é inseguro.
A compactação do OpenClaw é o comportamento para o qual o motor legacy delega, e o guia sobre o contexto do OpenClaw explica aquilo que está sendo montado.
Selecionando e removendo a seleção
O slot é exclusivo em tempo de execução: apenas um motor registrado é resolvido para uma dada execução ou compactação, embora outros plugins de motor ativados ainda carreguem e executem o código de registro. Desinstalar o plugin selecionado no momento no slot faz o slot voltar ao padrão, e a mesma redefinição vale para o slot de memória, então nenhuma edição manual da configuração é necessária. Trocar de motor não reescreve as sessões existentes; elas continuam com o histórico atual enquanto o novo motor assume as próximas execuções. Os plugins de memória são um slot separado que fornece busca e recuperação, e um motor pode recorrer a eles durante a montagem pelo helper documentado, em vez de mexer na estrutura interna deles. O guia de plugins do OpenClaw cobre o sistema de plugins, e a busca de memória do OpenClaw, o lado da recuperação.
Na Diali
Na Diali, a configuração do runtime é gerada a partir do painel e substituída a cada versão, então a seleção do motor faz parte dessa configuração gerada, e não de um arquivo que os clientes editam à mão. O OpenClaw hospedado na Diali descreve o assistente hospedado, e a página de segurança da Diali, a fronteira em torno de cada runtime.
- Ingest, assemble, compact, pós-turno: quatro pontos, um contrato.
- Um motor quebrado fica em quarentena; o legacy mantém o agente respondendo.
- Declare as semânticas de transcrição, ou o turno usa o legacy silenciosamente.
Pare de ler sobre isso e crie o seu
Configure um agente, escolha um canal e coloque-o para trabalhar dentro do app que você já deixa aberto.
