用途:这是基于 Map 实现的零依赖 recall/save 记忆适配器,记录在进程重启后消失。适合本地开发、Vitest/Playwright 测试、无需持久化的单进程演示。不适合生产多进程部署(每个 worker 各自持有 Map,用户记忆不一致),也不适合需要跨重启保留的数据;生产环境应改用 redis()(见 tanstack-ai-memory-redis 技能)。
主要能力与选项:inMemory(options?) 支持 topK(默认 6)、minScore(默认 0.15)、kinds 用于 recall 调优;embedder: { embed(text): Promise<number[]> } 可启用语义评分(recall 与 save 都经它嵌入);extract(turn, scope) 可返回派生事实并与原始轮次一同持久化(例如调用 LLM 提取偏好),不提供时 save 只存原始 user/assistant 消息,recall 按词法加时间新近度打分;render(hits) 可替换内置提示渲染器。
用法:从 @tanstack/ai-memory 引入 memoryMiddleware,从 @tanstack/ai-memory/in-memory 引入 inMemory,const memory = inMemory(),再调用 memoryMiddleware({ adapter: memory, scope: { threadId: 'demo-thread', userId: 'alice' } })。静态 scope 适用于开发/测试,真实应用应从会话派生。
限制:每次 recall 会扫描 scope 内所有记录,约 10 万条以内可用,超过应切到 Redis。