@elizaos/plugin-memory 2.0.0-alpha → 2.0.0-alpha.4
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 +426 -1072
- package/dist/index.js.map +9 -14
- package/package.json +2 -2
- package/dist/evaluators/index.d.ts +0 -3
- package/dist/evaluators/index.d.ts.map +0 -1
- package/dist/evaluators/long-term-extraction.d.ts +0 -3
- package/dist/evaluators/long-term-extraction.d.ts.map +0 -1
- package/dist/evaluators/summarization.d.ts +0 -3
- package/dist/evaluators/summarization.d.ts.map +0 -1
- package/dist/generated/prompts/typescript/prompts.d.ts +0 -16
- package/dist/generated/prompts/typescript/prompts.d.ts.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/providers/context-summary.d.ts +0 -3
- package/dist/providers/context-summary.d.ts.map +0 -1
- package/dist/providers/index.d.ts +0 -3
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/long-term-memory.d.ts +0 -3
- package/dist/providers/long-term-memory.d.ts.map +0 -1
- package/dist/schemas/index.d.ts +0 -4
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/long-term-memories.d.ts +0 -261
- package/dist/schemas/long-term-memories.d.ts.map +0 -1
- package/dist/schemas/memory-access-logs.d.ts +0 -116
- package/dist/schemas/memory-access-logs.d.ts.map +0 -1
- package/dist/schemas/session-summaries.d.ts +0 -280
- package/dist/schemas/session-summaries.d.ts.map +0 -1
- package/dist/services/memory-service.d.ts +0 -34
- package/dist/services/memory-service.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -64
- package/dist/types/index.d.ts.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/
|
|
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
|
|
6
|
-
"
|
|
7
|
-
"import type
|
|
8
|
-
"import {\n
|
|
9
|
-
"import
|
|
10
|
-
"import
|
|
11
|
-
"import { sql } from \"drizzle-orm\";\nimport {\n index,\n integer,\n jsonb,\n pgTable,\n real,\n text,\n timestamp,\n varchar,\n} from \"drizzle-orm/pg-core\";\n\nexport const longTermMemories = pgTable(\n \"long_term_memories\",\n {\n id: varchar(\"id\", { length: 36 }).primaryKey(),\n agentId: varchar(\"agent_id\", { length: 36 }).notNull(),\n entityId: varchar(\"entity_id\", { length: 36 }).notNull(),\n category: text(\"category\").notNull(),\n content: text(\"content\").notNull(),\n metadata: jsonb(\"metadata\"),\n embedding: real(\"embedding\").array(),\n confidence: real(\"confidence\").default(1.0),\n source: text(\"source\"),\n createdAt: timestamp(\"created_at\").default(sql`now()`).notNull(),\n updatedAt: timestamp(\"updated_at\").default(sql`now()`).notNull(),\n lastAccessedAt: timestamp(\"last_accessed_at\"),\n accessCount: integer(\"access_count\").default(0),\n },\n (table) => ({\n agentEntityIdx: index(\"long_term_memories_agent_entity_idx\").on(table.agentId, table.entityId),\n categoryIdx: index(\"long_term_memories_category_idx\").on(table.category),\n confidenceIdx: index(\"long_term_memories_confidence_idx\").on(table.confidence),\n createdAtIdx: index(\"long_term_memories_created_at_idx\").on(table.createdAt),\n })\n);\n",
|
|
12
|
-
"import { sql } from \"drizzle-orm\";\nimport { index, pgTable, text, timestamp, varchar } from \"drizzle-orm/pg-core\";\n\nexport const memoryAccessLogs = pgTable(\n \"memory_access_logs\",\n {\n id: varchar(\"id\", { length: 36 }).primaryKey(),\n memoryId: varchar(\"memory_id\", { length: 36 }).notNull(),\n memoryType: text(\"memory_type\").notNull(),\n agentId: varchar(\"agent_id\", { length: 36 }).notNull(),\n accessType: text(\"access_type\").notNull(),\n accessedAt: timestamp(\"accessed_at\").default(sql`now()`).notNull(),\n },\n (table) => ({\n memoryIdIdx: index(\"memory_access_logs_memory_id_idx\").on(table.memoryId),\n agentIdIdx: index(\"memory_access_logs_agent_id_idx\").on(table.agentId),\n accessedAtIdx: index(\"memory_access_logs_accessed_at_idx\").on(table.accessedAt),\n })\n);\n",
|
|
13
|
-
"import { sql } from \"drizzle-orm\";\nimport {\n index,\n integer,\n jsonb,\n pgTable,\n real,\n text,\n timestamp,\n varchar,\n} from \"drizzle-orm/pg-core\";\n\nexport const sessionSummaries = pgTable(\n \"session_summaries\",\n {\n id: varchar(\"id\", { length: 36 }).primaryKey(),\n agentId: varchar(\"agent_id\", { length: 36 }).notNull(),\n roomId: varchar(\"room_id\", { length: 36 }).notNull(),\n entityId: varchar(\"entity_id\", { length: 36 }),\n summary: text(\"summary\").notNull(),\n messageCount: integer(\"message_count\").notNull(),\n lastMessageOffset: integer(\"last_message_offset\").notNull().default(0),\n startTime: timestamp(\"start_time\").notNull(),\n endTime: timestamp(\"end_time\").notNull(),\n topics: jsonb(\"topics\"),\n metadata: jsonb(\"metadata\"),\n embedding: real(\"embedding\").array(),\n createdAt: timestamp(\"created_at\").default(sql`now()`).notNull(),\n updatedAt: timestamp(\"updated_at\").default(sql`now()`).notNull(),\n },\n (table) => ({\n agentRoomIdx: index(\"session_summaries_agent_room_idx\").on(table.agentId, table.roomId),\n entityIdx: index(\"session_summaries_entity_idx\").on(table.entityId),\n startTimeIdx: index(\"session_summaries_start_time_idx\").on(table.startTime),\n })\n);\n",
|
|
14
|
-
"import {\n type IAgentRuntime,\n logger,\n Service,\n type ServiceTypeName,\n type UUID,\n} from \"@elizaos/core\";\nimport { and, cosineDistance, desc, eq, gte, type SQL, sql } from \"drizzle-orm\";\nimport type { PgTable, TableConfig } from \"drizzle-orm/pg-core\";\nimport { longTermMemories, sessionSummaries } from \"../schemas\";\nimport type {\n LongTermMemory,\n LongTermMemoryCategory,\n MemoryConfig,\n SessionSummary,\n} from \"../types\";\n\ninterface LongTermMemoryRow {\n id: string;\n agentId: string;\n entityId: string;\n category: string;\n content: string;\n metadata: Record<string, unknown> | null;\n embedding: number[] | null;\n confidence: number | null;\n source: string | null;\n createdAt: Date;\n updatedAt: Date;\n lastAccessedAt: Date | null;\n accessCount: number | null;\n}\n\ninterface DrizzleDb {\n insert<T extends PgTable<TableConfig>>(\n table: T\n ): {\n values(data: Record<string, unknown>): Promise<void>;\n };\n select<T extends Record<string, unknown>>(\n columns?: T\n ): {\n from<TTable extends PgTable<TableConfig>>(\n table: TTable\n ): {\n where(condition: SQL): {\n orderBy(...args: SQL[]): {\n limit(n: number): Promise<Array<Record<string, unknown>>>;\n };\n };\n };\n };\n update<T extends PgTable<TableConfig>>(\n table: T\n ): {\n set(data: Record<string, unknown>): {\n where(condition: SQL): Promise<void>;\n };\n };\n delete<T extends PgTable<TableConfig>>(\n table: T\n ): {\n where(condition: SQL): Promise<void>;\n };\n}\n\nexport class MemoryService extends Service {\n static serviceType: ServiceTypeName = \"memory\" as ServiceTypeName;\n\n private sessionMessageCounts: Map<UUID, number>;\n private memoryConfig: MemoryConfig;\n private lastExtractionCheckpoints: Map<string, number>;\n\n capabilityDescription =\n \"Memory management with short-term summarization and long-term persistent facts\";\n\n constructor(runtime?: IAgentRuntime) {\n super(runtime);\n this.sessionMessageCounts = new Map();\n this.lastExtractionCheckpoints = new Map();\n this.memoryConfig = {\n shortTermSummarizationThreshold: 16,\n shortTermRetainRecent: 6,\n shortTermSummarizationInterval: 10,\n longTermExtractionEnabled: true,\n longTermVectorSearchEnabled: false,\n longTermConfidenceThreshold: 0.85,\n longTermExtractionThreshold: 30,\n longTermExtractionInterval: 10,\n summaryModelType: \"TEXT_LARGE\",\n summaryMaxTokens: 2500,\n summaryMaxNewMessages: 20,\n };\n }\n\n static async start(runtime: IAgentRuntime): Promise<Service> {\n const service = new MemoryService(runtime);\n await service.initialize(runtime);\n return service;\n }\n\n async stop(): Promise<void> {\n logger.info(\"MemoryService stopped\");\n }\n\n async initialize(runtime: IAgentRuntime): Promise<void> {\n this.runtime = runtime;\n\n const threshold = runtime.getSetting(\"MEMORY_SUMMARIZATION_THRESHOLD\");\n if (threshold) {\n this.memoryConfig.shortTermSummarizationThreshold = parseInt(String(threshold), 10);\n }\n\n const retainRecent = runtime.getSetting(\"MEMORY_RETAIN_RECENT\");\n if (retainRecent) {\n this.memoryConfig.shortTermRetainRecent = parseInt(String(retainRecent), 10);\n }\n\n const summarizationInterval = runtime.getSetting(\"MEMORY_SUMMARIZATION_INTERVAL\");\n if (summarizationInterval) {\n this.memoryConfig.shortTermSummarizationInterval = parseInt(\n String(summarizationInterval),\n 10\n );\n }\n\n const maxNewMessages = runtime.getSetting(\"MEMORY_MAX_NEW_MESSAGES\");\n if (maxNewMessages) {\n this.memoryConfig.summaryMaxNewMessages = parseInt(String(maxNewMessages), 10);\n }\n\n const longTermEnabled = runtime.getSetting(\"MEMORY_LONG_TERM_ENABLED\");\n if (longTermEnabled === \"false\" || longTermEnabled === false) {\n this.memoryConfig.longTermExtractionEnabled = false;\n } else if (longTermEnabled === \"true\" || longTermEnabled === true) {\n this.memoryConfig.longTermExtractionEnabled = true;\n }\n\n const confidenceThreshold = runtime.getSetting(\"MEMORY_CONFIDENCE_THRESHOLD\");\n if (confidenceThreshold) {\n this.memoryConfig.longTermConfidenceThreshold = parseFloat(String(confidenceThreshold));\n }\n\n const extractionThreshold = runtime.getSetting(\"MEMORY_EXTRACTION_THRESHOLD\");\n if (extractionThreshold) {\n this.memoryConfig.longTermExtractionThreshold = parseInt(String(extractionThreshold), 10);\n }\n\n const extractionInterval = runtime.getSetting(\"MEMORY_EXTRACTION_INTERVAL\");\n if (extractionInterval) {\n this.memoryConfig.longTermExtractionInterval = parseInt(String(extractionInterval), 10);\n }\n\n logger.debug(\n {\n summarizationThreshold: this.memoryConfig.shortTermSummarizationThreshold,\n summarizationInterval: this.memoryConfig.shortTermSummarizationInterval,\n maxNewMessages: this.memoryConfig.summaryMaxNewMessages,\n retainRecent: this.memoryConfig.shortTermRetainRecent,\n longTermEnabled: this.memoryConfig.longTermExtractionEnabled,\n extractionThreshold: this.memoryConfig.longTermExtractionThreshold,\n extractionInterval: this.memoryConfig.longTermExtractionInterval,\n confidenceThreshold: this.memoryConfig.longTermConfidenceThreshold,\n },\n \"MemoryService initialized\"\n );\n }\n\n private getDb(): DrizzleDb {\n const db = (this.runtime as IAgentRuntime & { db: DrizzleDb }).db;\n if (!db) {\n throw new Error(\"Database not available\");\n }\n return db;\n }\n\n getConfig(): MemoryConfig {\n return { ...this.memoryConfig };\n }\n\n updateConfig(updates: Partial<MemoryConfig>): void {\n this.memoryConfig = { ...this.memoryConfig, ...updates };\n }\n\n incrementMessageCount(roomId: UUID): number {\n const current = this.sessionMessageCounts.get(roomId) || 0;\n const newCount = current + 1;\n this.sessionMessageCounts.set(roomId, newCount);\n return newCount;\n }\n\n resetMessageCount(roomId: UUID): void {\n this.sessionMessageCounts.set(roomId, 0);\n }\n\n async shouldSummarize(roomId: UUID): Promise<boolean> {\n const count = await this.runtime.countMemories(roomId, false, \"messages\");\n return count >= this.memoryConfig.shortTermSummarizationThreshold;\n }\n\n private getExtractionKey(entityId: UUID, roomId: UUID): string {\n return `memory:extraction:${entityId}:${roomId}`;\n }\n\n async getLastExtractionCheckpoint(entityId: UUID, roomId: UUID): Promise<number> {\n const key = this.getExtractionKey(entityId, roomId);\n\n const cached = this.lastExtractionCheckpoints.get(key);\n if (cached !== undefined) {\n return cached;\n }\n\n try {\n const checkpoint = await this.runtime.getCache<number>(key);\n const messageCount = checkpoint ?? 0;\n this.lastExtractionCheckpoints.set(key, messageCount);\n return messageCount;\n } catch (error) {\n logger.warn({ error }, \"Failed to get extraction checkpoint from cache\");\n return 0;\n }\n }\n\n async setLastExtractionCheckpoint(\n entityId: UUID,\n roomId: UUID,\n messageCount: number\n ): Promise<void> {\n const key = this.getExtractionKey(entityId, roomId);\n this.lastExtractionCheckpoints.set(key, messageCount);\n\n try {\n await this.runtime.setCache(key, messageCount);\n logger.debug(\n `Set extraction checkpoint for ${entityId} in room ${roomId} at count ${messageCount}`\n );\n } catch (error) {\n logger.error({ error }, \"Failed to persist extraction checkpoint to cache\");\n }\n }\n\n async shouldRunExtraction(\n entityId: UUID,\n roomId: UUID,\n currentMessageCount: number\n ): Promise<boolean> {\n const threshold = this.memoryConfig.longTermExtractionThreshold;\n const interval = this.memoryConfig.longTermExtractionInterval;\n\n if (currentMessageCount < threshold) {\n return false;\n }\n\n const lastCheckpoint = await this.getLastExtractionCheckpoint(entityId, roomId);\n const currentCheckpoint = Math.floor(currentMessageCount / interval) * interval;\n const shouldRun = currentMessageCount >= threshold && currentCheckpoint > lastCheckpoint;\n\n logger.debug(\n {\n entityId,\n roomId,\n currentMessageCount,\n threshold,\n interval,\n lastCheckpoint,\n currentCheckpoint,\n shouldRun,\n },\n \"Extraction check\"\n );\n\n return shouldRun;\n }\n\n async storeLongTermMemory(\n memory: Omit<LongTermMemory, \"id\" | \"createdAt\" | \"updatedAt\">\n ): Promise<LongTermMemory> {\n const db = this.getDb();\n\n const id = crypto.randomUUID() as UUID;\n const now = new Date();\n\n const newMemory: LongTermMemory = {\n id,\n createdAt: now,\n updatedAt: now,\n accessCount: 0,\n ...memory,\n };\n\n try {\n await db.insert(longTermMemories).values({\n id: newMemory.id,\n agentId: newMemory.agentId,\n entityId: newMemory.entityId,\n category: newMemory.category,\n content: newMemory.content,\n metadata: newMemory.metadata || {},\n embedding: newMemory.embedding,\n confidence: newMemory.confidence,\n source: newMemory.source,\n accessCount: newMemory.accessCount,\n createdAt: now,\n updatedAt: now,\n lastAccessedAt: newMemory.lastAccessedAt,\n });\n } catch (error) {\n logger.error({ error }, \"Failed to store long-term memory\");\n throw error;\n }\n\n logger.info(`Stored long-term memory: ${newMemory.category} for entity ${newMemory.entityId}`);\n return newMemory;\n }\n\n async getLongTermMemories(\n entityId: UUID,\n category?: LongTermMemoryCategory,\n limit: number = 10\n ): Promise<LongTermMemory[]> {\n const db = this.getDb();\n\n const conditions = [\n eq(longTermMemories.agentId, this.runtime.agentId),\n eq(longTermMemories.entityId, entityId),\n ];\n\n if (category) {\n conditions.push(eq(longTermMemories.category, category));\n }\n\n const results = await db\n .select()\n .from(longTermMemories)\n .where(and(...conditions))\n .orderBy(desc(longTermMemories.confidence), desc(longTermMemories.updatedAt))\n .limit(limit);\n\n return results.map((row) => ({\n id: row.id as UUID,\n agentId: row.agentId as UUID,\n entityId: row.entityId as UUID,\n category: row.category as LongTermMemoryCategory,\n content: row.content as string,\n metadata: row.metadata as Record<string, unknown>,\n embedding: row.embedding as number[],\n confidence: row.confidence as number,\n source: row.source as string,\n createdAt: row.createdAt as Date,\n updatedAt: row.updatedAt as Date,\n lastAccessedAt: row.lastAccessedAt as Date,\n accessCount: row.accessCount as number,\n }));\n }\n\n async updateLongTermMemory(\n id: UUID,\n entityId: UUID,\n updates: Partial<Omit<LongTermMemory, \"id\" | \"agentId\" | \"entityId\" | \"createdAt\">>\n ): Promise<void> {\n const db = this.getDb();\n\n const updateData: Record<string, unknown> = {\n updatedAt: new Date(),\n };\n\n if (updates.content !== undefined) updateData.content = updates.content;\n if (updates.metadata !== undefined) updateData.metadata = updates.metadata;\n if (updates.confidence !== undefined) updateData.confidence = updates.confidence;\n if (updates.embedding !== undefined) updateData.embedding = updates.embedding;\n if (updates.lastAccessedAt !== undefined) updateData.lastAccessedAt = updates.lastAccessedAt;\n if (updates.accessCount !== undefined) updateData.accessCount = updates.accessCount;\n\n await db\n .update(longTermMemories)\n .set(updateData)\n .where(\n and(\n eq(longTermMemories.id, id),\n eq(longTermMemories.agentId, this.runtime.agentId),\n eq(longTermMemories.entityId, entityId)\n )\n );\n\n logger.info(`Updated long-term memory: ${id} for entity ${entityId}`);\n }\n\n async deleteLongTermMemory(id: UUID, entityId: UUID): Promise<void> {\n const db = this.getDb();\n\n await db\n .delete(longTermMemories)\n .where(\n and(\n eq(longTermMemories.id, id),\n eq(longTermMemories.agentId, this.runtime.agentId),\n eq(longTermMemories.entityId, entityId)\n )\n );\n\n logger.info(`Deleted long-term memory: ${id} for entity ${entityId}`);\n }\n\n async getCurrentSessionSummary(roomId: UUID): Promise<SessionSummary | null> {\n const db = this.getDb();\n\n const results = await db\n .select()\n .from(sessionSummaries)\n .where(\n and(eq(sessionSummaries.agentId, this.runtime.agentId), eq(sessionSummaries.roomId, roomId))\n )\n .orderBy(desc(sessionSummaries.updatedAt))\n .limit(1);\n\n if (results.length === 0) {\n return null;\n }\n\n const row = results[0];\n return {\n id: row.id as UUID,\n agentId: row.agentId as UUID,\n roomId: row.roomId as UUID,\n entityId: row.entityId as UUID | undefined,\n summary: row.summary as string,\n messageCount: row.messageCount as number,\n lastMessageOffset: row.lastMessageOffset as number,\n startTime: row.startTime as Date,\n endTime: row.endTime as Date,\n topics: (row.topics as string[]) || [],\n metadata: row.metadata as Record<string, unknown>,\n embedding: row.embedding as number[],\n createdAt: row.createdAt as Date,\n updatedAt: row.updatedAt as Date,\n };\n }\n\n async storeSessionSummary(\n summary: Omit<SessionSummary, \"id\" | \"createdAt\" | \"updatedAt\">\n ): Promise<SessionSummary> {\n const db = this.getDb();\n\n const id = crypto.randomUUID() as UUID;\n const now = new Date();\n\n const newSummary: SessionSummary = {\n id,\n createdAt: now,\n updatedAt: now,\n ...summary,\n };\n\n await db.insert(sessionSummaries).values({\n id: newSummary.id,\n agentId: newSummary.agentId,\n roomId: newSummary.roomId,\n entityId: newSummary.entityId || null,\n summary: newSummary.summary,\n messageCount: newSummary.messageCount,\n lastMessageOffset: newSummary.lastMessageOffset,\n startTime: newSummary.startTime,\n endTime: newSummary.endTime,\n topics: newSummary.topics || [],\n metadata: newSummary.metadata || {},\n embedding: newSummary.embedding,\n createdAt: now,\n updatedAt: now,\n });\n\n logger.info(`Stored session summary for room ${newSummary.roomId}`);\n return newSummary;\n }\n\n async updateSessionSummary(\n id: UUID,\n roomId: UUID,\n updates: Partial<Omit<SessionSummary, \"id\" | \"agentId\" | \"roomId\" | \"createdAt\" | \"updatedAt\">>\n ): Promise<void> {\n const db = this.getDb();\n\n const updateData: Record<string, unknown> = {\n updatedAt: new Date(),\n };\n\n if (updates.summary !== undefined) updateData.summary = updates.summary;\n if (updates.messageCount !== undefined) updateData.messageCount = updates.messageCount;\n if (updates.lastMessageOffset !== undefined)\n updateData.lastMessageOffset = updates.lastMessageOffset;\n if (updates.endTime !== undefined) updateData.endTime = updates.endTime;\n if (updates.topics !== undefined) updateData.topics = updates.topics;\n if (updates.metadata !== undefined) updateData.metadata = updates.metadata;\n if (updates.embedding !== undefined) updateData.embedding = updates.embedding;\n\n await db\n .update(sessionSummaries)\n .set(updateData)\n .where(\n and(\n eq(sessionSummaries.id, id),\n eq(sessionSummaries.agentId, this.runtime.agentId),\n eq(sessionSummaries.roomId, roomId)\n )\n );\n\n logger.info(`Updated session summary: ${id} for room ${roomId}`);\n }\n\n async getSessionSummaries(roomId: UUID, limit: number = 5): Promise<SessionSummary[]> {\n const db = this.getDb();\n\n const results = await db\n .select()\n .from(sessionSummaries)\n .where(\n and(eq(sessionSummaries.agentId, this.runtime.agentId), eq(sessionSummaries.roomId, roomId))\n )\n .orderBy(desc(sessionSummaries.updatedAt))\n .limit(limit);\n\n return results.map((row) => ({\n id: row.id as UUID,\n agentId: row.agentId as UUID,\n roomId: row.roomId as UUID,\n entityId: row.entityId as UUID | undefined,\n summary: row.summary as string,\n messageCount: row.messageCount as number,\n lastMessageOffset: row.lastMessageOffset as number,\n startTime: row.startTime as Date,\n endTime: row.endTime as Date,\n topics: (row.topics as string[]) || [],\n metadata: row.metadata as Record<string, unknown>,\n embedding: row.embedding as number[],\n createdAt: row.createdAt as Date,\n updatedAt: row.updatedAt as Date,\n }));\n }\n\n async searchLongTermMemories(\n entityId: UUID,\n queryEmbedding: number[],\n limit: number = 5,\n matchThreshold: number = 0.7\n ): Promise<LongTermMemory[]> {\n if (!this.memoryConfig.longTermVectorSearchEnabled) {\n logger.warn(\"Vector search is not enabled, falling back to recent memories\");\n return this.getLongTermMemories(entityId, undefined, limit);\n }\n\n const db = this.getDb();\n\n try {\n const cleanVector = queryEmbedding.map((n) =>\n Number.isFinite(n) ? Number(n.toFixed(6)) : 0\n );\n\n const similarity = sql<number>`1 - (${cosineDistance(\n longTermMemories.embedding,\n cleanVector\n )})`;\n\n const conditions = [\n eq(longTermMemories.agentId, this.runtime.agentId),\n eq(longTermMemories.entityId, entityId),\n sql`${longTermMemories.embedding} IS NOT NULL`,\n ];\n\n if (matchThreshold > 0) {\n conditions.push(gte(similarity, matchThreshold));\n }\n\n const results = (await db\n .select({\n memory: longTermMemories,\n similarity,\n })\n .from(longTermMemories)\n .where(and(...conditions))\n .orderBy(desc(similarity))\n .limit(limit)) as Array<{ memory: LongTermMemoryRow; similarity: number }>;\n\n return results.map((row) => ({\n id: row.memory.id as UUID,\n agentId: row.memory.agentId as UUID,\n entityId: row.memory.entityId as UUID,\n category: row.memory.category as LongTermMemoryCategory,\n content: row.memory.content,\n metadata: row.memory.metadata ?? {},\n embedding: row.memory.embedding ?? [],\n confidence: row.memory.confidence ?? 1.0,\n source: row.memory.source ?? \"\",\n createdAt: row.memory.createdAt,\n updatedAt: row.memory.updatedAt,\n lastAccessedAt: row.memory.lastAccessedAt ?? row.memory.updatedAt,\n accessCount: row.memory.accessCount ?? 0,\n similarity: row.similarity,\n }));\n } catch (error) {\n logger.warn({ error }, \"Vector search failed, falling back to recent memories\");\n return this.getLongTermMemories(entityId, undefined, limit);\n }\n }\n\n async getFormattedLongTermMemories(entityId: UUID): Promise<string> {\n const memories = await this.getLongTermMemories(entityId, undefined, 20);\n\n if (memories.length === 0) {\n return \"\";\n }\n\n const grouped = new Map<LongTermMemoryCategory, LongTermMemory[]>();\n\n for (const memory of memories) {\n if (!grouped.has(memory.category)) {\n grouped.set(memory.category, []);\n }\n grouped.get(memory.category)?.push(memory);\n }\n\n const sections: string[] = [];\n\n for (const [category, categoryMemories] of grouped.entries()) {\n const categoryName = category\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n\n const items = categoryMemories.map((m) => `- ${m.content}`).join(\"\\n\");\n sections.push(`**${categoryName}**:\\n${items}`);\n }\n\n return sections.join(\"\\n\\n\");\n }\n}\n",
|
|
15
|
-
"import type { Plugin } from \"@elizaos/core\";\nimport { longTermExtractionEvaluator, summarizationEvaluator } from \"./evaluators\";\nimport { contextSummaryProvider, longTermMemoryProvider } from \"./providers\";\nimport * as schema from \"./schemas\";\nimport { MemoryService } from \"./services/memory-service\";\n\nexport {\n longTermExtractionEvaluator,\n summarizationEvaluator,\n} from \"./evaluators\";\nexport { contextSummaryProvider, longTermMemoryProvider } from \"./providers\";\nexport * from \"./schemas\";\nexport { MemoryService } from \"./services/memory-service\";\nexport * from \"./types\";\n\nexport const memoryPlugin: Plugin = {\n name: \"memory\",\n description: \"Memory management with conversation summarization and long-term persistent memory\",\n\n services: [MemoryService],\n\n evaluators: [summarizationEvaluator, longTermExtractionEvaluator],\n\n providers: [longTermMemoryProvider, contextSummaryProvider],\n\n schema,\n};\n\nexport default memoryPlugin;\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\nconst MEMORY_TABLE = \"memories\";\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 return true;\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 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 runtime.deleteMemory(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 runtime.getMemories({\n tableName: MEMORY_TABLE,\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 runtime.deleteMemory(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
|
+
"/** 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\nconst MEMORY_TABLE = \"memories\";\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 return true;\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 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 runtime.getMemories({\n tableName: MEMORY_TABLE,\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\nconst MEMORY_TABLE = \"memories\";\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 return true;\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 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 entityId: message.entityId,\n content: {\n text: encodedText,\n source: MEMORY_SOURCE,\n },\n createdAt: Date.now(),\n };\n\n await runtime.createMemory(memoryEntry, MEMORY_TABLE, 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\nconst MEMORY_TABLE = \"memories\";\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 memories = await runtime.getMemories({\n tableName: MEMORY_TABLE,\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
|
+
"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"
|
|
16
11
|
],
|
|
17
|
-
"mappings": "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",
|
|
18
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "EF319ACCB2A97E7264756E2164756E21",
|
|
19
14
|
"names": []
|
|
20
15
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-memory",
|
|
3
|
-
"version": "2.0.0-alpha",
|
|
3
|
+
"version": "2.0.0-alpha.4",
|
|
4
4
|
"description": "Memory management plugin for ElizaOS (TypeScript)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://github.com/elizaos/eliza#readme",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@elizaos/core": "
|
|
55
|
+
"@elizaos/core": "2.0.0-alpha.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "^25.0.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"long-term-extraction.d.ts","sourceRoot":"","sources":["../../src/evaluators/long-term-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,eAAe,CAAC;AAgCvB,eAAO,MAAM,2BAA2B,EAAE,SAsHzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.ts","sourceRoot":"","sources":["../../src/evaluators/summarization.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,eAAe,CAAC;AA+CvB,eAAO,MAAM,sBAAsB,EAAE,SAgMpC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-generated prompt templates
|
|
3
|
-
* DO NOT EDIT - Generated from ../../../../../prompts/*.txt
|
|
4
|
-
*
|
|
5
|
-
* These prompts use Handlebars-style template syntax:
|
|
6
|
-
* - {{variableName}} for simple substitution
|
|
7
|
-
* - {{#each items}}...{{/each}} for iteration
|
|
8
|
-
* - {{#if condition}}...{{/if}} for conditionals
|
|
9
|
-
*/
|
|
10
|
-
export declare const initialSummarizationTemplate = "# Task: Summarize Conversation\n\nYou are analyzing a conversation to create a concise summary that captures the key points, topics, and important details.\n\n# Recent Messages\n{{recentMessages}}\n\n# Instructions\nGenerate a summary that:\n1. Captures the main topics discussed\n2. Highlights key information shared\n3. Notes any decisions made or questions asked\n4. Maintains context for future reference\n5. Is concise but comprehensive\n\n**IMPORTANT**: Keep the summary under 2500 tokens. Be comprehensive but concise.\n\nAlso extract:\n- **Topics**: List of main topics discussed (comma-separated)\n- **Key Points**: Important facts or decisions (bullet points)\n\nRespond in this XML format:\n<summary>\n <text>Your comprehensive summary here</text>\n <topics>topic1, topic2, topic3</topics>\n <keyPoints>\n <point>First key point</point>\n <point>Second key point</point>\n </keyPoints>\n</summary>";
|
|
11
|
-
export declare const INITIAL_SUMMARIZATION_TEMPLATE = "# Task: Summarize Conversation\n\nYou are analyzing a conversation to create a concise summary that captures the key points, topics, and important details.\n\n# Recent Messages\n{{recentMessages}}\n\n# Instructions\nGenerate a summary that:\n1. Captures the main topics discussed\n2. Highlights key information shared\n3. Notes any decisions made or questions asked\n4. Maintains context for future reference\n5. Is concise but comprehensive\n\n**IMPORTANT**: Keep the summary under 2500 tokens. Be comprehensive but concise.\n\nAlso extract:\n- **Topics**: List of main topics discussed (comma-separated)\n- **Key Points**: Important facts or decisions (bullet points)\n\nRespond in this XML format:\n<summary>\n <text>Your comprehensive summary here</text>\n <topics>topic1, topic2, topic3</topics>\n <keyPoints>\n <point>First key point</point>\n <point>Second key point</point>\n </keyPoints>\n</summary>";
|
|
12
|
-
export declare const longTermExtractionTemplate = "# Task: Extract Long-Term Memory (Strict Criteria)\n\nYou are analyzing a conversation to extract ONLY the most critical, persistent information about the user using cognitive science memory categories.\n\n# Recent Messages\n{{recentMessages}}\n\n# Current Long-Term Memories\n{{existingMemories}}\n\n# Memory Categories (Based on Cognitive Science)\n\n## 1. EPISODIC Memory\nPersonal experiences and specific events with temporal/spatial context.\n**Examples:**\n- \"User completed migration project from MongoDB to PostgreSQL in Q2 2024\"\n- \"User encountered authentication bug in production on March 15th\"\n- \"User had a negative experience with Docker networking in previous job\"\n\n**Requirements:**\n- Must include WHO did WHAT, WHEN/WHERE\n- Must be a specific, concrete event (not a pattern)\n- Must have significant impact or relevance to future work\n\n## 2. SEMANTIC Memory\nGeneral facts, concepts, knowledge, and established truths about the user.\n**Examples:**\n- \"User is a senior backend engineer with 8 years experience\"\n- \"User specializes in distributed systems and microservices architecture\"\n- \"User's primary programming language is TypeScript\"\n- \"User works at Acme Corp as technical lead\"\n\n**Requirements:**\n- Must be factual, timeless information\n- Must be explicitly stated or demonstrated conclusively\n- No speculation or inference from single instances\n- Core identity, expertise, or knowledge only\n\n## 3. PROCEDURAL Memory\nSkills, workflows, methodologies, and how-to knowledge.\n**Examples:**\n- \"User follows strict TDD workflow: write tests first, then implementation\"\n- \"User prefers git rebase over merge to maintain linear history\"\n- \"User's debugging process: check logs \u2192 reproduce locally \u2192 binary search\"\n- \"User always writes JSDoc comments before implementing functions\"\n\n**Requirements:**\n- Must describe HOW user does something\n- Must be a repeated, consistent pattern (seen 3+ times or explicitly stated as standard practice)\n- Must be a workflow, methodology, or skill application\n- Not one-off preferences\n\n# ULTRA-STRICT EXTRACTION CRITERIA\n\n## \u2705 DO EXTRACT (Only These):\n\n**EPISODIC:**\n- Significant completed projects or milestones\n- Important bugs, incidents, or problems encountered\n- Major decisions made with lasting impact\n- Formative experiences that shape future work\n\n**SEMANTIC:**\n- Professional identity (role, title, company)\n- Core expertise and specializations (stated explicitly or demonstrated conclusively)\n- Primary languages, frameworks, or tools (not exploratory use)\n- Established facts about their work context\n\n**PROCEDURAL:**\n- Consistent workflows demonstrated 3+ times or explicitly stated\n- Standard practices user always follows\n- Methodology preferences with clear rationale\n- Debugging, testing, or development processes\n\n## \u274C NEVER EXTRACT:\n\n- **One-time requests or tasks** (e.g., \"can you generate an image\", \"help me debug this\")\n- **Casual conversations** without lasting significance\n- **Exploratory questions** (e.g., \"how does X work?\")\n- **Temporary context** (current bug, today's task)\n- **Preferences from single occurrence** (e.g., user asked for code once)\n- **Social pleasantries** (thank you, greetings)\n- **Testing or experimentation** (trying out a feature)\n- **Common patterns everyone has** (likes clear explanations)\n- **Situational information** (working on feature X today)\n- **Opinions without persistence** (single complaint, isolated praise)\n- **General knowledge** (not specific to user)\n\n# Quality Gates (ALL Must Pass)\n\n1. **Significance Test**: Will this matter in 3+ months?\n2. **Specificity Test**: Is this concrete and actionable?\n3. **Evidence Test**: Is there strong evidence (3+ instances OR explicit self-identification)?\n4. **Uniqueness Test**: Is this specific to THIS user (not generic)?\n5. **Confidence Test**: Confidence must be >= 0.85 (be VERY conservative)\n6. **Non-Redundancy Test**: Does this add NEW information not in existing memories?\n\n# Confidence Scoring (Be Conservative)\n\n- **0.95-1.0**: User explicitly stated as core identity/practice AND demonstrated multiple times\n- **0.85-0.94**: User explicitly stated OR consistently demonstrated 5+ times\n- **0.75-0.84**: Strong pattern (3-4 instances) with supporting context\n- **Below 0.75**: DO NOT EXTRACT (insufficient evidence)\n\n# Critical Instructions\n\n1. **Default to NOT extracting** - When in doubt, skip it\n2. **Require overwhelming evidence** - One or two mentions is NOT enough\n3. **Focus on what's PERSISTENT** - Not what's temporary or situational\n4. **Verify against existing memories** - Don't duplicate or contradict\n5. **Maximum 2-3 extractions per run** - Quality over quantity\n\n**If there are no qualifying facts (which is common), respond with <memories></memories>**\n\n# Response Format\n\n<memories>\n <memory>\n <category>semantic</category>\n <content>User is a senior TypeScript developer with 8 years of backend experience</content>\n <confidence>0.95</confidence>\n </memory>\n <memory>\n <category>procedural</category>\n <content>User follows TDD workflow: writes tests before implementation, runs tests after each change</content>\n <confidence>0.88</confidence>\n </memory>\n <memory>\n <category>episodic</category>\n <content>User led database migration from MongoDB to PostgreSQL for payment system in Q2 2024</content>\n <confidence>0.92</confidence>\n </memory>\n</memories>";
|
|
13
|
-
export declare const LONG_TERM_EXTRACTION_TEMPLATE = "# Task: Extract Long-Term Memory (Strict Criteria)\n\nYou are analyzing a conversation to extract ONLY the most critical, persistent information about the user using cognitive science memory categories.\n\n# Recent Messages\n{{recentMessages}}\n\n# Current Long-Term Memories\n{{existingMemories}}\n\n# Memory Categories (Based on Cognitive Science)\n\n## 1. EPISODIC Memory\nPersonal experiences and specific events with temporal/spatial context.\n**Examples:**\n- \"User completed migration project from MongoDB to PostgreSQL in Q2 2024\"\n- \"User encountered authentication bug in production on March 15th\"\n- \"User had a negative experience with Docker networking in previous job\"\n\n**Requirements:**\n- Must include WHO did WHAT, WHEN/WHERE\n- Must be a specific, concrete event (not a pattern)\n- Must have significant impact or relevance to future work\n\n## 2. SEMANTIC Memory\nGeneral facts, concepts, knowledge, and established truths about the user.\n**Examples:**\n- \"User is a senior backend engineer with 8 years experience\"\n- \"User specializes in distributed systems and microservices architecture\"\n- \"User's primary programming language is TypeScript\"\n- \"User works at Acme Corp as technical lead\"\n\n**Requirements:**\n- Must be factual, timeless information\n- Must be explicitly stated or demonstrated conclusively\n- No speculation or inference from single instances\n- Core identity, expertise, or knowledge only\n\n## 3. PROCEDURAL Memory\nSkills, workflows, methodologies, and how-to knowledge.\n**Examples:**\n- \"User follows strict TDD workflow: write tests first, then implementation\"\n- \"User prefers git rebase over merge to maintain linear history\"\n- \"User's debugging process: check logs \u2192 reproduce locally \u2192 binary search\"\n- \"User always writes JSDoc comments before implementing functions\"\n\n**Requirements:**\n- Must describe HOW user does something\n- Must be a repeated, consistent pattern (seen 3+ times or explicitly stated as standard practice)\n- Must be a workflow, methodology, or skill application\n- Not one-off preferences\n\n# ULTRA-STRICT EXTRACTION CRITERIA\n\n## \u2705 DO EXTRACT (Only These):\n\n**EPISODIC:**\n- Significant completed projects or milestones\n- Important bugs, incidents, or problems encountered\n- Major decisions made with lasting impact\n- Formative experiences that shape future work\n\n**SEMANTIC:**\n- Professional identity (role, title, company)\n- Core expertise and specializations (stated explicitly or demonstrated conclusively)\n- Primary languages, frameworks, or tools (not exploratory use)\n- Established facts about their work context\n\n**PROCEDURAL:**\n- Consistent workflows demonstrated 3+ times or explicitly stated\n- Standard practices user always follows\n- Methodology preferences with clear rationale\n- Debugging, testing, or development processes\n\n## \u274C NEVER EXTRACT:\n\n- **One-time requests or tasks** (e.g., \"can you generate an image\", \"help me debug this\")\n- **Casual conversations** without lasting significance\n- **Exploratory questions** (e.g., \"how does X work?\")\n- **Temporary context** (current bug, today's task)\n- **Preferences from single occurrence** (e.g., user asked for code once)\n- **Social pleasantries** (thank you, greetings)\n- **Testing or experimentation** (trying out a feature)\n- **Common patterns everyone has** (likes clear explanations)\n- **Situational information** (working on feature X today)\n- **Opinions without persistence** (single complaint, isolated praise)\n- **General knowledge** (not specific to user)\n\n# Quality Gates (ALL Must Pass)\n\n1. **Significance Test**: Will this matter in 3+ months?\n2. **Specificity Test**: Is this concrete and actionable?\n3. **Evidence Test**: Is there strong evidence (3+ instances OR explicit self-identification)?\n4. **Uniqueness Test**: Is this specific to THIS user (not generic)?\n5. **Confidence Test**: Confidence must be >= 0.85 (be VERY conservative)\n6. **Non-Redundancy Test**: Does this add NEW information not in existing memories?\n\n# Confidence Scoring (Be Conservative)\n\n- **0.95-1.0**: User explicitly stated as core identity/practice AND demonstrated multiple times\n- **0.85-0.94**: User explicitly stated OR consistently demonstrated 5+ times\n- **0.75-0.84**: Strong pattern (3-4 instances) with supporting context\n- **Below 0.75**: DO NOT EXTRACT (insufficient evidence)\n\n# Critical Instructions\n\n1. **Default to NOT extracting** - When in doubt, skip it\n2. **Require overwhelming evidence** - One or two mentions is NOT enough\n3. **Focus on what's PERSISTENT** - Not what's temporary or situational\n4. **Verify against existing memories** - Don't duplicate or contradict\n5. **Maximum 2-3 extractions per run** - Quality over quantity\n\n**If there are no qualifying facts (which is common), respond with <memories></memories>**\n\n# Response Format\n\n<memories>\n <memory>\n <category>semantic</category>\n <content>User is a senior TypeScript developer with 8 years of backend experience</content>\n <confidence>0.95</confidence>\n </memory>\n <memory>\n <category>procedural</category>\n <content>User follows TDD workflow: writes tests before implementation, runs tests after each change</content>\n <confidence>0.88</confidence>\n </memory>\n <memory>\n <category>episodic</category>\n <content>User led database migration from MongoDB to PostgreSQL for payment system in Q2 2024</content>\n <confidence>0.92</confidence>\n </memory>\n</memories>";
|
|
14
|
-
export declare const updateSummarizationTemplate = "# Task: Update and Condense Conversation Summary\n\nYou are updating an existing conversation summary with new messages, while keeping the total summary concise.\n\n# Existing Summary\n{{existingSummary}}\n\n# Existing Topics\n{{existingTopics}}\n\n# New Messages Since Last Summary\n{{newMessages}}\n\n# Instructions\nUpdate the summary by:\n1. Merging the existing summary with insights from the new messages\n2. Removing redundant or less important details to stay under the token limit\n3. Keeping the most important context and decisions\n4. Adding new topics if they emerge\n5. **CRITICAL**: Keep the ENTIRE updated summary under 2500 tokens\n\nThe goal is a rolling summary that captures the essence of the conversation without growing indefinitely.\n\nRespond in this XML format:\n<summary>\n <text>Your updated and condensed summary here</text>\n <topics>topic1, topic2, topic3</topics>\n <keyPoints>\n <point>First key point</point>\n <point>Second key point</point>\n </keyPoints>\n</summary>";
|
|
15
|
-
export declare const UPDATE_SUMMARIZATION_TEMPLATE = "# Task: Update and Condense Conversation Summary\n\nYou are updating an existing conversation summary with new messages, while keeping the total summary concise.\n\n# Existing Summary\n{{existingSummary}}\n\n# Existing Topics\n{{existingTopics}}\n\n# New Messages Since Last Summary\n{{newMessages}}\n\n# Instructions\nUpdate the summary by:\n1. Merging the existing summary with insights from the new messages\n2. Removing redundant or less important details to stay under the token limit\n3. Keeping the most important context and decisions\n4. Adding new topics if they emerge\n5. **CRITICAL**: Keep the ENTIRE updated summary under 2500 tokens\n\nThe goal is a rolling summary that captures the essence of the conversation without growing indefinitely.\n\nRespond in this XML format:\n<summary>\n <text>Your updated and condensed summary here</text>\n <topics>topic1, topic2, topic3</topics>\n <keyPoints>\n <point>First key point</point>\n <point>Second key point</point>\n </keyPoints>\n</summary>";
|
|
16
|
-
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../src/generated/prompts/typescript/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,4BAA4B,25BA6B9B,CAAC;AAEZ,eAAO,MAAM,8BAA8B,25BAA+B,CAAC;AAE3E,eAAO,MAAM,0BAA0B,q7KAoI3B,CAAC;AAEb,eAAO,MAAM,6BAA6B,q7KAA6B,CAAC;AAExE,eAAO,MAAM,2BAA2B,0/BA+B7B,CAAC;AAEZ,eAAO,MAAM,6BAA6B,0/BAA8B,CAAC"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Plugin } from "@elizaos/core";
|
|
2
|
-
export { longTermExtractionEvaluator, summarizationEvaluator, } from "./evaluators";
|
|
3
|
-
export { contextSummaryProvider, longTermMemoryProvider } from "./providers";
|
|
4
|
-
export * from "./schemas";
|
|
5
|
-
export { MemoryService } from "./services/memory-service";
|
|
6
|
-
export * from "./types";
|
|
7
|
-
export declare const memoryPlugin: Plugin;
|
|
8
|
-
export default memoryPlugin;
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC7E,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,YAAY,EAAE,MAW1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-summary.d.ts","sourceRoot":"","sources":["../../src/providers/context-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,sBAAsB,EAAE,QA4DpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"long-term-memory.d.ts","sourceRoot":"","sources":["../../src/providers/long-term-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,sBAAsB,EAAE,QAqEpC,CAAC"}
|
package/dist/schemas/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|