/** 记忆层级 */ export type MemoryLayer = 'L0' | 'L1' | 'L2' | 'L3'; /** 记忆条目 */ export interface MemoryEntry { id: string; category: string; key: string; content: string; importance: number; createdAt: string; updatedAt: string; memoryLayer: MemoryLayer; sourceSessionId?: string; sourceTimestamp?: string; sceneId?: string; personaFacet?: string; sourceLayer?: MemoryLayer; sourceIds?: string[]; } export interface ExternalMemoryStore { save(entry: { userId: string; threadId: string | number; content: string; category: string; relevance?: number; expiresAt?: number; meta?: any; }): Promise; getByThread(threadId: string | number, limit?: number): Promise; getByUser(userId: string, category?: string, limit?: number): Promise; search(userId: string, query: string, topK?: number): Promise; delete(id: string | number): Promise; clearThread(threadId: string | number): Promise; load(userId: string, options?: { threadId?: number | string; category?: string; limit?: number; }): Promise; clear(userId: string): Promise; } /** * 长期记忆服务 * 默认存储在 {dataDir}/memories/memory.json * 支持注入外部 MemoryStore(如 DB 实现),注入后优先使用外部存储 */ export declare class MemoryService { private storePath; private store; private externalStore?; private defaultUserId; private defaultThreadId; constructor(dataDir?: string, externalStore?: ExternalMemoryStore); setDefaultContext(context?: { userId?: string; threadId?: string | number; }): void; private toMemoryEntry; save(key: string, content: string, category?: string, importance?: number, extras?: Partial>): MemoryEntry; private saveToExternal; delete(key: string): boolean; recall(query?: string, category?: string, limit?: number): MemoryEntry[]; recallAsync(query?: string, category?: string, limit?: number, context?: { userId?: string; threadId?: string | number; }): Promise; /** * 获取用于注入 system prompt 的记忆文本。 * * 安全限制: * - 单条记忆 content 截断到 MAX_ENTRY_CHARS(默认 2000 字符),防止超大记忆 * (如误存的工具结果/工作流快照)撑爆 system prompt 导致 TPM 429 * - 总长度限制 MAX_TOTAL_CHARS(默认 8000 字符),确保 prompt 不会过大 */ getAllForPrompt(maxEntries?: number): string; getAllForPromptAsync(maxEntries?: number, context?: { userId?: string; threadId?: string | number; }): Promise; private formatForPrompt; getStats(): { total: number; byCategory: Record; }; getKeys(): string[]; getAllEntries(layer?: MemoryLayer): MemoryEntry[]; getAllEntriesAsync(layer?: MemoryLayer, context?: { userId?: string; threadId?: string | number; }): Promise; private load; private persist; private generateId; } export declare function configureMemoryService(options: { dataDir?: string; externalStore?: ExternalMemoryStore; context?: { userId?: string; threadId?: string | number; }; }): MemoryService; export declare function getMemoryService(dataDir?: string): MemoryService; /** 重置单例(测试用) */ export declare function resetMemoryService(): void; //# sourceMappingURL=memory.service.d.ts.map