> ## Content Index
> Fetch the complete content index at: https://isoziyuan.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 桌面 AI 客户端人格注入工具 v5.2：支持 6 个客户端，升级不再失效
- URL: https://isoziyuan.com/p/100167/
- Published: 2026-09-23T13:18:04.000Z
- Description: 把一个客户端升级就失效的老毛病彻底修掉：改成动态扫描 + 变量名无关的锚点，新增 Qoder 国际版/国内版两个独立目标，并附一键备份与回滚。附下载地址。
- Author: Isoziyuan
- Tags: 技术实战, 干货教程

你有没有过这种感觉：好不容易把 AI 客户端的系统提示词调教成自己想要的样子，客户端一升级，全没了。

WorkBuddy、Qoder、Codex、Hermes 这类桌面客户端的系统提示词都写死在程序包里，官方不给你改的地方。每次版本更新都会换掉这些文件，之前折腾的成果直接归零。

这个工具的思路很直接：**不去跟官方拼装管线较劲，而是在最后一棒把提示词换掉**。同时把「备份、校验、回滚」这套保命机制一起做好，让你敢用。

## 一、它解决什么问题

一句话：**让你自己写的人格提示词，真正成为客户端的系统提示词**，并且能随时一键还原。

具体做到四件事：

| 能力   | 说明                            |
| ---- | ----------------------------- |
| 注入人格 | 把你写的 .txt 文本注入客户端，成为模型看到的首要指令 |
| 自动备份 | 所有被改动的文件都先生成 .bak，原样留存        |
| 失败回滚 | 写入后自动做语法自检，不合格立刻回滚，不留半吊子状态    |
| 一键还原 | 双击「恢复」即可回到客户端原生状态             |

它支持两类完全不同的客户端，打法也不一样——这一点很重要，后面选目标时会用到：

| 类型      | 代表客户端              | 做法               | 更新后    |
| ------- | ------------------ | ---------------- | ------ |
| 有官方指令通道 | Qoder、Codex、Hermes | 直接写它们的官方配置文件     | 基本不受影响 |
| 只能拦截发送层 | WorkBuddy          | 在客户端发出请求前替换系统提示词 | 需要重跑一次 |

## 二、v5.2 这轮更新了什么

这轮不是加功能凑数，主要修了一个让工具直接不可用的毛病，另外把体验做顺了。

### 1\. 修好「识别不到客户端路径」

之前很多人遇到的现象是：明明装了 WorkBuddy，工具却说找不到安装目录。查下来是三层问题叠在一起：

| 层 | 问题                                                     | 后果                         |
| - | ------------------------------------------------------ | -------------------------- |
| ① | 新版 WorkBuddy 移除了 codebuddy.js 这个文件，而工具原先靠它判断「这是不是安装目录」 | 真实安装在跑，却被判定为「不是 WorkBuddy」 |
| ② | 注册表里 WorkBuddy AI 这个名字会被「WorkBuddy」的前缀匹配吃掉             | 国内版的目标被打到国际版目录上            |
| ③ | 注入点的压缩变量名随版本变化（eA,el → L,ei → ei,ea → e,t）             | 写死的锚点全部失配，注入无处可下           |

三层都修掉了，而且不是硬编码修，是改成**动态扫描 + 变量名无关的正则锚点**——以后客户端再换文件名、再改变量名，工具自己会认。这才是这类工具能长期活着的前提。

### 2\. 新增 Qoder，且国内版/国际版分开

Qoder 和 WorkBuddy 完全不是一类东西。它的模型请求不在 `app.asar` 里，而是藏在一个 33MB 的混淆包里，而且那个文件被官方的更新清单登记了哈希——**改它有被判损坏、被回滚的风险**。

所以这一版对 Qoder 换了个思路：走它自带的原生通道。Qoder 会在每次会话启动时读取用户目录下的 `AGENTS.md`，直接写它就行。结果是：零篡改、不碰二进制、**不需要重启客户端**。

另外，Qoder 国际版和国内版是两套独立安装、两套独立配置目录。工具把它们做成**两个完全隔离的目标**——选国际版绝不会碰国内版，反之亦然。

### 3\. 交互菜单重做

原来的菜单是纯 ASCII 拼的，又丑又不直观。现在改成彩色分组菜单，一眼看清每个客户端用什么方式注入、要不要重启。菜单大致长这样：

| 编号 | 客户端         | 版本  | 注入方式         | 需要重启 |
| -- | ----------- | --- | ------------ | ---- |
| 1  | WorkBuddy   | 国内版 | 拦截发送层        | 是    |
| 2  | WorkBuddyAI | 国际版 | 拦截发送层        | 是    |
| 3  | Qoder       | 国际版 | 原生 AGENTS.md | 否    |
| 4  | Qoder CN    | 国内版 | 原生 AGENTS.md | 否    |
| 5  | Hermes      | —   | SOUL.md      | 否    |
| 6  | Codex       | —   | 全局 AGENTS.md | 否    |

实际运行时菜单是带颜色的终端界面，分组显示、列对齐，还标出了「需重启 / 免重启」。改完之后不用记编号含义，看着选就行。

### 4\. 自动化验证扩到 208 项

这类直接改程序包的工具，最怕「看着跑通了其实写坏了」。所以这轮把自检做厚了，208 项断言覆盖：路径探测、真实包打补丁、注入后**真正执行一次**确认替换生效、语法自检失败能回滚、没有装 Node 时的兜底、双版本隔离等等。全绿才算过。

## 三、支持的 6 个客户端

