tembory

Tembory node for n8n AI Agents with operational memory, tool history and decision state

Documentation

Tembory

Node de memoria operacional da Tembory para agentes de IA no n8n.

Versao atual: 1.3.4.

1.3.4

  • Torna a credencial Tembory API obrigatoria nos nodes Tembory Memory e Tembory Agent Memory.
  • Bloqueia loadMemoryVariables, saveContext e execucao direta quando nao houver API key configurada.
  • Remove o comportamento enganoso de fallback local silencioso sem credencial: fallback interno so pode existir depois que o node estiver autenticado.

1.3.3

  • Remove texto generico de trabalho como continue according to the agent prompt... quando a memoria nao inferiu uma acao concreta.
  • Para mensagens gerais, a memoria registra conversa e contexto, mas nao inventa currentGoal, currentTask ou nextExpectedAction.
  • Para turnos que podem exigir tool, o debug visual passa a mostrar uma orientacao objetiva: avaliar se precisa de tool e consultar conversation_frame, tool_state, tool_history e action_ledger antes de executar algo novo.

1.3.2

  • Remodela o output visual para debug simples no n8n com sentToAgent, slm, memory, conversation, tools, io e save.
  • Remove duplicacoes visuais de saveContext: savedMessages, conversationTimeline, toolNames e toolEvents deixam de aparecer como blocos paralelos no topo.
  • Expõe o status real da SLM no visual: fonte, geração no load atual, cache técnico, active summary carregado/atualizado, chars e preview.
  • Mantem o contexto enviado ao Agent como tembory.agent_context.v2; a mudança é no side channel visual e na instrução da SLM para resumir objetivo, próxima ação e evidências operacionais.

1.3.1

  • Republica o pacote como latest sem a marcacao deprecated aplicada por engano na 1.3.0.
  • Mantem o mesmo contrato da 1.3.0: node legado Tembory e node opt in Tembory Agent Memory.

1.3.0

  • Adiciona um segundo node no pacote: Tembory Agent Memory, com internal name temboryAgentMemory.
  • Mantem o node atual Tembory com internal name temboryMemory, sem migracao automatica de workflows existentes.
  • O novo node nasce como caminho opt in para a experiencia v2: menos campos visiveis, controles avancados recolhidos e base para tembory.visual.v2.
  • Reaproveita o runtime estavel de memoria, captura de tools e persistencia enquanto a timeline v2 e a slmAnalysis incremental sao implementadas em cortes posteriores.

1.2.2

  • No Modo Simples Recomendado, remove campos visuais redundantes do side channel: toolEvents, toolNames e savedMessages.
  • Mantem as mesmas informacoes em toolLog, conversation, conversationTimeline, userInput, assistantOutput e toolCapture.
  • O contexto interno do Agent e a persistencia das tools nao mudam; a alteracao e apenas na organizacao do JSON visual do n8n.

1.2.1

  • Remove duplicacao visual no output do saveContext: o resumo fica apenas em memorySummary, sem repetir os mesmos campos no topo do JSON.
  • Mantem toolLog, toolEvents, conversa, input/output e captura de tools dentro de memorySummary para debug humano organizado.

1.2.0

  • Remodela o contexto compacto do Agent para tembory.agent_context.v2, com contrato unico para conversa, fatos canonicos, evidencias de tools, politica de reuso, frescor, captura e budget.
  • Remove duplicacao estrutural de mensagens no prompt do Agent: a conversa passa por conversationFrame e nao e repetida em blocos equivalentes.
  • Preserva inputs, outputs, timestamps, fatos extraidos e resultados parseados de tools em toolEvidence, incluindo tools de busca vetorial quando o n8n entrega o payload.
  • Mantem toolReuseGuard generico para evitar repeticao indevida de side effects e reutilizar outputs anteriores como evidencia sem transformar memoria em ToolMessage.
  • Enriquece o resumo visual do n8n lendo o novo schema v2 sem vazar o chatHistory bruto no output do Agent.

1.1.44

  • Adiciona toolReuseGuard no contexto compacto do agente para reduzir repeticao indevida de tools entre turnos.
  • Registra chamadas bem sucedidas recentes com input_hash e classifica tools de leitura versus side effect de forma generica.
  • Instrui o agente a consultar tool_ledger antes de nova tool e a nao repetir side effects sem pedido explicito do usuario.
  • Remove duplicacoes do payload compacto para manter o contexto balanceado abaixo do limite de regressao.

1.1.43

  • Adiciona toolCapture no payload visual de saveContext, deixando explicito quando nenhuma execucao de tool chegou para a memoria.
  • Suporta tambem intermediate_steps em snake case, alem de intermediateSteps.
  • Quando toolCallsCaptured for 0, o payload informa que e necessario o AI Agent entregar intermediateSteps, __temboryToolCalls ou tool messages para a memoria conseguir salvar a tool.

1.1.42

  • Explicita conversation e conversationTimeline tambem no payload visual de saveContext.
  • Aumenta a timeline visual de conversa do loadMemoryVariables para ate 16 mensagens recentes.
  • Parseia resultados de tools de busca vetorial em outputParsed.documents, preservando pageContent, metadata, id, source e score quando existirem.

