AI 记忆怎么跨电脑同步?Codex、Claude、WorkBuddy、DSH 共用一套上下文

两台 Mac、4 个 Agent,如何共用一套 AI 记忆

3 月份折腾 OpenClaw 的时候,搞了很多乱七八糟的东西,后来发现同一个 AI 工具能不能长期用,模型只是一部分,配置、文件和记忆怎么处理这些才是问题的关键,后来还写了一篇文章反思。[1]
一个月后,我又把 4 年 Obsidian 日记里的 9830 条记忆喂给 AI,推倒重做了一套记忆系统。那次折腾得更深:数据库、查询、同步、去重、长期维护,全碰了一遍。[2]
再后来,我已经不满足于使用别人的东西,准备自己开发一套。当时的痛点是在使用 OpenClaw、Claude Code 这些工具时,安装的 Skill、MCP 这些东西不同步,每次都要重新安装、更新一遍。为此还分析了 Claude Code 泄露的源码、OpenClaw 和 Hermes 里相关的机制,各个文件都整理出来了,后面一忙,特么又烂尾了。
图片
 【图1 Conduit 同步工具的 GUI 设计稿截图】
这一烂尾就是拖到前几天。
刚好在网上看到一篇文章,作者用 OpenViking 把知识库、长期记忆和 Agent 技能放到了一起,还接入了 Claude Code、WorkBuddy 等工具。[3] 从逻辑和使用习惯、功能来说,算是我策划的项目的加强版。
在安装之前,让 AI 也同步翻了翻 GitHub 上同类型的仓库,主要比较了 OpenViking 和 Supermemory。最后选择 OpenViking,原因是:我需要在 2 台电脑、4 个 AI 工具里同步这些信息。
我办公室是 Mac mini,常年不关机。家里用的 MacBook Pro,两台电脑上都有安装 ChatGPT、Claude、WorkBuddy 和 DeepSeek Harness。我要解决的不是“再装一个知识库”,而是这些工具能不能读到同一套记忆,两台电脑之间又能不能接着用。
这篇文章就是折腾成功的过程和展示,供各位参考。


01.
架构需要如何设计
图片

这事儿不是说在电脑上部署 OpenViking 这个服务就行,工具的调用、网络连接、文件同步,这些都要考虑。
结合我的真实情况和使用习惯,用 GPT-6 Astra 帮我搭建了整个架构:

Text复制
1
2
3
4
5
6
7
8
9
10
11
12
Dropbox
├── Skill、规则、Markdown、原始资料
└── 完成并检查过的备份包
MacBook 上的 4 个 Agent:Codex / Claude / WorkBuddy / DSH
│ Tailscale 私网 + SSH(当前已验收)
Mac mini(长期在线)
├── OpenViking:保存和检索 AI 记忆
├── SSH:当前跨电脑查询入口
├── Tailscale Serve:已配置,HTTPS 证书仍待处理
└── Codex / Claude / WorkBuddy / DSH 本机也能直接访问
这里一共三层,别混在一起:
OpenViking 管记忆。 它把有用的偏好、项目背景、历史事件和资料保存下来,需要时再找出来。
Tailscale 管两台电脑之间的连接。 可以把它理解成只属于自己设备的一条私路。MacBook 不在办公室,也可以通过这条路访问 Mac mini。
Dropbox 管普通文件。 我的 Skill、规则、Markdown 和原始资料,本来就在 Dropbox 里同步,继续这么用就行(国内的可以用其他网盘代替)
后面的安装就比较简单了:


02.
第一步:Mac mini 做服务器端
图片

我没有用 Docker(Mac mini 丐版,空间实在是不足),直接让 AI 在 Mac mini 上建了一个独立的 Python 环境。这样不会和电脑里其它 Python 项目混在一起:

Bash复制
1
2
3
4
5
6
python3 -m venv ~/.local/share/openviking/venv
source ~/.local/share/openviking/venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --upgrade openviking
openviking-server init
openviking-server doctor
前四行是安装,init 是配置向导,doctor 是体检。
我最后用的配置方案是:
  • OpenViking 运行在 Mac mini;
  • 用一个本地小模型把文字变成方便搜索的索引,模型大小只有 24MB 左右;
  • 需要生成摘要时,走我原来就在使用的 AI 中转服务;
  • OpenViking 只监听本机的某个地址和端口;
  • 数据暂时放在 ~/.openviking/data;
  • 密钥只放在本机配置中,不写进 Dropbox。
配置文件主要有两个:

Text复制
1
2
~/.openviking/ov.conf 服务怎么运行、模型用什么、数据放哪里
~/.openviking/ovcli.conf 本机工具去哪里连接服务
第一次启动后,至少检查两项:

