跳到主要内容
赞助推荐 搬瓦工怎么选:三网直连 CN2 GIA-E
工具链

WorkBuddy 全球版迁中国版:改目录名不行,定时任务直接导入

14 分钟阅读阅读(4)
赞助推荐 团队协作里的 AI 办公工作台

WorkBuddy 从全球版迁到中国版,改目录名走不通,但配置、Skills、定时任务和精选会话都能带走。 可行路径是目录只读、复制能复制的、账号相关重新生成、8 个定时任务直接导入、475 个会话里挑 30 个改写导入。

文中数字来自本机数据目录与本地数据库的只读统计。UID、密钥、账号与实际会话内容均已隐去,路径按客户端安装后的默认位置书写。

赞助推荐 一人公司 · 创业装备库
赞助推荐 一人公司 · 创业装备库

为什么切回来

切回来的原因只有一条:我主要用 DeepSeek 这一档模型,两边单价一样,随版本赠送的额度不同。全球版额度见底之后,继续用下去没有成本优势,于是我切回中国版。

定价和额度都会变,具体数字以官网为准,别拿这篇当价格依据。这篇只讲更花时间的那件事:怎么把东西搬过去,并且不丢。

两边不是同一套数据。目录名、账号归属、加密字段都不一样,所以「把文件夹改成另一个名字」这条最直觉的路,第一个就会断。

改目录名为什么不行

两个版本各用一套数据目录:全球版是 ~/.workbuddy-ai,中国版是 ~/.workbuddy。看着只差一个后缀,实际是五个问题叠在一起。

目录会撞。装过中国版的话,~/.workbuddy 已经存在,改名等于覆盖现有数据。

数据绑账号。会话记录按 user_id 过滤,两边的 UID 不一样,直接搬过去就是别人的数据。

部分字段加密。两边的 keyblob 不同,中国版能不能读全球版的加密字段,我没有验证,也不敢押在这上面。

旧路径散在文件里。我 552 个对话文件里,544 个写着 .workbuddy-ai。改名之后这些引用全部指向一个不存在的目录。

全球版会失去数据。改完就没有退路,出问题连对照的样本都没有。

第一条就足以否掉这个念头。后四条解释的是另一件事:为什么那些「看起来能跑」的迁移,最后总在某个地方断掉。

什么能迁,什么不能

先分清资产类型。能复制的复制,绑定账号的重新生成——这是整条路线唯一的判断标准,后面所有步骤都是它的展开。

数据 方式 说明
Skills 直接复制 同名 Skill 先比较差异,含 .env 的单独处理
人设文件 复制到新 UID 目录 位于 user-UID-personal/ 目录
全局记忆 追加到新 UID 文件 文件名是 UID_memory.md,别覆盖
工作文件夹 留在原处 会话里用的是绝对路径
模型配置 合并 models.json 检查它依赖的本地服务
MCP 界面重新开启并授权 不要复制 .master.key
定时任务 改写归属后导入 记录绑定账号,导入后还要查模型和路径
登录状态 重新登录 两个版本的认证文件分开
历史会话 精选后改写导入 风险最高,后面单独说

不要复制的清单很短:keyblob、device-id、security/、.master.key,以及任何认证文件。凭据搬过去既不一定能读,也不该跟着数据一起流动。

注意:凡是和账号绑定的东西——登录状态、MCP 授权、Skill 用到的密钥——一律在新版本里重新生成,不要从旧目录搬。

WorkDaddy 帮不上这个忙

搜「迁移工具」很容易碰到 WorkDaddy,一个关注度不低的开源项目。先把定位说清楚:它不是跨版本迁移工具。

它解决的是多账号切换、额度统计、签到、自动审批这些事。它说的「会话迁移」针对同一个客户端里的不同账号;跨版本它只明确支持导入模型配置。指望它把全球版整体搬过来,方向一开始就错了。

