跳转至

记忆导出/导入脚本

与其他用户分享你的 claude-mem 知识!这些脚本允许你导出特定记忆(观察、会话、摘要和提示),并将它们导入到另一个 claude-mem 安装中。

使用场景

  • 分享 Windows 兼容性知识给 Windows 用户
  • 分享 Bug 修复模式给贡献者
  • 跨团队分享项目特定经验
  • 备份特定记忆集合以便妥善保管

工作原理

导出脚本

使用混合搜索(结合 ChromaDB 向量嵌入与 FTS5 全文搜索)搜索数据库,并导出所有匹配的内容:

  • 观察(Observations) - 单独的学习成果和发现
  • 会话(Sessions) - 会话元数据
  • 摘要(Summaries) - 会话摘要
  • 提示(Prompts) - 促成工作的用户提示

输出是一个可移植的 JSON 文件,可以共享。

隐私说明: 导出文件以纯文本形式包含所有匹配的记忆数据。在分享前请检查导出内容,确保其中不包含敏感信息(API 密钥、密码、私有路径)。

导入脚本

导入记忆并具备重复预防功能:

  • 在插入前检查每条记录是否已存在
  • 自动跳过重复记录
  • 通过事务性导入维护数据完整性
  • 报告已导入与已跳过的内容

当目标安装中已存在某个会话时,其本地标题、提示和已注册的记忆会话 ID 会被保留。来自导出的新观察和新摘要会附加到该现有会话上。如果该会话还没有记忆会话 ID,导入程序会先注册导出的 ID,然后再添加这些记忆。重新导入同一份导出文件时,仍会跳过已恢复的记忆。

重复检测策略: - 会话(Sessions):通过 claude_session_id(唯一) - 摘要(Summaries):通过 sdk_session_id(唯一) - 观察(Observations):通过 sdk_session_id + title + created_at_epoch(复合) - 提示(Prompts):通过 claude_session_id + prompt_number(复合)

使用方法

导出记忆

# Export all Windows-related memories
npx tsx scripts/export-memories.ts "windows" windows-memories.json

# Export bug fixes
npx tsx scripts/export-memories.ts "bugfix" bugfixes.json

# Export specific feature work
npx tsx scripts/export-memories.ts "progressive disclosure" progressive-disclosure.json

参数: 1. <query> - 搜索查询(使用混合语义 + 全文搜索) 2. <output-file> - 输出的 JSON 文件路径 3. --project=name - 可选:将结果筛选到特定项目

示例输出:

🔍 Searching for: "windows"
✅ Found 54 observations
✅ Found 12 sessions
✅ Found 12 summaries
✅ Found 7 prompts

📦 Export complete!
📄 Output: windows-memories.json
📊 Stats:
   • 54 observations
   • 12 sessions
   • 12 summaries
   • 7 prompts

导入记忆

# Import from an export file
npx tsx scripts/import-memories.ts windows-memories.json

参数: 1. <input-file> - 输入的 JSON 文件(来自导出脚本)

示例输出:

📦 Import file: windows-memories.json
📅 Exported: 2025-12-10T23:45:00.000Z
🔍 Query: "windows"
📊 Contains:
   • 54 observations
   • 12 sessions
   • 12 summaries
   • 7 prompts

🔄 Importing sessions...
   ✅ Imported: 12, Skipped: 0
🔄 Importing summaries...
   ✅ Imported: 12, Skipped: 0
🔄 Importing observations...
   ✅ Imported: 54, Skipped: 0
🔄 Importing prompts...
   ✅ Imported: 7, Skipped: 0

✅ Import complete!
📊 Summary:
   Sessions:     12 imported, 0 skipped
   Summaries:    12 imported, 0 skipped
   Observations: 54 imported, 0 skipped
   Prompts:      7 imported, 0 skipped

重新导入(重复预防)

如果对同一文件再次运行导入,重复记录会被自动跳过:

🔄 Importing sessions...
   ✅ Imported: 0, Skipped: 12  ← All skipped (already exist)
🔄 Importing summaries...
   ✅ Imported: 0, Skipped: 12
🔄 Importing observations...
   ✅ Imported: 0, Skipped: 54
