🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
← 全部攻略

把一份人设同时喂给八个命令行 Agent 之后

工具 / 效率类文章2026/10/30 发布2 次阅读

我一直在用四五个 coding agent 干活:同一个仓库,有时用 Claude Code,有时用 Codex,赶时间就换 OpenCode。麻烦不在于切换工具,在于每个工具里「我是谁、按什么规矩干活」这段设定各写一遍,改一次要改五处,改漏一处就开始出现两种风格的输出。

agent-purge 解决的就是这件事:一份 Markdown,喂给多个 agent。它现在的版本是 0.2.9,874 星,MIT,零依赖,Node ≥ 20。

它把入口统一成三件事

每家 agent 读系统提示词的位置都不一样:有的认启动参数,有的认配置文件,有的只能靠插件改运行时对象。这个工具把这些入口归成三个通道:

| 通道 | 机制 | 生效范围 |

|---|---|---|

| install | 写入该 harness 的托管配置块(Markdown / hooks / 插件) | 常驻,别人启动也生效 |

| shim | 往 PATH 前置同名小壳,转发给 agent-purge <h> | 裸敲命令也接管 |

| slash | 会话内 /purge on\|off\|status | 热切换,不动磁盘 |

三层写的是同一份 personas/<id>.md 的正文。这一点很关键:不是三套配置同步,是一个源三种投递方式,所以不存在「A 工具生效、B 工具还是旧的」这种漂移。

四种模式,后果差别很大

  • replace:人设替换掉宿主 system 里报名字的那些句子,工具说明保留。
  • strict:整段换成你的人设,工具说明也一起没了。
  • append:人设挂在最前,宿主 system 原样保留。
  • off:什么都不做。

第一次用 strict 我有点意外。作者在 README 里把实测数字直接摆出来了——本地假 provider 抓真实请求体,不是估算:

| harness | 实测版本 | 默认 system 字符数 | 注入后 |

|---|---|---|---|

| codex | 0.163.0 | 21,026 | 24 |

| claude | 2.1.304 | 6,379 | 156 |

| grok | 1.0.62 | 5,146 | 21 |

| omp | 17.4.2 | 34,511 | 10,106 |

| hermes | 0.21.5 | 8,139 | 7,554 |

| zcode | 0.16.9 | 9,359 | 9,359 |

| opencode | 1.19.3 | 19,332 | 112 |

| dsh | 0.2.1-rc.2 | 5,713 | 68 |

Codex 那行最能说明问题:21,026 字符的默认 system,注入后只剩 24。那 2 万多字里包含的不只是「你是谁」,还有输出格式约定、安全约束、工具使用规范。全换掉之后 agent 确实完全听你的,但它也失去了原本被调好的行为——变笨不是错觉,是把说明书一起扔了。

坑一 · 人设写得太短,等于把说明书也扔了

我第一版人设只有三百多字,写完还觉得自己简洁。实际效果是 agent 开始乱编工具参数、忘记输出格式。

原因就是上面那张表。strict 模式下你写多少,system 就剩多少。replace 稍微温和一些,但如果你的人设里没有覆盖工具说明相关的部分,也可能被连带删掉。

处置:日常用 append 或 replace,只在做「提示词鲁棒性评测」这类明确需要干净基线的场景用 strict,并且人设里必须补齐工具与格式约束。

dsh 是唯一有多个形态的目标

绝大多数 harness 只有一个位置要改,dsh 不是:desktop、web、headless 三个形态共用一套 cordis 插件,装在各自 profile 的 node_modules/agent-purge/,并在 cordis.patch.yml 里以 - insert 挂上,不改 app.asar。装完重启一次,之后热生效;三个形态还能在 Web 面板里分别勾选。

这一点在实践里很有用:我在 desktop 里写代码、在 web 里跑长任务,人设是同一个,切换工具不用切脑子。

可逆性是这套东西的前提

改系统提示词属于「改别人家的行为」,如果不可逆,我不敢用。

这个工具在设计上把可逆写进了每一条路径:agent-purge uninstall <h> 按字节还原;disarm 和 --mode off 同样能撤回;明确写了「不做文件夹级人设隔离」——技术上做得到,但那样会打破「一份人设、所有入口、一起切换」,而且卸载不再是字节还原。

状态只存本机,不上传任何数据。默认落在 ~/.agent-purge/(Windows 是 C:\Users\<你>\.agent-purge\),里面一个 state.json 加一个 personas/ 目录;要换位置就设 AGENT_PURGE_HOME。旧版 0.1.x 把数据放在包目录里,首次运行会自动搬到新家、原文件不动。

运行期真值优先于静态能力表

它自带一份 matrix.json 记每个 harness 的静态能力,但 agent-purge ls 和 Web 控制台显示的是运行期真值:这个 harness 有没有装、版本多少、注入层是 SYS 还是 USER、三个通道各自可用不可用。

两者冲突时以运行期为准。这条规则看起来是细节,实际省掉很多误判——能力表写「支持」,不代表你这台机器上那个版本还支持。

顺带一个诚实的边界:qoder 和 workbuddy 明确不支持,因为提示词在服务端。工具遇到这类目标会打印原因、原样启动,不假装生效。闭源桌面端同理。

支持面比想象中宽,但别指望全覆盖

现在的实测列表覆盖 codex、claude、grok、omp、hermes、zcode、opencode、opencode2、dsh、pi、antigravity、codebuddy。其中 opencode 与 opencode2 是两个不同的 npm 包(opencode-ai 1.x 与 @opencode/cli 2.x),插件接口完全不同,各自独立支持——按一个包名去配另一个,等于没配。

另外 claude 那条路带二进制补丁(清掉残留的身份句),antigravity 是等长替换二进制里的身份句。这两条在版本升级后最可能漂,升级完记得跑一次 agent-purge ls 看运行期状态。

一份人设的真实收益

用了两周,最大的变化不是「输出更像我了」,而是改一次规矩只需要改一个文件。以前给五个工具各改一句「不要自动提交」,改四次漏一次;现在改 personas/<id>.md,下一个请求就生效。

第二个变化是可回退。之前改系统提示词最怕的是「改坏了不知道原来是什么」,现在 --mode off 一句话回到原样,比手工记备份靠谱。

总结

它真正解决的不是「多平台适配」这种工程问题,而是「规矩只能有一个版本」这件协作问题;如果你也在多套 agent 之间来回切,可以先在这个站点 看看同类插件的中文清单,再决定要不要引入。

适合与不适合

适合:同时在三个以上 coding agent 之间切换的人;需要给团队统一输出风格、又不想逐家写配置的人;做提示词评测、需要干净基线的场景;在意「随时能退回原样」的人。

不适合:只用一家 agent 且从没改过系统提示词的人——收益接近零,多一层注入反而增加变量;依赖服务端提示词的宿主(qoder、workbuddy)用户,它明确不支持;想要「按项目切换不同人设」的人,作者明确不做文件夹级隔离。

标签:agent-purge、DeepSeek Harness、系统提示词、多人设、可逆配置

本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。

60 秒视频版 · AI 辅助生成并人工校对
回到顶部