1.1.41

  • Padroniza a saida visual do node com visualSchema, memorySummary e toolLog tanto no loadMemoryVariables quanto no saveContext.
  • Mantem toolEvents para compatibilidade, mas agora tambem mostra inputParsed, outputParsed, timestamps e facts com IDs operacionais quando existirem.
  • Aumenta a visibilidade do historico recente de tools no resumo visual para evitar esconder eventos importantes no debug humano.

1.1.40

  • Extrai fatos operacionais path aware de inputs e outputs de tools, preservando IDs como serviceId, providerId, locationId, customerId, reservationId e bookingId.
  • Injeta esses fatos em operationalState, actionLedger, toolLedger e action_directive.
  • Corrige o risco de o Agent usar serviceId antigo de memoria vetorial quando o check_availabilities mais recente ja retornou o ID correto para o Booking.

1.1.39

  • Ajusta a semantica de repeticao de tools: do_not_repeat_tools fica restrito a turnos de recall, status operacional ou pedido explicito para nao chamar tools.
  • Em turnos normais, o Agent recebe repeat_tool_policy e avoid_repeating_tools_unless_needed, deixando claro que tools anteriores sao evidencia reutilizavel, nao ferramentas proibidas.
  • Compacta decisionState.tool_decision_state para evitar duplicar outputs longos de tools no contexto balanceado.

1.1.38

  • Torna o resumo visual independente do tipo da mensagem LangChain, procurando o contexto Tembory em qualquer mensagem carregada.
  • Enriquece eventos chatHistory.addMessage(s) com savedMessages, input/output resumidos e tool events quando esse for o caminho usado pelo Agent.
  • Mantem a separacao entre contexto interno do Agent e output compacto para humano.

1.1.37

  • Normaliza chatHistory legado para chat_history no modo simples, evitando que historico bruto vaze no output final do Agent.
  • Mantem chatHistory apenas como alias nao enumeravel no contrato interno de memoria.
  • O caminho de execucao normal do node passa a retornar resumo visual compacto, nao o array bruto de mensagens.

1.1.36

  • Mantem o comportamento funcional da 1.1.35.
  • Corrige o resumo visual do n8n para mensagens LangChain serializadas, incluindo objetos com kwargs.content.
  • Evita o fallback pobre { action, messages } quando o contexto foi carregado corretamente mas o output humano nao conseguiu parsear o SystemMessage.

1.1.35

  • Corrige a chave default de memoria do runtime para chat_history, que e o placeholder usado pelo AI Agent do n8n.
  • Mantem compatibilidade com chatHistory, devolvendo aliases para workflows antigos.
  • Faz o contexto operacional do Tembory entrar no prompt principal do Agent em modo simples.

1.1.34

  • Adiciona statusAnswerMaterial no contexto do Agent para perguntas sobre historico operacional.
  • Quando o usuario pergunta quais tools foram chamadas, o Agent recebe um bloco direto com tool count, inputs, outputs, timestamps e action ledger.
  • Instrui explicitamente o Agent a responder desse material e nao dizer que nao tem acesso quando o historico existe.

1.1.33

  • Corrige o runtime do Modo Simples Recomendado para usar defaults seguros nos parametros que ficam escondidos na interface.
  • Evita erro Could not get parameter em nodes novos quando memoryKey, retrievalMode e payloadFormat nao estao gravados no workflow.
  • Mantem o modo avancado com todas as opcoes disponiveis.

1.1.32

  • Adiciona Modo de Configuracao com Simples Recomendado e Avancado.
  • O modo simples usa os defaults validados nos testes reais: contexto estruturado, resumo por contexto ativo, tool history/results/action ledger, backend persistente e diagnostico pesado desligado.
  • O modo avancado continua exibindo todas as opcoes existentes, sem remover nenhum controle.
  • Atualiza a expressao padrao de Consulta para ler tambem $json.body.chatInput.

1.1.31

  • Adiciona agentContextBudget no payload visual do n8n com caracteres e tokens aproximados injetados no Agent.
  • Mostra loadedSections fora do bloco de diagnostico para facilitar debug humano.
  • Melhora o parsing de outputs comuns de tools do n8n, incluindo envelopes json, data, body e result.
  • Mantem outputParsed, capturedAt, toolTimestamp, toolStatus, conversa e save visual por execucao.

Contrato operacional atual

O Tembory e memoria operacional generica. Ele nao decide regra de negocio, nao escolhe a tool pelo dominio do cliente e nao substitui o prompt do agente.

O que ele deve guardar e devolver:

  • Mensagens recentes por threadId ou sessionId.
  • Tool calls genericas, independente do nome da tool.
  • Input enviado para a tool.
  • Output bruto retornado pela tool.
  • Output util em outputParsed, quando o formato permitir parsing seguro.
  • Status da tool.
  • capturedAt, que e quando o Tembory capturou o evento.
  • toolTimestamp, que e o timestamp retornado pela propria tool quando existir.
  • actionLedger, workingMemory, decisionState, operationalState e resumo ativo.

