mcpField
I
import

import

github.com/mem0aiAgent 工作流68.2k93 次安装1 天前更新
代码仓库

关于 import

将导出的记忆导入当前项目的 Mem0 技能。也支持从多种 AI 编码工具的配置文件及 Claude Code 原生 MEMORY.md 导入记忆。

主要功能

  1. 01解析 Mem0 导出文件
  2. 02连同元数据导入记录
  3. 03导入指定编码工具的配置
  4. 04导入 Claude Code MEMORY.md

适用场景

  1. 01从导出文件恢复记忆
  2. 02迁移受支持编码工具中的规则
  3. 03将 Claude Code 记忆导入 Mem0

MCP 相关

调用 add_memory 等 Mem0 MCP 工具,将导入的记录写入项目。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mem0ai/mem0 --skill import

安装后在 Claude Code 中输入/import确认已加载。

详细介绍

Mem0 导入

将记忆从 mem0 导出文件导入当前项目。

执行

步骤 1:确定要导入的导出文件

如果用户在 /mem0:import <filename> 中提供了文件名参数,请使用该文件。

否则,列出当前目录中名称包含 mem0-export 的 .md 文件:

ls -1 *.md 2>/dev/null | grep mem0-export || echo "No export files found"

如果找到多个文件,请询问用户要导入哪一个。如果没有找到,请输出:

No mem0-export files found in the current directory.
Run /mem0:export first, or provide the filename: /mem0:import <path-to-file>
步骤 2:解析导出文件

确定插件根目录。根据当前平台使用相应的变量:

  • Claude Code:${CLAUDE_PLUGIN_ROOT}
  • Codex:${CODEX_PLUGIN_ROOT}
  • Cursor:${CURSOR_PLUGIN_ROOT}

运行解析器脚本,将记忆记录提取为 JSON:

python3 "<PLUGIN_ROOT>/scripts/parse_export_file.py" "<path-to-export-file>"

这会输出一个 JSON 数组,其中每个元素包含:

  • id — 原始记忆 ID(仅供参考;导入时会分配新 ID)
  • type — 元数据类型
  • confidence — 元数据置信度值
  • branch — 元数据分支
  • files — 相关文件列表
  • categories — 类别列表
  • content — 记忆文本

如果脚本失败或输出 [],请输出:

Failed to parse <filename> or file contains no valid memory blocks.

并停止。

步骤 3:解析身份信息

确定当前身份:

  • user_id:取自 MEM0_USER_ID 环境变量,否则取 $USER,再否则使用 "default"
  • project_id(用作 app_id):取自 MEM0_PROJECT_ID 环境变量,或通过项目解析器获取
步骤 4:导入每条记忆

对于解析后的 JSON 数组中的每条记录,调用 add_memory,并传入:

  • text="<record.content>"
  • user_id=<active_user_id>
  • app_id=<active_project_id>
  • metadata={
    • "type": "<record.type>"(如果非空)
    • "confidence": "<record.confidence>"(如果非空)
    • "branch": "<record.branch>"(如果非空)
    • "files": <record.files>(如果非空,则传入该列表)
    • "source": "import"
    • }
  • infer=False

注意:

  • 不要传入原始 id——平台会分配新 ID。
  • 跳过 content 为空的记录(解析器已过滤这些记录,但仍需做好防护)。
  • 即使个别记录导入失败,也要继续导入;记录成功数量。
步骤 5:打印结果
Imported <N> memories into project <project_id>

其中 <N> 为成功导入的记忆数量。

如果有失败项:

Imported <N>/<total> memories into project <project_id> (<failed> failed)

从其他 AI 工具导入(--tools)

使用 --tools 调用时(例如 /mem0:import --tools),检测并从其他 AI 工具的配置文件导入:

支持的工具
工具文件/目录
Cursor.cursorrules
GitHub Copilot.github/copilot-instructions.md
Clinememory-bank/(包含 .md 文件的目录)
Continue.continue/rules.md
T1:检测
test -f .cursorrules && echo "cursor: .cursorrules"
test -f .github/copilot-instructions.md && echo "copilot: .github/copilot-instructions.md"
test -d memory-bank/ && echo "cline: memory-bank/"
test -f .continue/rules.md && echo "continue: .continue/rules.md"
T2:询问用户

列出找到的文件,并询问要导入哪些文件(输入编号,以逗号分隔,或输入 "all")。 如果没有找到:

No competing tool configuration files found.
Checked: .cursorrules, .github/copilot-instructions.md, memory-bank/, .continue/rules.md
T3:运行导入

对于每个选定的工具:

python3 "<PLUGIN_ROOT>/scripts/import_competing_tools.py" <tool> --path <file>

工具:cursorrules、copilot、cline、continue。

T4:报告
Imported <N> memories into <project_id> (cursor: <N>, copilot: <N>)

注意:使用 infer=False,标记为 metadata.source=<tool>-import,跳过少于 50 个字符的章节,将超过 10k 个字符的文本块截断,可安全重复运行(去重机制会处理重复内容)。


导入 Claude Code 的原生 MEMORY.md

使用 Claude Code 原生 MEMORY.md 文件的路径调用时(通常为 ~/.claude/projects/<proj-key>/memory/MEMORY.md),或当 on_session_start.sh 检测到原生自动记忆且用户选择导入时:

  1. 读取文件。文件包含以换行符分隔的记忆条目(每行一条事实, 有时带有 - 项目符号前缀)。
  2. 按非空行拆分。每行成为一条记忆。
  3. 跳过少于 20 个字符或仅为标题(#)的行。
  4. 对每一行,调用 add_memory,并传入:
    • text="<line>"
    • user_id=<active_user_id>
    • app_id=<active_project_id>
    • metadata={"type": "task_learning", "source": "memory-md-import", "confidence": 0.8}
    • infer=False
  5. 报告:已从 MEMORY.md 导入 <N> 条记忆到项目 <project_id>
  6. 建议禁用原生自动记忆:
    To avoid duplicate memory systems, add to ~/.claude/settings.json:
      "autoMemoryEnabled": false
    

这可弥补用户一直使用 Claude Code 原生记忆、随后切换到 mem0 时的冷启动空档。

错误处理

  • 如果在 <PLUGIN_ROOT>/scripts/parse_export_file.py 找不到解析器脚本,打印错误并停止。
  • 如果 add_memory 调用持续失败(例如,身份验证错误),报告问题并尽早停止。

评论

支持 Markdown