UNPKG

@agentkai/core

Version:

AgentKai核心包,提供AI助手系统的基础功能

88 lines (87 loc) 2.62 kB
/** * 系统适配器,提供AISystem与新接口的兼容层 */ export class SystemAdapter { constructor(aiSystem) { Object.defineProperty(this, "aiSystem", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.aiSystem = aiSystem; } /** * 添加记忆 * 适配新的记忆接口到旧的AISystem */ async addMemory(input) { const { content, importance = 5, type = 'fact' } = input; // 转换为旧版记忆格式的元数据 const metadata = { type: this.convertMemoryType(type), importance: this.normalizeImportance(importance) }; // 调用原始addMemory方法 await this.aiSystem.addMemory(content, metadata); // 创建符合新格式的记忆对象返回 return { id: `mem_${Date.now()}`, // 简单生成ID content, timestamp: Date.now(), importance, type, }; } /** * 搜索记忆 * 适配新的搜索接口到旧的AISystem */ async searchMemories(query, limit = 5) { // 获取旧格式的记忆结果 const oldMemories = await this.aiSystem.searchMemories(query); // 限制结果数量 const limitedMemories = oldMemories.slice(0, limit); // 转换为新格式 return limitedMemories.map(mem => ({ id: mem.id, content: mem.content, timestamp: mem.createdAt, importance: mem.metadata?.importance || 5, type: this.reverseConvertMemoryType(mem.type), similarity: mem.metadata?.similarity })); } /** * 将新的记忆类型转换为系统内部类型 */ convertMemoryType(type) { const typeMap = { 'fact': 'fact', 'experience': 'event', 'concept': 'fact', 'procedure': 'fact', 'other': 'fact' }; return typeMap[type] || 'fact'; } /** * 将系统内部类型转换为新的记忆类型 */ reverseConvertMemoryType(type) { const typeMap = { 'fact': 'fact', 'event': 'experience', 'goal': 'concept', 'decision': 'procedure' }; return typeMap[type] || 'other'; } /** * 将1-10范围的重要性归一化为0-1范围 */ normalizeImportance(importance) { // 将1-10转换为0-1 return Math.max(0, Math.min(1, (importance - 1) / 9)); } }