{"_id":"@carbide/l2-memory-manager","name":"@carbide/l2-memory-manager","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@carbide/l2-memory-manager","version":"1.0.0","description":"MemoryManager 组件，对话记忆管理 - Day 1 核心组件 L2","main":"dist/index.cjs.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"build":"rollup -c","test":"jest","prepublishOnly":"npm run build"},"keywords":["langchain","memory","buffer","conversation","agent"],"license":"MIT","dependencies":{"langchain":"^0.1.0","@langchain/openai":"^0.0.10","dotenv":"^17.4.2"},"devDependencies":{"@rollup/plugin-typescript":"^11.1.6","@types/jest":"^30.0.0","jest":"^29.7.0","rollup":"^4.13.0","tslib":"^2.6.2","ts-jest":"^29.1.2","typescript":"^5.4.3"},"_id":"@carbide/l2-memory-manager@1.0.0","gitHead":"8fcec274b8440276b389983dbb41d0d710e52962","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-saDy8qwaizJk880bw9FN0ZZsN6WD9RGUKKesK4c2BX1HCK5uoaX8ackS/AVMilMaeIplKGaH5+jzXsXUnvokuw==","shasum":"4ffa90c06e9af8dcdaf2fb2e58ad19c7763ce4ff","tarball":"https://registry.npmjs.org/@carbide/l2-memory-manager/-/l2-memory-manager-1.0.0.tgz","fileCount":6,"unpackedSize":12201,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDeYHpzwgiXFi6Ng1uU4yV9wKUIXuNDyRN3XWuYjD/JVAIhAONWkH97ATcjYGloWeAQVT5MhoQKITBcW/CdngdTXODQ"}]},"_npmUser":{"name":"carbide","email":"15867139271@163.com"},"directories":{},"maintainers":[{"name":"carbide","email":"15867139271@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/l2-memory-manager_1.0.0_1776423003188_0.22750220529844034"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-17T10:50:03.075Z","1.0.0":"2026-04-17T10:50:03.325Z","modified":"2026-04-17T10:50:03.562Z"},"maintainers":[{"name":"carbide","email":"15867139271@163.com"}],"description":"MemoryManager 组件，对话记忆管理 - Day 1 核心组件 L2","keywords":["langchain","memory","buffer","conversation","agent"],"license":"MIT","readme":"# L2 MemoryManager - 对话记忆管理\n\nDay 1 核心组件 L2，基于 LangChain.js 的 `RunnableWithMessageHistory` 和 `ChatMessageHistory` 实现的对话记忆管理。\n\n## 安装\n\n```bash\nnpm install @carbide/l2-memory-manager\n```\n\n## 使用\n\n### 基本用法（默认会话）\n\n```typescript\nimport { MemoryManager } from '@carbide/l2-memory-manager';\n\nconst memoryManager = new MemoryManager({\n  apiKey: 'your-openai-api-key',\n  modelName: 'gpt-4',\n  memoryKey: 'history'\n});\n\n// 对话（自动记忆上下文）\nconst response1 = await memoryManager.chat('我叫张三');\nconst response2 = await memoryManager.chat('我叫什么名字？'); // 能记住是张三\n\n// 获取历史记录\nconst history = await memoryManager.getHistory();\n\n// 手动保存上下文\nawait memoryManager.saveContext('你好', '你好！有什么可以帮助你的？');\n\n// 清空记忆\nawait memoryManager.clearMemory();\n```\n\n### 多会话管理\n\n```typescript\n// 用户1的对话\nconst response1 = await memoryManager.chat('你好，我叫小明', 'user-001');\nconst response2 = await memoryManager.chat('你还记得我的名字吗？', 'user-001');\n\n// 用户2的对话（独立的历史）\nconst response3 = await memoryManager.chat('你好，我叫小红', 'user-002');\nconst response4 = await memoryManager.chat('你知道我是谁吗？', 'user-002');\n\n// 管理会话\nconst sessionIds = memoryManager.getSessionIds(); // 获取所有会话ID\nawait memoryManager.clearMemory('user-001'); // 清除指定会话的历史\nmemoryManager.removeSession('user-002'); // 移除指定会话\n```\n\n## API\n\n| 方法 | 说明 | 参数 |\n|------|------|------|\n| `chat(message, sessionId?)` | 对话（自动保存到记忆） | `message`: 消息内容<br>`sessionId`: 会话ID，默认为\"default\" |\n| `getHistory(sessionId?)` | 获取历史记录 | `sessionId`: 会话ID，默认为\"default\" |\n| `saveContext(input, output, sessionId?)` | 手动保存上下文 | `input`: 用户输入<br>`output`: AI输出<br>`sessionId`: 会话ID，默认为\"default\" |\n| `clearMemory(sessionId?)` | 清空记忆 | `sessionId`: 会话ID，默认为\"default\" |\n| `removeSession(sessionId)` | 移除指定会话 | `sessionId`: 会话ID |\n| `getSessionIds()` | 获取所有会话ID | 无 |\n\n## 测试\n\n### 运行测试\n\n```bash\nnpm run test\n```\n\n### 测试文件\n\n- `src/index.test.ts` - 单元测试文件\n\n## 示例\n\n### 基本使用示例\n\n详见 `examples/basic-usage.ts` 文件，包含以下示例：\n\n1. 基本对话（默认会话）\n2. 多会话管理\n3. 历史管理\n4. 手动保存上下文\n\n### 运行示例\n\n```bash\n# 安装 tsx\nnpm install -g tsx\n\n# 运行示例\nOPENAI_API_KEY=\"your-api-key\" tsx examples/basic-usage.ts\n```\n\n## 技术实现\n\n- 使用 `ChatPromptTemplate.fromMessages` 构建提示模板\n- 使用 `RunnableWithMessageHistory` 管理对话历史\n- 使用 `ChatMessageHistory` 存储会话历史\n- 支持多会话管理，通过 `sessionId` 区分不同用户\n\n## 在项目中使用\n\n详见 `day-01/02-chat-bot` 等项目。\n","readmeFilename":"README.md","_rev":"1-fecc6226c60acf8eb751126c557d05c6"}