摘要: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.json的genie.userId为权威来源;也可先跑python3 scripts/migrate.py --diagnose查看所有账号分布与 user_id。DB 中 session 数最多的user_id仅作辅助验证,两者不一致以storage.json为准并告警。
步骤 3:选择源账号(被迁移的账号)
接着输入序号选择源账号------也就是存放旧对话 / 记忆的那个账号(例如你切换前的主账号)。工具会校验「源 ≠ 目标」,防止自我覆盖。

步骤 4:确认迁移并等待完成
确认后,工具会:
- 自动备份到
~/.workbuddy/migrate_backups/{timestamp}_{uid}/(不可跳过); - 迁移 Session(对话记录)、Memory(记忆,追加去重合并,不覆盖当前记忆)、Connector(深度合并,保留目标已有配置);
- 处理 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 工具使用的问题,欢迎在评论区交流。
延伸阅读
- 项目仓库(MIT,含 SKILL.md 与数据隔离全景图):https://github.com/xiaoliuzhuan666/workbuddy-account-migrate
- 数据隔离全景图:仓库
references/data_isolation_map.md - WorkBuddy 个人版 → 企业版历史会话迁移(另一种场景的三种方案)