我对它做了一次定向源码审查,没有发现上传凭据的行为。这不是逐行审计,结论到这儿为止。最后我没有安装,四个理由:会提取本地密钥并解密 Token;会削弱审批和沙箱规则、自动点击允许;遥测默认开启,数据发往 Sentry,发送前做脱敏;账号保活、自动签到、额度轮换这类能力,可能踩到服务条款。

对一次性的迁移来说,它能省的工作量和它引入的风险不成比例。

完整迁移步骤

整个过程只有一条原则:全球版目录全程只读。任何时候都不要移动、改名或写入它,它是你唯一的退路。

1 退出全球版并备份

先 Cmd+Q 完全退出,只关窗口不算。然后用 ditto 把下面四份数据一起备份出去。

备份里有 Token,放在加密磁盘上,别丢在下载目录。

~/.workbuddy-ai
~/.workbuddy
~/Library/Application Support/CodeBuddyExtension
~/.workbuddy-key-fallback

我自己跳过了备份,因为当时中国版基本是空的、全球版全程只读。这是我的取舍,仍然建议你做。

2 装中国版并登录一次

从 workbuddy.cn 下载最新版,登录一次再退出,让它把目录结构建出来。新 UID 能在 memory/ 或 user-<uid>-personal/ 的目录名里看到。

如果应用退出时卡住,先确认没有窗口和未保存内容,再结束主进程。不要在有写操作进行到一半时动手。

3 复制文件

全程只读全球版目录:

  • 全局 Skills 复制到 ~/.workbuddy/skills,已存在的不覆盖,同名先比较差异。
  • 人设文件复制到新 UID 的 personal 目录。
  • 记忆追加到新 UID 的记忆文件,文件名是 <uid>_memory.md,别覆盖原有内容。
  • 合并 models.json,权限保持 600。
  • 校验所有 JSON 能正常解析。

4 重启并手动配置

  • 在界面里开启需要的 MCP,重新授权。
  • 导入定时任务,方法见后面单独一节。
  • 重新配置 Skill 用到的凭据。
  • 每类 Skill 各试跑一次,遇到路径错误再修。

复制过去的文件里,近 200 个还提到 .workbuddy-ai。不要批量替换——有些只是历史记录的一部分,改了反而破坏内容。

历史会话:475 个里只迁 30 个

我有 475 个会话,先分类再动手。真实分布比想象中极端:绝大部分是自动化任务的运行记录,本身没有阅读价值。

会话迁移筛选结果横向条形图,自动化运行记录 374 个、内容过少 38 个、最终迁移 30 个、没有对话文件 15 个、优先级较低 9 个、已删除 7 个、含加密内容 2 个

475 个会话的去向:近八成是自动化运行记录,真正值得迁移的只有 30 个。

做法是模仿客户端自身的写入逻辑,而不是照搬数据文件。照搬等于用旧版本的假设去碰新版本的库。

  • 退出中国版之后再写数据库,整个写入放在一个事务里。
  • user_id 改成中国版 UID,project_id 置空。
  • 按中国版的 schema 插入。两边的迁移版本号可能不同,我这里是 19 对 15。
  • 对话文件复制成副本再改,源文件不动。
  • 复制会话引用的图片,并改写图片路径前缀。
  • 确保 cwd 指向真实存在的文件夹。
  • 先只迁一个会话,确认能打开再批量处理。

注意:这套做法依赖未公开的数据结构,客户端升级后可能失效。全球版目录留一段时间,随时能回去看。

定时任务:别手动重建

这是我走过最大的弯路。一开始我把任务整理成清单,准备在新版里手动重建。迁完才发现,定时任务恰恰是最不该手搓的部分——我的 8 个任务全部可以直接导入,最后 8 个都进了中国版,保持原来的 2 个启用、6 个暂停。