🔄 Importing prompts...
   ✅ Imported: 0, Skipped: 7

分享记忆

给导出作者的说明

  1. 导出你的记忆:

    npx tsx scripts/export-memories.ts "windows" windows-memories.json
    

  2. 通过以下方式分享 JSON 文件:

  3. GitHub gist
  4. 项目仓库(shared-memories/)
  5. 直接文件传输
  6. 打包到发布版本中

  7. 记录包含的内容:

  8. 使用了什么查询
  9. 包含哪些知识
  10. 哪些人可能从中受益

给导入用户的说明

  1. 将导出文件下载到本地机器

  2. 查看其中的内容(可选):

    cat windows-memories.json | jq '.totalObservations, .totalSessions'
    

  3. 导入到你的数据库:

    npx tsx scripts/import-memories.ts windows-memories.json
    

  4. 通过搜索验证导入:

    WORKER_PORT=$(jq -r .CLAUDE_MEM_WORKER_PORT ~/.claude-mem/settings.json)
    curl "http://127.0.0.1:$WORKER_PORT/api/search?query=windows&format=index&limit=10"
    

JSON 导出格式

{
  "exportedAt": "2025-12-10T23:45:00.000Z",
  "exportedAtEpoch": 1733876700000,
  "query": "windows",
  "totalObservations": 54,
  "totalSessions": 12,
  "totalSummaries": 12,
  "totalPrompts": 7,
  "observations": [ /* array of observation objects */ ],
  "sessions": [ /* array of session objects */ ],
  "summaries": [ /* array of summary objects */ ],
  "prompts": [ /* array of prompt objects */ ]
}

安全特性

✅ 重复预防 - 不会重新导入已存在的记录 ✅ 事务性 - 全有或全无的导入(数据库保持一致) ✅ 只读导出 - 导出脚本以只读模式打开数据库 ✅ 依赖排序 - 会话先于观察/摘要导入 ✅ 验证 - 在开始前检查数据库是否存在

高级用法

按项目导出

# Export only claude-mem project memories
npx tsx scripts/export-memories.ts "bugfix" bugfixes.json --project=claude-mem

# Export all memories for a specific project
npx tsx scripts/export-memories.ts "" all-project.json --project=my-app

按类型导出

# Export only discoveries
npx tsx scripts/export-memories.ts "type:discovery" discoveries.json

# Export only bug fixes
npx tsx scripts/export-memories.ts "type:bugfix" bugfixes.json

按日期范围导出

您可以在导出后对结果进行筛选:

# Export all memories, then filter manually with jq
npx tsx scripts/export-memories.ts "" all-memories.json
cat all-memories.json | jq '.observations |= map(select(.created_at_epoch > 1700000000000))' > recent-memories.json

合并多个导出

# Export different topics
npx tsx scripts/export-memories.ts "windows" windows.json
npx tsx scripts/export-memories.ts "linux" linux.json

# Import both
npx tsx scripts/import-memories.ts windows.json
npx tsx scripts/import-memories.ts linux.json

故障排查

数据库未找到

❌ Database not found at: /Users/you/.claude-mem/claude-mem.db

解决方法:请确保 claude-mem 已安装且至少运行过一次。

导入文件未找到

❌ Input file not found: windows-memories.json

解决方法:检查文件路径。如有需要,请使用绝对路径。

部分导入

如果导入中途失败,事务将回滚——您的数据库保持不变。请修复问题后重试。

贡献记忆集

如果您导出了可能对他人有用的宝贵知识:

  1. 向 shared-memories/ 目录提交一个 PR
  2. 包含一个 README,说明导出内容
  3. 使用相关关键词进行标记(windows、linux、bugfix 等)
  4. 社区成员随后即可导入您的知识!

实用导出示例

Windows 兼容性知识:

npx tsx scripts/export-memories.ts "windows compatibility installation" windows-fixes.json

渐进式披露架构:

npx tsx scripts/export-memories.ts "progressive disclosure architecture token" pd-patterns.json

缺陷修复模式:

npx tsx scripts/export-memories.ts "bugfix error handling" bugfix-patterns.json

性能优化:

npx tsx scripts/export-memories.ts "performance optimization caching" perf-tips.json

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem