WorkBuddy 切换账号后一键恢复对话记录:开源迁移工具 workbuddy-account-migrate 实战

摘要:WorkBuddy 切换账号 / 重新登录后,旧账号的对话记录、长期记忆、MCP 连接器在界面上「消失」了------其实数据还在磁盘上,只是被 user_id 隔离。本文介绍 GitHub 用户 xiaoliuzhuan666 开源维护的社区项目 workbuddy-account-migrate(MIT,零依赖),如何用一条命令把旧账号数据合并到当前账号,附完整操作步骤、命令行参数、避坑与回滚方案。

⚠️ 声明 :workbuddy-account-migrate 是社区大佬(GitHub @xiaoliuzhuan666)的个人开源作品,并非本人开发。本文仅做使用实测与分享,工具的任何问题请向原作者反馈,与本文作者无关。

一、背景与痛点

你大概率遇到过这些场景:

  • 切换账号 / 重登 / 换身份后,侧边栏看不到历史会话;
  • 长期记忆(memory)、MCP 连接器配置也找不到了;
  • 原因:WorkBuddy 的数据按 user_id 隔离,新账号看不到旧账号数据目录里的内容------数据本身仍在磁盘,只是 UI 不显示。

手动改库风险高且容易漏。社区开源工具 workbuddy-account-migrate 做了一键合并:把旧账号的 Session / Memory / Connector 迁移到当前登录账号,使对话记录、记忆、连接器全部恢复可见。它补上了「同平台账号切换后数据合并」这块空白(竞品大多只做跨设备 / 跨平台同步)。

再次强调归属 :本项目由 GitHub 用户 xiaoliuzhuan666 开源维护(社区大佬作品,MIT 协议),不是本人开发的,本文只是把它从 GitHub 上扒下来实测了一遍、整理成中文教程分享给大家。尊重原作者,转载 / 二次创作请保留出处。