任务定义存在 workbuddy.db 的 automations 表里,做法和会话一样,跟随客户端自身的导入逻辑。

  • 先完全退出中国版,确认没有残留进程占用数据库。
  • 逐字复制任务定义:提示词、计划、工作区都不改。
  • owner_user_id 改成中国版 UID,归属状态设为已确认。
  • 保持任务原有的启用或暂停状态。
  • next_run_at 设在未来,避免导入瞬间触发,也避免补跑错过的时间点。
  • 不复制运行状态和历史运行记录。
  • 任务记忆放到 <工作区>/.workbuddy/memory/automations/<任务 ID>/memory.md,这是中国版读取的位置。
  • 先导入一个暂停的任务,界面里确认能看到,再导其余。

导入成功不等于能跑。四件事必须逐条查,前两件几乎必中:

定时任务导入后复查项条形图,任务总数 8 个、模型需重选 6 个、提示词含旧路径 6 个、计划时间有偏差 1 个

8 个定时任务导入后需要返工的项目数:模型和路径各命中 6 个。

模型:任务保存的模型 ID 在新版里不一定存在,我有 6 个任务需要重新选模型。

路径:提示词里可能写死了 ~/.workbuddy-ai,我有 6 个任务提到这个目录。导入不管它们,它们运行时就会继续读写全球版数据。

权限:我的任务都是完全访问权限。导入之前要知道它们能碰到什么,别等到它删了文件才想起看。

时间:核对计划时间。我有一个任务写的和实际运行时间差了 1 小时。

注意:提示词里的密钥会原样过去。任务定义看起来只存在本地,但任务运行产生的会话可能走云同步。

最大的坑是云同步

最大的意外是云同步。中国版启动后几秒内,就自动处理了导入的会话——在云端创建了对话记录,也把会话标题发了出去。

这意味着三件事:本地删除不等于云端删除,应用内删除能不能清掉云端副本,我无法确认;上传范围不清楚,同步很快,看起来只传了元数据,但这不能证明正文没有上传;对话里的密钥要当真,我选中的 30 个会话里,19 个命中了疑似密钥的规则,其中一部分可能是误报。

注意:导入之前先扫一遍会话里的密钥。含真实密钥的会话,要么留在全球版,要么导入之后立刻更换密钥。

迁移后的检查清单

  • 左侧能看到迁入的会话
  • 打开有图片的会话,图片能显示
  • 在不重要的会话里发一条消息,确认能继续对话
  • 模型能实际调用
  • 每类 Skill 都试跑过
  • 需要的 MCP 已重新授权
  • 定时任务数量和启用状态正确
  • 启用的任务按时运行过一次,结果正常
  • 暂停的任务恢复前,已改好模型和路径
  • 涉及的真实密钥已更换
  • 全球版数据目录仍然保留,确认无误前不删

我验证到了哪一步

数据层是确认过的:

指标 数值 说明
会话入库 30 个 全部进入中国版数据库
对话记录 16,112 行 全部可解析
图片引用 94 处 全部能找到文件
定时任务 8 个 2 启用 6 暂停,状态未变

但在写这篇文章时,旧会话能否在界面里正常打开并继续对话,我还没验证完。旧会话保存的是全球版模型 ID,这一步最可能出问题。

定时任务也一样:数据库里 8 个任务、2 启用 6 暂停是对的,界面里也看到了试导入的那个。长期能不能稳定跑,要看后续结果。

我后来卸载了全球版 App。数据目录还在,但没迁的会话就没有直接查看的入口了。如果你还想翻旧会话,先别卸载。

总结

要点:不要改目录名。配置和 Skills 用复制,账号相关的重新生成。定时任务直接导入,别手动重建。历史会话只迁重要的,先试一个。导入前想清楚云同步和密钥。全球版目录留到确认不再需要为止。

整场迁移我花掉的时间,九成用在「想清楚哪些东西不该搬」,而不是搬本身。工具换一个版本,真正要重建的从来不是文件。

也值得说一句:这种一次性的脏活,放在几年前要么忍着不做,要么写一堆没人维护的脚本。这次是 AI 陪我一条条拆完的——包括替我审了那个不该装的工具。

引用与来源

赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型
赞(0)
未经允许不得转载:80aj » WorkBuddy 全球版迁中国版:改目录名不行,定时任务直接导入
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型