memanto ChatGPT/Claude conversation-memory migrati产品系统

我要开发同款
T_X2026年09月15日
2阅读

技术信息

系统类型
Web
行业分类
开发工具

作品详情

行业场景

memanto 是一个 AI Agent 记忆层开源项目(Python),但它的迁移工具链不支持 ChatGPT / Claude 这两个最大的对话记忆来源。大量用户想把 ChatGPT / Claude 里积累的对话上下文、偏好、修正迁出来变成可携带的记忆,却没有工具支持。这个适配器填补了这个空白,让用户能真正"own your memory"。

功能介绍

1、ChatGPT 迁移适配器(chatgpt_export.py):读取 ChatGPT 官方导出的 conversations.json,解析 mapping 消息树——沿 current_node 的 parent 链回溯出当前对话主线,无 current_node 时回退到所有带文本节点,跳过 system/tool 角色,输出可被 memanto 直接消费的迁移数据。

2、Claude 迁移适配器(claude_export.py):Claude 导出格式跨版本漂移,解析器做成容错式——兼容 chat_messages / messages 两种键名、sender / role 两种角色字段、text / content blocks / parts 三种文本载体。

3、共用 mapper:抽出 _map_conversation_export 辅助函数,map_chatgpt 与 map_claude 复用它,只传不同的 source 标签。消息文本映射为 content,会话标题 + 说话人角色映射为 tags,角色/会话 id/消息 id 打包进 [Supporting data] 页脚,type 留空交由 memanto 自动分类。

4、CLI 集成:新增 migrate chatgpt 和 migrate claude 两个子命令,支持 --file(本地导出文件)、--user-only(只迁用户自己的消息,最接近 ChatGPT 的 saved memory)、--dry-run(预览不写入)。

5、边界处理:UTF-8 BOM(真实导出和 Windows 写的文件常带)、无 current_node、非 list 的 JSON、文件不存在、超长内容截断。

项目实现

纯 Python 标准库实现,无第三方依赖,完全离线可复现。

1、导出层:chatgpt_export.py / claude_export.py 读取本地导出文件,解析后输出 provider-style 迁移 JSON,接口与既有 mem0/letta/supermemory 导出器保持一致,返回 (export_path, export_dict)。

2、映射层:mappers.py 新增 map_chatgpt / map_claude 并注册进 MAPPERS 注册表。

3、CLI 层:commands/migrate.py 注册 chatgpt / claude 两个 provider,新增 _run_chatgpt_flow / _run_claude_flow 流程与两个子命令。

4、测试覆盖:19 个单元测试(11 个 ChatGPT + 8 个 Claude),覆盖正常路径、UTF-8 BOM、无 current_node、坏 JSON、非 list JSON、文件缺失、仅用户消息模式、格式变体(messages 键 / role 字段 / content blocks)、映射后的 payload 字段合法性、迁移 dry-run 摘要。

5、验证结果:19 个新测试全部通过;既有 migrate / analyze 测试零破坏;migrate chatgpt 与 migrate claude 两条 CLI dry-run 端到端跑通;改动以 patch 形式干净应用于最新上游 main(6 文件 1234 行新增)。

GitHub 分支:https://github.com/t877416676-creator/memanto/tree/feat/chatgpt-adapter

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论