二、环境准备

  • Python 3.8+ (零第三方依赖,无需 pip install
  • 平台 :macOS ✅ / Windows ✅(v1.4,路径 %APPDATA%)/ Linux ✅(v1.4,路径 XDG_CONFIG_HOME
  • 不适用:CodeBuddy CLI(按项目隔离,不存在账号切换导致的数据丢失,无需迁移)
  • 仓库https://github.com/xiaoliuzhuan666/workbuddy-account-migrate (MIT 协议,最新 v1.4.0)

安全前提:迁移会读取本地 WorkBuddy 数据目录(含对话、记忆、连接器配置)。建议运行前先通读 scripts/migrate.py 源码,确认行为符合预期。本工具在迁移前会自动创建备份,但仍请自行评估风险------它是社区第三方工具(作者 xiaoliuzhuan666,非本人开发),运行未审计脚本前务必心里有数。

三、实现步骤

步骤 1:克隆并运行(交互式向导,推荐)

bash 复制代码
git clone https://github.com/xiaoliuzhuan666/workbuddy-account-migrate.git
cd workbuddy-account-migrate
python3 scripts/migrate.py

步骤 2:选择目标账号(接收数据的账号)

脚本会列出本机所有账号(序号、user_id、Sessions 数、Memory 大小、Connectors 数)。先输入序号选择目标账号------也就是你当前正在用、希望看到旧数据的那个账号。整个过程无需手动记 user_id。

找到 user_id 的方法(备用):v1.4 起以 storage.jsongenie.userId 为权威来源;也可先跑 python3 scripts/migrate.py --diagnose 查看所有账号分布与 user_id。DB 中 session 数最多的 user_id 仅作辅助验证,两者不一致以 storage.json 为准并告警。

步骤 3:选择源账号(被迁移的账号)

接着输入序号选择源账号------也就是存放旧对话 / 记忆的那个账号(例如你切换前的主账号)。工具会校验「源 ≠ 目标」,防止自我覆盖。

步骤 4:确认迁移并等待完成

确认后,工具会:

  1. 自动备份到 ~/.workbuddy/migrate_backups/{timestamp}_{uid}/不可跳过);
  2. 迁移 Session(对话记录)、Memory(记忆,追加去重合并,不覆盖当前记忆)、Connector(深度合并,保留目标已有配置);
  3. 处理 SQLite WAL 确保落盘,并校验源 user_id 已归零。

完成后提示迁移成功。

步骤 5:重启 WorkBuddy 刷新缓存

WorkBuddy 客户端有内存缓存,迁移后需完全退出并重启,侧边栏才会显示合并进来的历史会话与记忆。

四、命令行高级用法

不依赖交互向导时,可用显式参数(v1.4 起支持,无需切换登录态推断):

bash 复制代码
# 仅诊断:查看所有账号数据分布
python3 scripts/migrate.py --diagnose

# 指定源账号迁移(高级用户)
python3 scripts/migrate.py --source <USER_ID>

# 显式指定目标与源账号(v1.4 新增,不依赖登录态推断)
python3 scripts/migrate.py --source <USER_ID> --target <USER_ID>

# 回滚到指定备份(TAG 见备份目录名)
python3 scripts/migrate.py --rollback 20260525170000_abc12345

v1.2.0 还提供:--list-tasks--restore-tasks--generate-commands

五、常见问题 / 避坑

Q1:迁移后侧边栏还是看不到旧会话?

A:客户端有内存缓存,需完全退出 WorkBuddy 并重启;另请确认已正确选择「目标 = 当前登录账号」。

Q2:选错了源 / 目标怎么办?

A:用 --rollback <TAG> 回滚到迁移前自动创建的备份(备份目录在 ~/.workbuddy/migrate_backups/)。建议迁移后 7 天内勿手动删除备份。

Q3:会覆盖我当前账号已有的记忆吗?

A:不会。Memory 采用追加去重合并,Connector 为深度合并保留目标配置,不丢当前账号数据。

Q4:Windows / Linux 路径找不到数据目录?

A:v1.4 已适配 Windows(%APPDATA%)与 Linux(XDG_CONFIG_HOME)。若仍定位失败,先用 --diagnose 确认脚本识别到的路径。

Q5:CodeBuddy CLI 能用吗?

A:不适用。CodeBuddy CLI 按项目隔离,不存在账号切换导致的数据丢失,无需迁移。

六、总结

workbuddy-account-migrate 补上了「同平台账号切换后数据合并」这块空白:一条命令进入向导,选目标、选源、自动备份、合并会话 / 记忆 / 连接器、可回滚。零依赖、跨平台、MIT 协议。

核心三点请记住:

  • 迁移前自动备份、迁移后重启客户端;
  • Memory / Connector 为合并而非覆盖,不丢当前数据;
  • 涉及本地敏感数据,运行前建议通读源码

关于作者

我是 WorkBuddy 长期使用者,平时也做 AI 工具与效率类技术内容分享。关于 WorkBuddy 数据迁移、账号管理或本地 AI 工具使用的问题,欢迎在评论区交流。

延伸阅读


相关推荐
TunerT_TQ1 小时前
Valhalla 静态工程审阅 |OpenClaw 源码证据驱动评测【开源基础设施特辑】
开源
TunerT_TQ1 小时前
Valhalla 静态工程审阅 |PilotDeck 源码证据驱动评测【开源基础设施特辑】
开源
AI产品库2 小时前
2026年8月双响:ChatGPT免费版文本不限量,Qwen3.8-Max开启开源旗舰时代
chatgpt·开源
开源推荐官2 小时前
2026多商户B2B2C开源商城系统对比:Tigshop/CRMEB/NiuShop不止看开店功能
开源
ClouGence2 小时前
告别 Navicat!CloudDM:开源免费一站式数据库开发管理工具
数据库·sql·开源·数据库开发
fthux2 小时前
MCP协议开发实战:从零搭建AI Agent工具链
前端·人工智能·ai·开源·github
microrain11 小时前
从数据烟囱到融合中心:SagooIoT统一数据处理平台的设计实践
物联网·golang·开源·sagooiot
魔镜前的帅比12 小时前
(开源项目)x-claw(总)
python·ai·rust·开源
zzzzzz31012 小时前
从 react-bits 看动效组件化:别把视觉效果写成一次性页面代码
javascript·react.js·开源