O que ele nao deve fazer:

  • Inventar politica de tool.
  • Considerar uma acao lateral concluida sem tool bem sucedida no turno correto.
  • Transformar observacao ou inferencia em regra obrigatoria.
  • Esconder falha de save no payload visual.

Visao geral

O Tembory entrega contexto operacional para o AI Agent sem depender apenas do historico textual da conversa. Ele combina transcript curto, profile facts, tool history, estado operacional, action ledger, working memory, decision state, active summary persistente, compressao de memoria e diagnosticos.

A SLM conectada ao node organiza o estado ativo em bullets curtos e persistentes. Ela e contexto auxiliar read-only: nao decide politica de negocio, nao escolhe tools e nao substitui o prompt do agente.

Principais recursos

  • Porta ai_memory para conectar direto no AI Agent do n8n.
  • Entrada LLM obrigatoria para gerar e atualizar o resumo ativo.
  • Campo Projeto para isolar memorias por cliente/workspace.
  • Profile facts: nome, empresa, email, telefone, preferencias e contexto comercial.
  • Tool history: tools chamadas, inputs, outputs, status e ordem.
  • Working memory: objetivo atual, intencao recente, entidades ativas, ultimo erro e proxima acao esperada.
  • Decision state: decisoes ativas, ferramentas que nao devem ser repetidas e politica de conflitos.
  • Operational state: resumo deterministico do estado atual das tools e do proximo passo seguro.
  • Action ledger: linha cronologica das acoes executadas pelo agente.
  • Memory compression: resumos de turno, sessao, entidades e workflow.
  • Active summary persistente gerado pela SLM.

Custo de IA

O node usa o modelo de linguagem conectado no proprio n8n. Para esse papel, um modelo pequeno e barato costuma ser suficiente, porque a tarefa e resumir, organizar e compactar contexto operacional.

Credencial

Use a credencial Tembory API com a API key gerada no SaaS. A API key identifica a conta e o projeto comercial no Tembory.

Presets operacionais

O campo Preset Operacional preenche defaults de producao:

  • Producao Rapida (Thread + SLM): padrao recomendado para a maioria dos agentes.
  • Producao Balanceada: mais contexto, ainda compacto.
  • Producao Economica: reduz resultados e secoes para economizar tokens.
  • Producao Nano/SLM: otimizado para modelo pequeno.
  • Diagnostico Completo: teste e auditoria.
  • Auditoria: payload detalhado para depuracao.

Recomendacao pratica:

  • Use Modo Simples Recomendado em producao normal.
  • Use Producao Balanceada quando o agente precisar comparar mais historico.
  • Use Auditoria ou Diagnostico Completo apenas enquanto estiver depurando.

No modo simples, o node aplica automaticamente:

  • Modo de Recuperacao: operacional estruturado.
  • Formato do Contexto: producao estruturado.
  • Preset Operacional: producao rapida.
  • Fonte do Resumo do SLM: contexto ativo.
  • Tool history, resultados de tools, action ledger, working memory, decision state, operational state e memory compression ligados.
  • Persistencia no backend e active summary ligados.
  • Diagnostico pesado, scores, semantic fallback e tool facts desligados.
  • TTL de tool history em 36000 segundos.
  • Ultimas tools mantidas no contexto compacto: 50.

Uso com $fromAI()

Em tools conectadas ao AI Agent, o n8n permite que o modelo preencha parametros dinamicamente com $fromAI(). Isso e responsabilidade do Agent e da tool do n8n. O Tembory apenas fornece contexto operacional para o Agent, incluindo conversa, tools anteriores, inputs, outputs e timestamps.

Referencia oficial do n8n: https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/

Payload visual do n8n

No output do node durante uma execucao, o Tembory mostra um resumo compacto para humano:

  • memorySummary.intent: classificacao operacional leve do turno.
  • memorySummary.conversation: contagem e ultimas mensagens.
  • memorySummary.conversationTimeline: timeline curta com timestamps.
  • memorySummary.toolEvents: ultimas tool calls com input, output, outputParsed, status e timestamps.
  • memorySummary.lastSave: ultimo save persistido.
  • memorySummary.loadedSections: quais blocos foram injetados no contexto do Agent.
  • memorySummary.agentContextBudget: tamanho aproximado do contexto enviado ao Agent.

Exemplo de budget:

{
  "agentContextBudget": {
    "messages": 1,
    "chars": 4200,
    "approxTokens": 1050,
    "largestSections": [
      { "section": "tools", "chars": 1600, "approxTokens": 400 }
    ]
  }
}

Blocos de contexto

Quando habilitados, o agente recebe:

  • Conversation frame
  • Profile facts
  • Working memory
  • Decision state
  • Operational state
  • Action ledger
  • Memory compression
  • Recent messages
  • Recent highlights
  • Tool history
  • Active summary
  • SLM summary
  • Diagnostics

Validacao local

npm test
npm run simulate:n8n-agent

Discussion