日期: 2026-10-09


一、现场:一台机器上并存的四个 AI 王国

实测本机同时驻留四家 AI 编码工具,各自拥有独立的配置目录(dot-dir),互不统属:

dot-dir 工具 指令文件约定(勘误后修正) 目录里还有
~/.claude Claude Code ~/.claude/CLAUDE.md 会话、缓存、settings
~/.codex Codex CLI ~/.codex/AGENTS.md auth、config.toml、日志
~/.dsh DeepSeek harness ~/.dsh/AGENTS.md profiles、sessions
~/.zcode ZCode ~/.zcode/AGENTS.md(用户级,最先注入)+ 工作区向上扫描 会话流水 、db、插件

两个实测观察:

观察一:文件名趋同,作用域割裂。 .codex 和 .dsh 里都有叫 AGENTS.md 的文件,但互不相通——“AGENTS.md"成了事实标准的文件名,阅读范围却是各家私有的。勘误补充:ZCode 官方指南证实它支持私有域,但GLM 5.3自己对自己的harness产品一开始理解错误. ~/.agents/skills|commands|mcp.json 兼容层,跨工具共享体系比初稿断言的"名存实亡"更完整,“割裂"仅对全局指令文件这一层成立。

观察二:dot-dir 是工具的"全部家当”。 以 .zcode 为例:会话流水(rollout/*.jsonl,长会话一天可涨数 MB)、结构化数据库、执行现场、图片缓存、插件、配置,实测 988 个文件。每个 dot-dir = 该工具的身份、记忆与状态的总和。

二、架构整理:共识层与角色层分离

四工具并存时,提示词内容天然分两类:

  • 共识层:所有工具都该知道的事实——机器环境、网络规则、服务器、工作习惯、分工地图;
  • 角色层:每家"你是谁、负责什么”——有意不同,不应镜像。

原状态是反面教材:共识与角色混在一份文件里,四家各持一份陈旧副本,彼此漂移。


对"跨工具标准"的准确表述:每家 harness 都有自己的配置约定,AGENTS.md 只是部分厂商采纳的兼容层。真实生态是:文件名事实趋同,阅读范围各家私有,共享靠人为桥接。

三、勘误与正解:ZCode 有用户级指令槽

Zcode初稿此处曾断言:“ZCode 没有自己的提示词目录,全局指令写死在 ~/AGENTS.md(home 根,所有会话共享的公共位置),其配置文件里没有任何指令路径的可配置项”,并"建议厂商提供 ~/.zcode/AGENTS.md"。发布后复读官方配置指南(zcode-guide 插件),证实该结论错误:

  • ZCode 的用户级指令文件就是 ~/.zcode/AGENTS.md,注入顺序最先、对所有工作区生效;
  • 初稿"建议厂商添加"的路径,官方早已存在;
  • 工作区级指令则从当前目录向上扫描至项目根。

初稿为什么错——调查方法错误:我只翻了一个配置文件(cli/config.json),看到里面没有路径配置项,就推断"无私有提示词目录"。配置项缺失不是功能缺失的证据——约定位置根本不需要配置项。正确动作是先读产品文档:官方指南明文写着用户级指令文件的位置与注入顺序。

连带发现:home 根那份 AGENTS.md 对 ZCode 是不可靠位置——只有当工作目录位于 .zcode 内部时,向上扫描才会"逃逸"到主目录根把它读进来;在正常项目目录(D:\AIWork\xxx)开 ZCode 会话,它根本不会被加载,角色直接丢失。角色文件的正解是迁入用户级槽位——本文更新发布的同时,我已完成迁移并删除 home 根旧文件。

四、衍伸问题:多机器使用同一账号同一会话后harness文件不一致导致的混乱:会话跟账号,指令跟机器

同一账号在两台机器上续同一个会话,行为是:会话历史无缝接上,但新回合的指令是当前机器的版本。

风险:①规则中途切换毫无提示——前半段按 A 机规则行事,后半段按 B 机,行为不一致且不报错;②路径幻觉——A 机规则写下的输出路径在 B 机不存在,续聊时模型会理直气壮地往不存在的路径写;③共识层文件若不跨机同步,“共识"退化为"各机各识”,比没有共识层更危险(因为它制造了已有共识的错觉)。