n8n-nodes-tembory 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/nodes/Mem0/Mem0Memory.node.js +40 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Node de memoria operacional da Tembory para agentes de IA no n8n.
|
|
4
4
|
|
|
5
|
-
Versao atual: `1.0.
|
|
5
|
+
Versao atual: `1.0.25`.
|
|
6
|
+
|
|
7
|
+
## 1.0.25
|
|
8
|
+
|
|
9
|
+
- Carrega a janela recente tambem a partir de memorias vetoriais com `kind=recent_message`.
|
|
10
|
+
- Adiciona uma busca auxiliar de transcript recente no modo BYO-AI para perguntas como "qual foi minha ultima mensagem" e "o que eu ja disse".
|
|
11
|
+
- Evita depender do endpoint legado `/v1/memories/` para reconstruir conversa curta.
|
|
6
12
|
|
|
7
13
|
## 1.0.24
|
|
8
14
|
|
|
@@ -3132,6 +3132,41 @@ class Mem0Memory {
|
|
|
3132
3132
|
connectedAi.errors.push(`graph.relations: ${error.message || String(error)}`);
|
|
3133
3133
|
}
|
|
3134
3134
|
}
|
|
3135
|
+
if (connectedEmbedding && adv.includeRecentMessages !== false) {
|
|
3136
|
+
try {
|
|
3137
|
+
const transcriptProbe = [
|
|
3138
|
+
'recent conversation transcript',
|
|
3139
|
+
'last user messages previous message',
|
|
3140
|
+
query,
|
|
3141
|
+
].filter(Boolean).join('\n');
|
|
3142
|
+
const transcriptBody = {
|
|
3143
|
+
user_id: key,
|
|
3144
|
+
agent_id: adv.agentId ? String(adv.agentId) : undefined,
|
|
3145
|
+
run_id: adv.runId ? String(adv.runId) : undefined,
|
|
3146
|
+
top_k: Math.max(Number(adv.recentMessagesLastN || 8) * 3, 20),
|
|
3147
|
+
filters: { kind: 'recent_message' },
|
|
3148
|
+
};
|
|
3149
|
+
const transcriptRes = await searchClientVectorMemories(this, connectedEmbedding, transcriptProbe, transcriptBody);
|
|
3150
|
+
const transcriptMemories = normalizeResults(transcriptRes).map((memory) => withTemboryScore(memory, {
|
|
3151
|
+
semanticScore: scoreOf(memory),
|
|
3152
|
+
source: 'recent_message_probe',
|
|
3153
|
+
}));
|
|
3154
|
+
if (transcriptMemories.length) {
|
|
3155
|
+
const seen = new Set(vectorMemories.map((memory) => stableHash(memoryText(memory) || safeStringify(memory))));
|
|
3156
|
+
for (const memory of transcriptMemories) {
|
|
3157
|
+
const hash = stableHash(memoryText(memory) || safeStringify(memory));
|
|
3158
|
+
if (!seen.has(hash)) {
|
|
3159
|
+
seen.add(hash);
|
|
3160
|
+
vectorMemories.push(memory);
|
|
3161
|
+
}
|
|
3162
|
+
}
|
|
3163
|
+
connectedAi.recentMessageProbe = true;
|
|
3164
|
+
}
|
|
3165
|
+
}
|
|
3166
|
+
catch (error) {
|
|
3167
|
+
connectedAi.errors.push(`recentMessageProbe: ${error.message || String(error)}`);
|
|
3168
|
+
}
|
|
3169
|
+
}
|
|
3135
3170
|
let persistedRecentMessages = [];
|
|
3136
3171
|
let persistedToolHistory = [];
|
|
3137
3172
|
let persistedMemoryItems = [];
|
|
@@ -3155,12 +3190,16 @@ class Mem0Memory {
|
|
|
3155
3190
|
.filter(Boolean)
|
|
3156
3191
|
.sort((a, b) => new Date(a.at || 0).getTime() - new Date(b.at || 0).getTime());
|
|
3157
3192
|
}
|
|
3193
|
+
const vectorRecentMessages = adv.includeRecentMessages === false ? [] : vectorMemories
|
|
3194
|
+
.map(recentMessageFromMemory)
|
|
3195
|
+
.filter(Boolean)
|
|
3196
|
+
.sort((a, b) => new Date(a.at || 0).getTime() - new Date(b.at || 0).getTime());
|
|
3158
3197
|
if (adv.includeToolHistory !== false) {
|
|
3159
3198
|
persistedToolHistory = persistedMemoryItems
|
|
3160
3199
|
.flatMap(toolHistoryItemsFromMemory)
|
|
3161
3200
|
.sort((a, b) => new Date(a.at || 0).getTime() - new Date(b.at || 0).getTime());
|
|
3162
3201
|
}
|
|
3163
|
-
const storedRecentMessages = adv.includeRecentMessages === false ? [] : (store.recentMessages[key] || []).concat(persistedRecentMessages);
|
|
3202
|
+
const storedRecentMessages = adv.includeRecentMessages === false ? [] : (store.recentMessages[key] || []).concat(persistedRecentMessages, vectorRecentMessages);
|
|
3164
3203
|
const allRecentMessages = dedupeRecentMessages(appendCurrentUserMessage(storedRecentMessages, query));
|
|
3165
3204
|
const recentMessages = pruneByLimit(allRecentMessages, Math.max(Number(adv.recentMessagesLastN || 8), 8));
|
|
3166
3205
|
const toolHistoryFromRecentMessages = [];
|
package/package.json
CHANGED