Bash复制
1
2
curl http://127.0.0.1:1933/health
curl http://127.0.0.1:1933/ready
第一条回答“服务有没有活着”,第二条才会检查文件、搜索和模型能不能正常工作,只看第一条不够。
我让 AI 加了自动启动,开机和中途退出都会重新启动,不然以我这丢三落四的机型,每次换电脑之前还要先想一下“办公室那台服务到底开没开”,这套共享相当于废了。
目前实际检查结果是:服务正常、搜索正常、没有待处理任务和错误;OpenViking 的 MCP 接口可以返回 15 个工具,4 个 Agent 的本地连接也已经接通。[4]


03.
第二步:接入 4 个 AI 工具
图片

还是一样,让 AI 分析后分别接入各个工具就行。
OpenViking 有两种接法:一种是专用插件(官方出的),另一种是 MCP 模式,效果不一样:
工具
我的接法
实际效果
Codex
OpenViking 官方插件
每次提问前自动找相关记忆;对话后自动保存有价值的内容
DeepSeek Harness
官方记忆插件
可以自动读取和保存记忆
Claude Desktop
OpenViking 提供的 MCP 转接程序
能搜索和读取,但主要看 Claude 会不会主动调用
WorkBuddy
直接添加 MCP
能搜索和读取,但主要看模型会不会主动调用
Codex 的安装大致是:

Bash复制
1
2
codex plugin marketplace add volcengine/OpenViking
codex plugin add openviking-memory@openviking
然后在 Codex 配置中打开 plugin_hooks。第一次启动时,还要信任 OpenViking 的 5 个 hooks。这里的 hooks 就是几个自动动作:提问前找记忆、回答后保存、对话太长准备压缩前先提交一次。[4]
WorkBuddy 没有官方插件,需要配置 MCP 模式连接:

JSON复制
1
2
3
4
5
6
7
8
{
"mcpServers": {
"openviking": {
"type""http",
"url""http://127.0.0.1:1933/mcp"
}
}
}
同一台 Mac mini 上使用本机地址;另一台电脑则换成后面 Tailscale 提供的地址。
Claude Desktop 用的是 OpenViking 自带的转接程序,本质上也是把 Claude 的 MCP 请求送到同一个服务。DeepSeek Harness 则安装官方的 @openviking/dsh-memory-plugin。
不过这里有个坑:发现了 15 个工具,只能证明线接上了,不能证明 AI 每次都会主动使用记忆。 Codex 和 DeepSeek Harness 有专用插件,自动化更完整;Claude Desktop 和 WorkBuddy 主要走 MCP,测试时最好直接说“请从 OpenViking 搜索某条记忆”,再看它有没有真的调用工具。


04.
第三步:两台电脑连接
图片

OpenViking 只监听 Mac mini 本机,所以 MacBook Pro 不能直接访问 127.0.0.1:1933(使用代理也不行,代理不会让家里的 MacBook 和办公室的 Mac mini 自动变成一个局域网)。最后还是在两台电脑上都装了 Tailscale,并登录同一个账号。
在 Mac mini 上用 Tailscale Serve:

Bash复制
1
2
tailscale serve --bg http://127.0.0.1:1933
tailscale serve status
第一条会把 OpenViking 转成一个只有同一 Tailscale 账号才能打开的 HTTPS 地址,第二条检查转发状态。
规则确实建好了,但实际从 MacBook 访问时,证书申请一直失败,HTTPS 卡在握手阶段(这玩意儿就是个坑)
所以我最后走的是更直接的方式:先把 MacBook 的 SSH 公钥加入 Mac mini,再通过 Tailscale 地址登录 mini,在 mini 本机访问 OpenViking。
先验证远程服务:

Bash复制
1
2
3
4
MINI_USER="你的 Mac mini 用户名"
MINI_TS_IP="100.x.x.x"
ssh -i ~/.ssh/id_ed25519 "$MINI_USER@$MINI_TS_IP" \
'curl http://127.0.0.1:1933/health'
这一步已经跑通:MacBook 可以无密码进入 Mac mini,health、ready、会话列表、记忆搜索和正文读取都正常。
如果要让 MacBook 本机的软件临时把它当作 127.0.0.1:1933 使用,再加一层 SSH 端口转发:

Bash复制
1
2
3
4
5
MINI_USER="你的 Mac mini 用户名"
MINI_TS_IP="100.x.x.x"
ssh -N -L 1933:127.0.0.1:1933 \
-i ~/.ssh/id_ed25519 \
"$MINI_USER@$MINI_TS_IP"
保持这个终端运行后,MacBook 上的软件就可以使用:

