@elizaos/plugin-memory 2.0.0-alpha.4 → 2.0.0-alpha.5
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/dist/index.js +33 -21
- package/dist/index.js.map +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -46,7 +46,6 @@ function decodeMemoryText(text) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// src/actions/forget.ts
|
|
49
|
-
var MEMORY_TABLE = "memories";
|
|
50
49
|
var forgetAction = {
|
|
51
50
|
name: "FORGET",
|
|
52
51
|
description: "Remove a stored memory by ID or by matching content description",
|
|
@@ -79,11 +78,16 @@ var forgetAction = {
|
|
|
79
78
|
}
|
|
80
79
|
]
|
|
81
80
|
],
|
|
82
|
-
async validate(
|
|
83
|
-
|
|
81
|
+
async validate(runtime, _message, _state) {
|
|
82
|
+
const memoryManager = runtime.getMemoryManager();
|
|
83
|
+
return !!memoryManager;
|
|
84
84
|
},
|
|
85
85
|
async handler(runtime, message, _state, _options, callback) {
|
|
86
86
|
try {
|
|
87
|
+
const memoryManager = runtime.getMemoryManager();
|
|
88
|
+
if (!memoryManager) {
|
|
89
|
+
throw new Error("Memory manager not available");
|
|
90
|
+
}
|
|
87
91
|
const content = message.content.text;
|
|
88
92
|
if (!content) {
|
|
89
93
|
const errorMessage = "Please specify which memory to forget.";
|
|
@@ -92,13 +96,12 @@ var forgetAction = {
|
|
|
92
96
|
}
|
|
93
97
|
const params = _options?.parameters;
|
|
94
98
|
if (params?.memoryId) {
|
|
95
|
-
await
|
|
99
|
+
await memoryManager.removeMemory(params.memoryId);
|
|
96
100
|
const successMessage2 = `Removed memory with ID: ${params.memoryId}`;
|
|
97
101
|
await callback?.({ text: successMessage2, source: message.content.source });
|
|
98
102
|
return { text: successMessage2, success: true, data: { removedId: params.memoryId } };
|
|
99
103
|
}
|
|
100
|
-
const memories = await
|
|
101
|
-
tableName: MEMORY_TABLE,
|
|
104
|
+
const memories = await memoryManager.getMemories({
|
|
102
105
|
roomId: message.roomId,
|
|
103
106
|
count: 100
|
|
104
107
|
});
|
|
@@ -140,7 +143,7 @@ Return ONLY a JSON object (no markdown, no code blocks):
|
|
|
140
143
|
const parsed = decodeMemoryText(targetMemory.content.text);
|
|
141
144
|
const memoryId = targetMemory.id ?? "";
|
|
142
145
|
if (memoryId) {
|
|
143
|
-
await
|
|
146
|
+
await memoryManager.removeMemory(memoryId);
|
|
144
147
|
}
|
|
145
148
|
const successMessage = `Removed memory: "${parsed.content}"`;
|
|
146
149
|
await callback?.({ text: successMessage, source: message.content.source });
|
|
@@ -162,7 +165,6 @@ Return ONLY a JSON object (no markdown, no code blocks):
|
|
|
162
165
|
import {
|
|
163
166
|
logger as logger2
|
|
164
167
|
} from "@elizaos/core";
|
|
165
|
-
var MEMORY_TABLE2 = "memories";
|
|
166
168
|
var recallAction = {
|
|
167
169
|
name: "RECALL",
|
|
168
170
|
description: "Retrieve stored memories based on a query, tags, or topic",
|
|
@@ -195,11 +197,16 @@ var recallAction = {
|
|
|
195
197
|
}
|
|
196
198
|
]
|
|
197
199
|
],
|
|
198
|
-
async validate(
|
|
199
|
-
|
|
200
|
+
async validate(runtime, _message, _state) {
|
|
201
|
+
const memoryManager = runtime.getMemoryManager();
|
|
202
|
+
return !!memoryManager;
|
|
200
203
|
},
|
|
201
204
|
async handler(runtime, message, _state, _options, callback) {
|
|
202
205
|
try {
|
|
206
|
+
const memoryManager = runtime.getMemoryManager();
|
|
207
|
+
if (!memoryManager) {
|
|
208
|
+
throw new Error("Memory manager not available");
|
|
209
|
+
}
|
|
203
210
|
const content = message.content.text;
|
|
204
211
|
if (!content) {
|
|
205
212
|
const errorMessage = "Please provide a query to recall memories.";
|
|
@@ -211,8 +218,7 @@ var recallAction = {
|
|
|
211
218
|
const filterTags = params?.tags ?? [];
|
|
212
219
|
const limit = params?.limit ?? 10;
|
|
213
220
|
const minImportance = params?.minImportance ?? 1 /* LOW */;
|
|
214
|
-
const memories = await
|
|
215
|
-
tableName: MEMORY_TABLE2,
|
|
221
|
+
const memories = await memoryManager.getMemories({
|
|
216
222
|
roomId: message.roomId,
|
|
217
223
|
count: 100
|
|
218
224
|
});
|
|
@@ -300,7 +306,6 @@ import {
|
|
|
300
306
|
logger as logger3,
|
|
301
307
|
ModelType as ModelType2
|
|
302
308
|
} from "@elizaos/core";
|
|
303
|
-
var MEMORY_TABLE3 = "memories";
|
|
304
309
|
var rememberAction = {
|
|
305
310
|
name: "REMEMBER",
|
|
306
311
|
description: "Store a piece of information as a long-term memory for later recall",
|
|
@@ -335,11 +340,16 @@ var rememberAction = {
|
|
|
335
340
|
}
|
|
336
341
|
]
|
|
337
342
|
],
|
|
338
|
-
async validate(
|
|
339
|
-
|
|
343
|
+
async validate(runtime, _message, _state) {
|
|
344
|
+
const memoryManager = runtime.getMemoryManager();
|
|
345
|
+
return !!memoryManager;
|
|
340
346
|
},
|
|
341
347
|
async handler(runtime, message, _state, _options, callback) {
|
|
342
348
|
try {
|
|
349
|
+
const memoryManager = runtime.getMemoryManager();
|
|
350
|
+
if (!memoryManager) {
|
|
351
|
+
throw new Error("Memory manager not available");
|
|
352
|
+
}
|
|
343
353
|
const content = message.content.text;
|
|
344
354
|
if (!content) {
|
|
345
355
|
const errorMessage = "Please provide content to remember.";
|
|
@@ -382,14 +392,14 @@ User message: "${content}"`;
|
|
|
382
392
|
const memoryEntry = {
|
|
383
393
|
agentId: runtime.agentId,
|
|
384
394
|
roomId: message.roomId,
|
|
385
|
-
|
|
395
|
+
userId: message.userId,
|
|
386
396
|
content: {
|
|
387
397
|
text: encodedText,
|
|
388
398
|
source: MEMORY_SOURCE
|
|
389
399
|
},
|
|
390
400
|
createdAt: Date.now()
|
|
391
401
|
};
|
|
392
|
-
await
|
|
402
|
+
await memoryManager.createMemory(memoryEntry, true);
|
|
393
403
|
const tagSuffix = tags.length > 0 ? ` [tags: ${tags.join(", ")}]` : "";
|
|
394
404
|
const successMessage = `Remembered: "${memoryText}"${tagSuffix}`;
|
|
395
405
|
await callback?.({ text: successMessage, source: message.content.source });
|
|
@@ -408,14 +418,16 @@ User message: "${content}"`;
|
|
|
408
418
|
};
|
|
409
419
|
|
|
410
420
|
// src/providers/memoryContext.ts
|
|
411
|
-
var MEMORY_TABLE4 = "memories";
|
|
412
421
|
var memoryContextProvider = {
|
|
413
422
|
name: "MEMORY_CONTEXT",
|
|
414
423
|
description: "Provides relevant long-term memories from conversation context",
|
|
415
424
|
get: async (runtime, message, _state) => {
|
|
416
425
|
try {
|
|
417
|
-
const
|
|
418
|
-
|
|
426
|
+
const memoryManager = runtime.getMemoryManager();
|
|
427
|
+
if (!memoryManager) {
|
|
428
|
+
return { text: "Memory manager is not available" };
|
|
429
|
+
}
|
|
430
|
+
const memories = await memoryManager.getMemories({
|
|
419
431
|
roomId: message.roomId,
|
|
420
432
|
count: 50
|
|
421
433
|
});
|
|
@@ -484,4 +496,4 @@ export {
|
|
|
484
496
|
IMPORTANCE_LABELS
|
|
485
497
|
};
|
|
486
498
|
|
|
487
|
-
//# debugId=
|
|
499
|
+
//# debugId=C7F07CBEF581DD5B64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/actions/forget.ts", "../src/types.ts", "../src/actions/recall.ts", "../src/actions/remember.ts", "../src/providers/memoryContext.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { decodeMemoryText, type ForgetParameters, MEMORY_SOURCE } from \"../types.js\";\n\
|
|
5
|
+
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { decodeMemoryText, type ForgetParameters, MEMORY_SOURCE } from \"../types.js\";\n\nexport const forgetAction: Action = {\n name: \"FORGET\",\n description: \"Remove a stored memory by ID or by matching content description\",\n similes: [\"forget\", \"remove-memory\", \"delete-memory\", \"erase-memory\", \"clear-memory\"],\n\n examples: [\n [\n {\n name: \"User\",\n content: { text: \"Forget what you know about my favorite color.\" },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"I'll remove that memory about your favorite color.\",\n actions: [\"FORGET\"],\n },\n },\n ],\n [\n {\n name: \"User\",\n content: { text: \"Delete the memory about the project deadline.\" },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"I've removed the memory about the project deadline.\",\n actions: [\"FORGET\"],\n },\n },\n ],\n ],\n\n async validate(runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> {\n const memoryManager = runtime.getMemoryManager();\n return !!memoryManager;\n },\n\n async handler(\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> {\n try {\n const memoryManager = runtime.getMemoryManager();\n if (!memoryManager) {\n throw new Error(\"Memory manager not available\");\n }\n\n const content = message.content.text;\n if (!content) {\n const errorMessage = \"Please specify which memory to forget.\";\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n\n const params = _options?.parameters as ForgetParameters | undefined;\n\n // Direct removal by ID if provided\n if (params?.memoryId) {\n await memoryManager.removeMemory(params.memoryId);\n const successMessage = `Removed memory with ID: ${params.memoryId}`;\n await callback?.({ text: successMessage, source: message.content.source });\n return { text: successMessage, success: true, data: { removedId: params.memoryId } };\n }\n\n // Search for matching memory to remove\n const memories = await memoryManager.getMemories({\n roomId: message.roomId,\n count: 100,\n });\n\n const pluginMemories = memories.filter((m) => m.content.source === MEMORY_SOURCE);\n\n if (pluginMemories.length === 0) {\n const noMemoriesMsg = \"No stored memories found to remove.\";\n await callback?.({ text: noMemoriesMsg, source: message.content.source });\n return { text: noMemoriesMsg, success: true };\n }\n\n // Use LLM to identify which memory to forget\n const searchContent = params?.content ?? content;\n const memoryDescriptions = pluginMemories.map((m, i) => {\n const parsed = decodeMemoryText(m.content.text);\n return `${i}: \"${parsed.content}\"`;\n });\n\n const matchPrompt = `Given the user's request to forget a memory, identify which stored memory index matches best.\n\nUser request: \"${searchContent}\"\n\nAvailable memories:\n${memoryDescriptions.join(\"\\n\")}\n\nReturn ONLY a JSON object (no markdown, no code blocks):\n{\"index\": <number or -1 if no match>, \"confidence\": <0.0 to 1.0>}`;\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: matchPrompt,\n });\n\n if (!response) {\n throw new Error(\"Failed to identify memory to remove\");\n }\n\n const cleaned = response\n .replace(/^```(?:json)?\\n?/, \"\")\n .replace(/\\n?```$/, \"\")\n .trim();\n const match: { index: number; confidence: number } = JSON.parse(cleaned);\n\n if (match.index < 0 || match.index >= pluginMemories.length || match.confidence < 0.5) {\n const noMatchMsg = \"Could not find a matching memory to remove. Please be more specific.\";\n await callback?.({ text: noMatchMsg, source: message.content.source });\n return { text: noMatchMsg, success: false };\n }\n\n const targetMemory = pluginMemories[match.index];\n const parsed = decodeMemoryText(targetMemory.content.text);\n const memoryId = targetMemory.id ?? \"\";\n\n if (memoryId) {\n await memoryManager.removeMemory(memoryId);\n }\n\n const successMessage = `Removed memory: \"${parsed.content}\"`;\n await callback?.({ text: successMessage, source: message.content.source });\n\n return {\n text: successMessage,\n success: true,\n data: { removedId: memoryId, content: parsed.content },\n };\n } catch (error) {\n logger.error(\"Failed to forget memory:\", error);\n const errorMessage = `Failed to forget memory: ${error instanceof Error ? error.message : String(error)}`;\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n },\n};\n",
|
|
6
6
|
"/** Importance levels for stored memories */\nexport enum MemoryImportance {\n LOW = 1,\n NORMAL = 2,\n HIGH = 3,\n CRITICAL = 4,\n}\n\n/** Metadata values that can be attached to a memory */\nexport type MemoryMetadataValue = string | number | boolean;\n\n/** Metadata record for memory entries */\nexport type MemoryMetadata = Record<string, MemoryMetadataValue>;\n\n/** Structured memory data after parsing from storage */\nexport interface ParsedMemory {\n content: string;\n tags: string[];\n importance: MemoryImportance;\n}\n\n/** Parameters for the REMEMBER action */\nexport interface RememberParameters {\n content?: string;\n tags?: string[];\n importance?: MemoryImportance;\n metadata?: MemoryMetadata;\n}\n\n/** Parameters for the RECALL action */\nexport interface RecallParameters {\n query?: string;\n tags?: string[];\n limit?: number;\n minImportance?: MemoryImportance;\n}\n\n/** Parameters for the FORGET action */\nexport interface ForgetParameters {\n memoryId?: string;\n content?: string;\n}\n\n/** Memory search result presented to the user */\nexport interface MemorySearchResult {\n id: string;\n content: string;\n tags: string[];\n importance: MemoryImportance;\n createdAt: number;\n}\n\n/** Separator between metadata and content in stored memory text */\nexport const MEMORY_METADATA_SEPARATOR = \"\\n---\\n\";\n\n/** Source identifier for memories created by this plugin */\nexport const MEMORY_SOURCE = \"plugin-memory\";\n\n/** Importance level display labels */\nexport const IMPORTANCE_LABELS: Record<number, string> = {\n [MemoryImportance.LOW]: \"low\",\n [MemoryImportance.NORMAL]: \"normal\",\n [MemoryImportance.HIGH]: \"high\",\n [MemoryImportance.CRITICAL]: \"critical\",\n};\n\n/**\n * Encode memory content with metadata into a storable text format.\n * The metadata is stored as a JSON prefix separated from content.\n */\nexport function encodeMemoryText(\n content: string,\n tags: string[],\n importance: MemoryImportance\n): string {\n const metadata = JSON.stringify({ t: tags, i: importance });\n return `${metadata}${MEMORY_METADATA_SEPARATOR}${content}`;\n}\n\n/**\n * Decode a stored memory text into its content and metadata.\n * Handles gracefully when text has no metadata prefix.\n */\nexport function decodeMemoryText(text: string): ParsedMemory {\n const separatorIndex = text.indexOf(MEMORY_METADATA_SEPARATOR);\n if (separatorIndex === -1) {\n return { content: text, tags: [], importance: MemoryImportance.NORMAL };\n }\n\n const metadataStr = text.substring(0, separatorIndex);\n const content = text.substring(separatorIndex + MEMORY_METADATA_SEPARATOR.length);\n\n try {\n const metadata: { t?: string[]; i?: number } = JSON.parse(metadataStr);\n return {\n content,\n tags: Array.isArray(metadata.t) ? metadata.t.map(String) : [],\n importance:\n typeof metadata.i === \"number\" ? (metadata.i as MemoryImportance) : MemoryImportance.NORMAL,\n };\n } catch {\n return { content: text, tags: [], importance: MemoryImportance.NORMAL };\n }\n}\n",
|
|
7
|
-
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport {\n decodeMemoryText,\n MEMORY_SOURCE,\n MemoryImportance,\n type MemorySearchResult,\n type RecallParameters,\n} from \"../types.js\";\n\
|
|
8
|
-
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport {\n encodeMemoryText,\n MEMORY_SOURCE,\n MemoryImportance,\n type RememberParameters,\n} from \"../types.js\";\n\
|
|
9
|
-
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { decodeMemoryText, IMPORTANCE_LABELS, MEMORY_SOURCE } from \"../types.js\";\n\
|
|
7
|
+
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport {\n decodeMemoryText,\n MEMORY_SOURCE,\n MemoryImportance,\n type MemorySearchResult,\n type RecallParameters,\n} from \"../types.js\";\n\nexport const recallAction: Action = {\n name: \"RECALL\",\n description: \"Retrieve stored memories based on a query, tags, or topic\",\n similes: [\"recall\", \"remember-what\", \"search-memory\", \"find-memory\", \"what-do-you-remember\"],\n\n examples: [\n [\n {\n name: \"User\",\n content: { text: \"What do you remember about my preferences?\" },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"Let me search my memories about your preferences.\",\n actions: [\"RECALL\"],\n },\n },\n ],\n [\n {\n name: \"User\",\n content: { text: \"Recall everything about the project deadline.\" },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"I'll look up what I know about the project deadline.\",\n actions: [\"RECALL\"],\n },\n },\n ],\n ],\n\n async validate(runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> {\n const memoryManager = runtime.getMemoryManager();\n return !!memoryManager;\n },\n\n async handler(\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> {\n try {\n const memoryManager = runtime.getMemoryManager();\n if (!memoryManager) {\n throw new Error(\"Memory manager not available\");\n }\n\n const content = message.content.text;\n if (!content) {\n const errorMessage = \"Please provide a query to recall memories.\";\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n\n const params = _options?.parameters as RecallParameters | undefined;\n const query = params?.query ?? content;\n const filterTags = params?.tags ?? [];\n const limit = params?.limit ?? 10;\n const minImportance = params?.minImportance ?? MemoryImportance.LOW;\n\n // Retrieve all memories from the room\n const memories = await memoryManager.getMemories({\n roomId: message.roomId,\n count: 100,\n });\n\n // Filter to only plugin-created memories\n const pluginMemories = memories.filter((m) => m.content.source === MEMORY_SOURCE);\n\n if (pluginMemories.length === 0) {\n const noMemoriesMsg = \"I don't have any stored memories yet.\";\n await callback?.({ text: noMemoriesMsg, source: message.content.source });\n return { text: noMemoriesMsg, success: true, data: { memories: [], count: 0 } };\n }\n\n // Parse and filter memories\n const parsedMemories: Array<MemorySearchResult> = pluginMemories\n .map((m) => {\n const parsed = decodeMemoryText(m.content.text);\n return {\n id: m.id ?? \"\",\n content: parsed.content,\n tags: parsed.tags,\n importance: parsed.importance,\n createdAt: m.createdAt ?? 0,\n };\n })\n .filter((m) => m.importance >= minImportance);\n\n // Apply tag filters if specified\n let filteredMemories = parsedMemories;\n if (filterTags.length > 0) {\n filteredMemories = parsedMemories.filter((m) =>\n filterTags.some((tag) => m.tags.includes(tag))\n );\n }\n\n // Score and rank memories by relevance to query\n const queryLower = query.toLowerCase();\n const queryWords = queryLower.split(/\\s+/);\n\n const scoredMemories = filteredMemories\n .map((m) => {\n const contentLower = m.content.toLowerCase();\n const tagsStr = m.tags.join(\" \").toLowerCase();\n let score = 0;\n\n // Exact substring match gets highest score\n if (contentLower.includes(queryLower)) {\n score += 10;\n }\n\n // Individual word matches\n for (const word of queryWords) {\n if (word.length < 2) continue;\n if (contentLower.includes(word)) score += 2;\n if (tagsStr.includes(word)) score += 3;\n }\n\n // Importance bonus\n score += m.importance;\n\n return { ...m, score };\n })\n .filter((m) => m.score > 0)\n .sort((a, b) => b.score - a.score)\n .slice(0, limit);\n\n if (scoredMemories.length === 0) {\n const noResultsMsg = \"No memories found matching your query.\";\n await callback?.({ text: noResultsMsg, source: message.content.source });\n return { text: noResultsMsg, success: true, data: { memories: [], count: 0 } };\n }\n\n // Format results for display\n const memoryList = scoredMemories\n .map((m, i) => {\n const tagStr = m.tags.length > 0 ? ` [${m.tags.join(\", \")}]` : \"\";\n const date = new Date(m.createdAt).toLocaleDateString();\n return `${i + 1}. ${m.content}${tagStr} (${date})`;\n })\n .join(\"\\n\");\n\n const count = scoredMemories.length;\n const resultText = `Found ${count} memor${count === 1 ? \"y\" : \"ies\"}:\\n\\n${memoryList}`;\n await callback?.({ text: resultText, source: message.content.source });\n\n return {\n text: resultText,\n success: true,\n data: {\n memories: scoredMemories.map((m) => ({\n id: m.id,\n content: m.content,\n tags: m.tags,\n importance: m.importance,\n createdAt: m.createdAt,\n })),\n count,\n },\n };\n } catch (error) {\n logger.error(\"Failed to recall memories:\", error);\n const errorMessage = `Failed to recall memories: ${error instanceof Error ? error.message : String(error)}`;\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n },\n};\n",
|
|
8
|
+
"import {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport {\n encodeMemoryText,\n MEMORY_SOURCE,\n MemoryImportance,\n type RememberParameters,\n} from \"../types.js\";\n\nexport const rememberAction: Action = {\n name: \"REMEMBER\",\n description: \"Store a piece of information as a long-term memory for later recall\",\n similes: [\"remember\", \"memorize\", \"store-memory\", \"save-memory\", \"note-down\"],\n\n examples: [\n [\n {\n name: \"User\",\n content: { text: \"Remember that my favorite color is blue.\" },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"I'll remember that your favorite color is blue.\",\n actions: [\"REMEMBER\"],\n },\n },\n ],\n [\n {\n name: \"User\",\n content: {\n text: \"Please memorize this: the project deadline is March 15th.\",\n },\n },\n {\n name: \"Assistant\",\n content: {\n text: \"Got it, I've stored that the project deadline is March 15th.\",\n actions: [\"REMEMBER\"],\n },\n },\n ],\n ],\n\n async validate(runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> {\n const memoryManager = runtime.getMemoryManager();\n return !!memoryManager;\n },\n\n async handler(\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult> {\n try {\n const memoryManager = runtime.getMemoryManager();\n if (!memoryManager) {\n throw new Error(\"Memory manager not available\");\n }\n\n const content = message.content.text;\n if (!content) {\n const errorMessage = \"Please provide content to remember.\";\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n\n const params = _options?.parameters as RememberParameters | undefined;\n let memoryText: string = params?.content ?? content;\n let tags: string[] = params?.tags ?? [];\n let importance: MemoryImportance = params?.importance ?? MemoryImportance.NORMAL;\n\n // Use LLM to extract structured memory if no explicit parameters given\n if (!params?.content) {\n const extractionPrompt = `Extract the key information to remember from this message.\nReturn ONLY a JSON object (no markdown, no code blocks):\n{\n \"memory\": \"The concise fact or information to store\",\n \"tags\": [\"relevant\", \"category\", \"tags\"],\n \"importance\": 2\n}\n\nImportance levels: 1=low, 2=normal, 3=high, 4=critical\n\nUser message: \"${content}\"`;\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: extractionPrompt,\n });\n\n if (response) {\n try {\n const cleaned = response\n .replace(/^```(?:json)?\\n?/, \"\")\n .replace(/\\n?```$/, \"\")\n .trim();\n const parsed: { memory?: string; tags?: string[]; importance?: number } =\n JSON.parse(cleaned);\n memoryText = parsed.memory ?? content;\n tags = Array.isArray(parsed.tags) ? parsed.tags.map(String) : [];\n importance =\n typeof parsed.importance === \"number\"\n ? (parsed.importance as MemoryImportance)\n : MemoryImportance.NORMAL;\n } catch (parseError) {\n logger.warn(\"Failed to parse memory extraction, using raw content\", parseError);\n memoryText = content;\n }\n }\n }\n\n const encodedText = encodeMemoryText(memoryText, tags, importance);\n\n const memoryEntry: Memory = {\n agentId: runtime.agentId,\n roomId: message.roomId,\n userId: message.userId,\n content: {\n text: encodedText,\n source: MEMORY_SOURCE,\n },\n createdAt: Date.now(),\n };\n\n await memoryManager.createMemory(memoryEntry, true);\n\n const tagSuffix = tags.length > 0 ? ` [tags: ${tags.join(\", \")}]` : \"\";\n const successMessage = `Remembered: \"${memoryText}\"${tagSuffix}`;\n await callback?.({ text: successMessage, source: message.content.source });\n\n return {\n text: successMessage,\n success: true,\n data: { content: memoryText, tags, importance },\n };\n } catch (error) {\n logger.error(\"Failed to store memory:\", error);\n const errorMessage = `Failed to store memory: ${error instanceof Error ? error.message : String(error)}`;\n await callback?.({ text: errorMessage, source: message.content.source });\n return { text: errorMessage, success: false };\n }\n },\n};\n",
|
|
9
|
+
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { decodeMemoryText, IMPORTANCE_LABELS, MEMORY_SOURCE } from \"../types.js\";\n\nexport const memoryContextProvider: Provider = {\n name: \"MEMORY_CONTEXT\",\n description: \"Provides relevant long-term memories from conversation context\",\n\n get: async (runtime: IAgentRuntime, message: Memory, _state: State) => {\n try {\n const memoryManager = runtime.getMemoryManager();\n if (!memoryManager) {\n return { text: \"Memory manager is not available\" };\n }\n\n const memories = await memoryManager.getMemories({\n roomId: message.roomId,\n count: 50,\n });\n\n const pluginMemories = memories.filter((m) => m.content.source === MEMORY_SOURCE);\n\n if (pluginMemories.length === 0) {\n return { text: \"No stored memories available\" };\n }\n\n // Parse, sort by importance then recency, and limit\n const parsedMemories = pluginMemories\n .map((m) => {\n const parsed = decodeMemoryText(m.content.text);\n return {\n id: m.id ?? \"\",\n content: parsed.content,\n tags: parsed.tags,\n importance: parsed.importance,\n createdAt: m.createdAt ?? 0,\n };\n })\n .sort((a, b) => {\n if (a.importance !== b.importance) return b.importance - a.importance;\n return b.createdAt - a.createdAt;\n })\n .slice(0, 20);\n\n const memoryList = parsedMemories.map((m) => {\n const tagStr = m.tags.length > 0 ? ` [${m.tags.join(\", \")}]` : \"\";\n const level = IMPORTANCE_LABELS[m.importance] ?? \"normal\";\n return `- (${level}) ${m.content}${tagStr}`;\n });\n\n const text = `Stored Memories (${parsedMemories.length}):\\n${memoryList.join(\"\\n\")}`;\n\n return {\n text,\n data: {\n memories: parsedMemories.map((m) => ({\n id: m.id,\n content: m.content,\n tags: m.tags,\n importance: m.importance,\n })),\n count: parsedMemories.length,\n },\n };\n } catch (_error) {\n return { text: \"Error retrieving stored memories\" };\n }\n },\n};\n",
|
|
10
10
|
"import type { Plugin } from \"@elizaos/core\";\nimport { forgetAction } from \"./actions/forget\";\nimport { recallAction } from \"./actions/recall\";\nimport { rememberAction } from \"./actions/remember\";\nimport { memoryContextProvider } from \"./providers/memoryContext\";\n\nexport const memoryPlugin: Plugin = {\n name: \"@elizaos/plugin-memory-ts\",\n description:\n \"Plugin for long-term memory management with remember, recall, and forget capabilities\",\n actions: [rememberAction, recallAction, forgetAction],\n providers: [memoryContextProvider],\n};\n\nexport { forgetAction } from \"./actions/forget\";\nexport { recallAction } from \"./actions/recall\";\nexport { rememberAction } from \"./actions/remember\";\nexport { memoryContextProvider } from \"./providers/memoryContext\";\nexport {\n decodeMemoryText,\n encodeMemoryText,\n type ForgetParameters,\n IMPORTANCE_LABELS,\n MEMORY_METADATA_SEPARATOR,\n MEMORY_SOURCE,\n MemoryImportance,\n type MemoryMetadata,\n type MemoryMetadataValue,\n type MemorySearchResult,\n type ParsedMemory,\n type RecallParameters,\n type RememberParameters,\n} from \"./types\";\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "C7F07CBEF581DD5B64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|