一个维护了整整一年工作流的人,把诊断工具对准自己仓库里一段只有两轮的会话,结果翻出三处坏规则。更扎心的是,其中一处正是他几个月前亲手在别处删掉的东西。
他做开发全靠工作流,一年里大部分时间都花在维护上。跑出错误结果时,他不改下次用的提示词,而是去读这次运行,找到机制里产生这个结果的那一环,然后改掉那一环。这个习惯在可选的时候是便宜的保险,现在已经不是可选的了。
![]()
模型变听话之后,矛盾开始显形
旧模型会忽略你告诉它的大量内容,而这种忽略本身在承重。两个技能给出互相冲突的指令,模型会悄悄挑一个执行。一条规则写着"永远产出X",你大概能拿到一半的X,通常这个量刚刚好。整套配置里塞满矛盾,你也不会发现。
更好的模型会遵循指令,包括那些互相矛盾的指令,结果就出现在运行里:一个技能在毫无贡献的时候被触发,一个强制步骤挡住了本来不需要它的工作,一条规则要求产出一份没人看的文件。过去躺在那里什么也不做的指令,现在真的会影响实际发生的事。
决定一次会话走向的有三件事。
- 你要的是什么。你的消息就是提示词。如果"完成"没有被定义,智能体会自己发明一个定义,而且不会是你的定义。矛盾比模糊更糟,因为能力强的模型会同时执行矛盾的两边。
- 工作是怎么跑的。AI开发就是管理:委派、流程、技术决策。一个智能体干活时这是事实,编排让它变成了结构。你管理主智能体,主智能体管理它的子智能体,你离真正干活的地方隔了两层。一旦是这个形状,你就得知道每个决策归谁、什么算完成,否则工作会在层级之间丢失。大多数配置里,这些内容没有任何地方写下来给智能体看。
- 是什么在指挥智能体。不是作为文件的技能,而是那次会话里技能实际组合起来的样子,加上你的 AGENTS.md 以及同一时刻还活着的其他东西。一条单独读起来没问题的规则,放在同时触发的另一个技能旁边,仍然可能是错的。
没人做的那部分:让技能保持最新
很多人有一个装满技能的目录。很少有人能告诉你,上次会话里哪些技能触发了、哪些改变了一个决策、哪些加载了几千个token却毫无贡献。
他不认为这是疏忽。创建一个技能有明确的方法和即时的结果,改进一个技能没有。你找不到一个自然的时刻去发现:三月写的技能正在重复七月加的规则,或者它在一个帮不上忙的任务上被触发。如果你从来没有办法衡量效果,你就没有理由去看。
让这件事变得可处理的,是工作流运行会留下产物,所以出问题时有一条线索可循。普通会话也有这条线索,只是更难读。
一年下来,发布记录的形状跟着模型走
claude-code-workflows 自2025年10月以来有133个发布,它们的形状跟当时模型的表现是对应的。
早期他在加机制,因为模型需要结构才能待在任务上。后来模型变好了,他把发布用在把机制拿出去上。v0.23.0 里他从六个智能体中移除了当前日期检索步骤。v0.26.0 里他直接删掉了 rule-advisor 智能体和 task-analyzer 技能,因为需要那些规则的智能体已经直接加载了它们,选择这一步只是多了一次往返,没有改变实际运行的东西。v0.24.0 移除了一整个配方,并把规划模板削减到实现真正会消费的部分。最近的改动围绕委派:谁拥有一个决策、子智能体被告知什么、父级行动之前必须拿回什么。
这些都不是先见之明。是拿这个东西做真实工作,看着它失败,然后回去找到产生失败的那一环。ai-coding-project-boilerplate 经历了同样的循环。
Session Doctor 读一次会话,报三处缺陷
Session Doctor 读取你保存的一次 Claude Code 或 Codex 会话,报告在这三个方面需要改什么。三遍检查分开运行,所以第一遍的直觉不会影响另外两遍,每条发现都会指出它发生在哪里、它在运行中实际改变了什么、以及最可能防止重演的最小改动是什么。
他把这个工具对准自己某个仓库里一段很小的两轮会话。
第一条发现是该仓库智能体定义文件里的一条规则,那是一份早于 AGENTS.md 标准的 CLAUDE.md,要求任何工作开始前先做任务拆解、日期检查和一次 rule-advisor 调用,措辞是"所有工作都必须,没有例外"。这些步骤一个都没跑,任务照样正确完成了。
他七月从工作流里删掉了日期步骤,九月彻底删掉了 rule-advisor,理由是它增加了一次往返却没有改变实际运行的东西。那个仓库里的指令文件从来没收到这个消息。他花了一年在一个地方移除这类机制,同时让它在另一个地方继续生效,而发现这件事,靠的是一次关于摄入两个文件的两轮会话。
同一个文件还写了一个不存在的工具名。它写的是 mcp__local-rag__query_documents,真实标识符是 mcp__mcp-local-rag__query_documents。任何照着这条指令字面执行的东西都会失败。
还有两个来源都以互不兼容的方式声称自己拥有任务开始时发生什么。文件里的门禁说它先运行、没有例外,而它自己的路由规则把同一个触发条件送给了一个根本没有门禁的技能。其中一个注定会被静默跳过。这次会话里技能赢了,没有任何东西记录下这个决定。
三处缺陷,在他自己维护的一个仓库里,在一段两轮会话中。
怎么试
Claude Code 下执行:
/plugin marketplace add shinpr/agent-clinic
/plugin install session-doctor@agent-clinic
Codex 下执行:
codex plugin marketplace add shinpr/agent-clinic
codex plugin add session-doctor@agent-clinic
然后在一个你一直在用的仓库里运行 /recipe-diagnose。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.