换了台电脑,Reasonix 全废了——我花了两个晚上写了个工具,永久解决
Reasonix 重度用户在三台电脑间切换时,发现 Skill、MCP、对话历史全部丢失,即使文件完整也无济于事。本文深入剖析了四个路径硬伤,并分享了如何开发 PortaKit 启动器,实现 Reasonix 的完全便携化,让数据随行,无缝切换。

作为一个 Reasonix 重度用户,我在三台电脑之间来回切换(公司、笔记本、家里)。每次换电脑,Skill、MCP、对话历史、项目记忆全部消失。最魔幻的是:把整个文件夹拷过去,打开依然是空白。本文记录了我如何定位根因,以及如何写出 PortaKit 这个便携化工具。

一、那个令人崩溃的瞬间
某个周一早上,我把 U 盘里的 Reasonix 插到公司电脑上,双击 reasonix-desktop.exe——
空白。
Skill 列表空的。MCP 配置空的。对话历史空的。沉淀了几十条核心记忆规则,一条都不剩。
我做的第一件事是检查文件:.reasonix\skills\ 下面 25 个 .md 文件全在.reasonix\memory\ 下面几十条记忆文件也都在。config.json 里 MCP 配置一字不差。
文件全在,但 Reasonix 不认。
二、追根溯源:四个路径硬伤
翻了一遍Reasonix的GitHub源码,找到了四个根因:
硬伤1:项目记忆按路径哈希命名
Reasonix对工作区路径做SHA1,取前16位作为项目记忆目录名。路径从C:\Reasonix 变成 D:\Reasonix,哈希就变了,旧记忆目录找不到了。
硬伤2:会话元数据存了旧路径
每个.meta.json里有个workspace字段。旧路径和新工作区不匹配——Reasonix的listSessions()直接把不匹配的会话全部过滤掉,侧边栏当然空白。
更坑的是,这些JSON文件里的反斜杠没转义(C:\Reasonix\…),JSON.parse()直接炸。loadSessionMeta()吞掉异常返回空对象,workspace字段变成undefined——过滤逻辑直接return []。
硬伤3:MCP路径硬编码盘符
config.json里10个MCP Server全部写了C:\Reasonix\python\python.exe这样的绝对路径。换盘符就全挂。
硬伤4:USERPROFILE默认指向C盘
Reasonix用~/.reasonix/存数据,~展开后是C:\Users\…。你哪怕把整个文件夹拷到U盘,它还是去C盘找数据。
也就是说,你把整个reasonix文件夹搬到新电脑上,依然没有SKILL、没有MCP、没有记忆、没有历史对话记录;你说那我把reasonix硬编码的C盘数据也同时搬到新电脑上,那也只是让你的SKILL、MCP能看到,但SKILL和MCP的内容你还得在新电脑上慢慢调才能像以前那样用。
但记忆和历史对话记录,想都不要想。
三、PortaKit的设计思路

核心想法很简单:写一个启动器,在Reasonix启动前修好一切。
双击 启动Reasonix.bat
├─1.%~dp0
自动获取当前路径
├─2.设置HOME=USERPROFILE= 当前路径
├─3.SHA1(路径) → 项目哈希 → 创建目录 + 自动重命名旧哈希目录
├─4.robocopy /XO融合本机数据(只复制更新的)
├─5.修补 config.json路径
├─6.Node.js修复所有会话元数据(BOM+JSON转义 + workspace)
└─7.启动Reasonix
总共 5 个文件,不到 300 行代码。
最棘手的部分是第 6 步——PowerShell 完全处理不了 JSON 反斜杠转义和 UTF-8 BOM,最后用 Node.js 写了个 _fix_sessions.js 才搞定。
四、效果

经历过一次bat启动后,整个Reasonix文件夹变成完全便携的:
- 拷到U盘→插任何Windows电脑→双击bat →一切照旧
- 放进同步盘→新电脑同步→双击bat →本机旧数据自动融合
- 覆盖到已有Reasonix的旧电脑→两边数据智能合并
不用重配 API Key,不用重装 Skill,不用重连 MCP。
所有东西都在!这就是你原来最熟悉的Reasonix!
五、GitHub 地址
https://github.com/CS-Faith/reasonix-portakit
欢迎 star,更欢迎提 issue 和 PR。
本文由 @月火连城 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!

起点课堂会员权益