Text复制
1
http://127.0.0.1:1933/mcp
这条链路的缺点是 SSH 进程要保持运行;后面如果 Tailscale Serve 的证书恢复,再换回固定 HTTPS 地址即可。
这里又要注意三件事:
  1. 只要任意一台电脑关闭 Tailscale,跨电脑访问就断了。Mac mini 本机仍然能用 OpenViking,但 MacBook Pro 读不到它。
  2. 普通的代理也不能代替 Tailscale,它们解决的不是同一个问题。
  3. MacBook 能远程搜索记忆,只能证明网络和查询链路通了。要让 MacBook 上的 4 个 Agent 每次自动读取和保存,还得分别安装插件或 MCP,不能因为 SSH 通了就当成全部配置完成。


05.
第四步:Dropbox 能同步哪些文件
图片

警告:
不要顺手把整个 OpenViking 数据目录放进 Dropbox。
不要顺手把整个 OpenViking 数据目录放进 Dropbox。
不要顺手把整个 OpenViking 数据目录放进 Dropbox。
OpenViking 里不只有普通文件,还有正在变化的搜索索引、任务队列和锁文件。Dropbox 的同步机制是“一台改完再传给另一台”,它不知道数据库现在写到哪一步。两台电脑同时改,不是多出一个冲突副本,而是正文和搜索索引对不上:东西明明在,AI 就是搜不到;或者搜到了,原文却已经不是那一份,整个文件就乱套了(你不知道哪一份文件才是最新的)
我的做法是:
可以放 Dropbox
不要放 Dropbox
Skill 源文件
运行中的 OpenViking 数据目录
AGENTS.md、规则、普通 Markdown
SQLite 数据库和队列文件
原始资料
向量索引和锁文件
已完成并检查过的备份包
API Key、Token、密码
不含密钥的配置示例
正在生成的半成品备份
两台电脑共享的是 Mac mini 上的同一个服务,不是各自启动一个 OpenViking,再让 Dropbox 把两份数据库自动合并。
还有几件事也要讲清楚。
第一,旧聊天不会自动全部搬进去。 插件安装后的新对话可以自动提炼记忆,但插件安装前的对话历史不会扫描。如果要导入,先按主题提炼,只留下稳定偏好、已确认决定和仍有效的项目状态。原始聊天、短问答、旧建议和密钥,没必要全部塞进去(文件大不用说,关键是很多信息会污染上下文,造成 Token 浪费)
第二,记忆多不等于每次对话都会全部加载。 OpenViking 会先按当前问题搜索,只给 AI 少量相关摘要;真的需要时,再读取完整内容。这样比把几千条记忆一股脑塞进对话里轻得多。但如果什么闲聊都存、旧结论也不清理,搜索结果一样会脏得没法看。
第三,它不负责同步所有东西。 Git 项目、软件依赖、插件安装、API Key,还是要在每台电脑各自处理。它保存的是 Agent 可查询的记忆和资料,不是整台电脑的一键迁移工具。
第四,我现在用的还是个人私网方案。 OpenViking 自己处于开发模式,主要靠“只监听本机 + Tailscale 私网”挡住外部访问。这适合我当前的两台个人设备,但不能直接当成公司多人使用的安全方案。


06.
现在做到哪了
图片

Mac mini 上的 OpenViking 已经常驻运行。Codex、Claude Desktop、WorkBuddy 和 DeepSeek Harness 都能连到同一套记忆,服务端的自动保存、记忆提取和查询也验证过了。
静态的 Skill、规则和 Markdown 继续走 Dropbox。实时数据库只留在 Mac mini,后面做成完整备份包再放进 Dropbox。
图片
 【图2 Mini 服务器端验收】
MacBook 这边也已经通过 Tailscale 和 SSH 连上 Mac mini,能直接读取 OpenViking。
就这样,这次安装的主体已经完成。
[1]: 陆离同学,《折腾 OpenClaw 🦞 这两月,真正拉开差距的不是模型,而是配置》,微信公众号,2026-03-06,./260306.html
[2]: 陆离同学,《9830条记忆之后,我把 AI 助手系统重建了》,微信公众号,2026-04-12,./260412.html
[3]: AI李子,《OpenViking 实战:把知识库、长期记忆和 Agent 技能统一到一个上下文文件系统》,人人都是产品经理,2026-09-04,https://www.woshipm.com/ai/6459718.html
[4]: OpenViking,OpenViking 官方文档,访问 2026-09-07,https://docs.openviking.ai/zh/getting-started/01-introduction