[🤖] 最上层目标怎么会变得这么快???
✨ GPT-5.6 Sol 摘要
我在制作指令确认流程时,只改了一处显示时机,Codex却把这个方法变成了新目标。我固定了原来的目标句,让后续指示只能在它下面变化。
我只改了显示时机,目标却变了
我想做一个Skill,让Codex在开始工作前先展示它如何理解我的指示。它应先说明最终结果,遇到歧义时提问,并给出我可以马上选择的推荐答案。
设计过程中,我几次修改最上层目标的显示时机。Codex却把这种方法变化当成了新的最上层目标。原本要做的指令确认流程消失了,只剩下“何时显示最上层目标”。
最上层目标怎么会变得这么快???
当时没有发生上下文压缩。对话还在,但最终结果、当前任务、执行方法和输出格式之间的层级已经崩了。Codex每次重新概括目标,最新一句话都会再替换掉一部分原目标。问题不是记忆不够,而是目标没有固定的source of truth。
我不再允许它重写目标句
我让Codex固定用户确认过的一句话,而不是每次重新生成最上层目标。
制作一套可复用流程,让用户验证Codex是否正确理解最终结果,通过问题和推荐答案消除歧义,并在执行过程中不丢失这个最上层目标。
用户没有明确确认最终结果发生变化之前,这句话不能被概括或改写。当前任务、方法、文件、Skill、问题和输出规则也不能占据最上层目标的位置。如果不确定目标是否改变,就把旧句子和新解释分开显示,在确认前不能合并。
我也不再把所有后续输入都当成目标变化。最终结果变化、增加结果、范围或方法变化、输出格式变化、问题和纠正是不同的。只有明确确认过的最终结果变化才能替换目标句。
单条指令里的误解交给custom-confirm-task-intent处理。它会确认期望结果、对象、范围、必须保留的内容和可见的完成标准,并为可能改变结果的歧义提供推荐答案。目的不是制造更多问题;只有权限、费用、删除或外部操作会实质改变结果或风险时才停下来。
在真实对话里,它连续卡了两次
只读规则不够,所以我按顺序输入了最初的执行指令、输出格式变化、范围缩小、问题、子任务追加和真正的最终结果变化。
第一次验证中,同一任务后续的执行指令没有再次显示目标。Codex把“只在第一次响应中”理解成了整个任务只显示一次。我把它改成每条新执行指令的第一次响应显示一次。
第二次验证中,因为没有子任务负责人的真实姓名,工作停了下来。但策划、审查这样的功能角色,甚至留空,都能安全推进。于是我要求它不编造只有用户才知道的事实,但可以用可撤销的通用角色继续,并说明假设。
从头重放同一顺序后,方法、范围、输出格式和子任务改变时,固定目标都保留下来。问题不会显示目标标题,只有用户明确改变最终结果时才替换那句话。
每个会话还必须单独看到当前任务
准确复制最上层目标,并不能证明所有worker都理解了最新指示。有一个worker能正确复述项目目标,却漏掉了这次调查新加入的资料范围。
我考虑过把目标按第一、第二优先级不断累积。但旧指示和当前指示挤在一张越来越长的列表里,worker还是要重新判断这次到底该做什么。保护目标反而变成了管理目标列表。
所以我把固定项目目标和本次任务分开,再一起交代刚刚变了什么、我实际会检查什么结果、必须保留什么,以及什么证据能说明任务完成。这样也能看出支持性报告何时挤掉了真正的结果。
这个结构无法消灭所有自然语言错误。后续输入仍可能被错误分类,新会话也可能读到旧规则。因此我更相信真实指令顺序的重放结果,而不是规则文件本身。我现在不只看Codex能否复述目标,还看它能否在不改写目标的同时,准确理解眼前该做什么。
留下评论