| 编号 | 客户端              | 注入方式                      | 需要重启   |
| -- | ---------------- | ------------------------- | ------ |
| 1  | WorkBuddy（国内版）   | 拦截发送层，硬替换系统提示词            | 是（自动）  |
| 2  | WorkBuddyAI（国际版） | 同上                        | 是（自动）  |
| 3  | Qoder（国际版）       | 原生 \~/.qoder/AGENTS.md    | 否      |
| 4  | Qoder CN（国内版）    | 原生 \~/.qoder-cn/AGENTS.md | 否      |
| 5  | Hermes           | SOUL.md                   | 运行中才重启 |
| 6  | Codex            | 全局 AGENTS.md              | 运行中才重启 |

## 四、怎么用：三步

### 第 1 步：下载并解压

> **下载地址**：[https://pan.ailxw.com/pickup/37788](https://pan.ailxw.com/pickup/37788?ref=isoziyuan.com)  
> 大小 69.78 MB · 本站自建网盘 · 取件码 37788  
> 链接长期有效，如遇失效请在评论区留言。

压缩包除脚本外，还包含一组现成的人格模板，以及一份 WorkBuddy 主程序包的原始备份。

### 第 2 步：把人格放进目录

把你自己的提示词存成 `.txt`（UTF-8），丢进 `人格\` 目录。包里已经有现成的可以参考格式。放几个都可以，运行时会让你选。

### 第 3 步：双击运行

双击 `部署.bat`，菜单里按编号选目标，回车。想先看看情况不想动任何东西，就双击 `查看状态.bat`——它是只读的。

## 五、安全边界（务必看完）

这个工具会改动客户端自身的程序包文件，这一点必须说清楚，不能含糊：

| 项        | 说明                                                                  |
| -------- | ------------------------------------------------------------------- |
| 改动前      | 被修改的文件都会先生成同名 .bak 备份                                               |
| 写入时      | 先在内存里算好全部改动并校验，再统一写盘；任何一个文件不合格就整体回滚                                 |
| 写入后      | 做一次 node --check 语法自检，失败自动还原                                        |
| 想还原      | 双击 恢复.bat，从备份完整还原                                                   |
| 不用装 Node | 没装 Node 会自动改用客户端自带的运行时做自检                                           |
| 会重启客户端   | WorkBuddy 目标会强制关闭并重启客户端，**正在进行的对话会中断**；Qoder / Codex / Hermes 不需要重启 |
| 使用风险     | 请自行确认在你的环境里使用这类定制方式符合软件许可与相关规定，使用风险自负                               |

## 六、几个常见疑问

| 问题               | 回答                                                                    |
| ---------------- | --------------------------------------------------------------------- |
| 需要会编程吗？          | 不需要。放好文本文件，双击 bat，按编号选。菜单里的「注入方式」「是否重启」都是给你看的提示                       |
| 客户端更新后失效怎么办？     | WorkBuddy 需要重跑一次部署。如果提示「找不到任何受支持的注入锚点」，说明客户端内部结构大改，需要重新定位注入点（改一处正则即可） |
| 会不会把客户端弄坏？       | 所有改动都有备份，且写盘前先校验、失败即回滚。最差情况下跑一次「恢复」回到原状                               |
| 能同时给国内版和国际版都装上吗？ | 能。它们是独立目标，分别跑两次即可；只给其中一个装也完全没问题                                       |
| 人格文本要多长？         | 没有硬限制。但它是「写给模型看的系统提示词」，不是说明书，控制在能读完的长度更好                              |

## 七、技术细节（可跳过）

给想弄明白原理的人。不看也不影响使用。

### 为什么不在程序包里直接改提示词

因为主进程的拼装管线在 `app.asar` 里且带完整性校验——改一个字节就可能拒绝启动。所以选择在**发送函数的最后一棒**拦截：客户端怎么拼都行，请求发出前把系统消息换成你的文本。

### 注入点的定位方式

注入点不在入口包里，而在 SDK 的请求类上。入口包还会按场景分派（TUI / headless / 精简版），并且带 `lazy-*` 分块目录，**文件名带哈希、每次更新都会变**。所以工具不认文件名，只扫内容，匹配 `create(参数,参数){return this._client.post("/chat/completions",{body:...,stream:...})}` 这样一个形状。

用命名分组把压缩变量名捕获出来再回填，变量名怎么变都不影响匹配。

### 遇到过的一个隐蔽坑：ESM 里没有 require

精简版包是 ESM 产物，里面根本没有 `require`。如果注入代码只写 `require("fs")`，那么 CJS 包能生效、ESM 包**静默失效**——最难查的一类问题。修法是优先用 `process.getBuiltinModule("fs")`，再逐级退回 `require`。

### Qoder 为什么不用同一套做法

它的请求层在一个 33MB 的混淆包里（字符串是明文但标识符全被打乱），而且该文件被官方更新清单登记了哈希，改了有被判定损坏并自动回滚的风险。相比之下，它自带的 `AGENTS.md` 是标记为「每次会话都加载」的官方通道——没有任何理由为了「效果更硬」去改二进制。

## 八、说在最后

这类工具的价值不在于「技术多高深」，而在于**把备份、校验、回滚这套保命机制做扎实**，让你敢真的去用。改程序包本身是有风险的动作，能做的是把风险控制到「最差也能一键回来」。

如果你的客户端版本比较新、或者结构和我这边的不一样，欢迎把 `查看状态.bat` 的输出发给我，能看出来是哪种情况。

> **下载地址**：[https://pan.ailxw.com/pickup/37788](https://pan.ailxw.com/pickup/37788?ref=isoziyuan.com) （取件码 37788）