几周前你在 Custom Instructions 里设了「永远用 bullet point 回答、别堆营销废话、用初中读得懂的水平写」,前一阵 ChatGPT 还挺听。现在你问一个问题,给你的是文绉绉三段话、bullet 一个没有。把 Custom Instructions 开关关掉再打开也没用。指令明明还在,模型就是不照做。Custom Instructions 是按特定 scope 生效的,会和对话级提示、Project 指令、模型自身默认抢话语权。被忽略的原因几乎都是 scope、溢出、或者模型被切,而不是面板本身坏了。
常见原因
按命中率从高到低。
1. Project 指令或对话级系统提示把它覆盖了
如果对话在某个 Project 里,Project 的 custom instructions 优先级更高。模型在听那一份、不是你账号一级的。
怎么判断:侧边栏看一下,对话是不是在某个 Project 里?是 = 打开 Project → Configure,读一下 Project 指令,多半在和你的冲突。
2. 上下文溢出,指令被挤出活跃窗口
Custom Instructions 是前置注入的,但在很长的对话 + 很多附件下,模型实际会”淡化”它们的优先级,活跃对话本身把注意力占满了。
怎么判断:对话开头是听的,30 多轮后开始不听 = 典型的上下文压力。
3. 模型在对话中途被悄悄切了
撞用量上限时,Plus 账号会被路由到一个更小的模型,那个模型对长系统提示的服从度更低。fallback 模型听指令更松。
怎么判断:看模型选择器。显示成「GPT-5 mini」之类 fallback 名字而不是 GPT-5 = 就是它。
4. 指令太长或自相矛盾
超过 1500 字符、或者写了「要简洁」又写「永远给 3 个示例」这种矛盾,模型就会乱选一个或干脆都不一致地照办。
怎么判断:打开 Personalization → Custom Instructions,把两栏读一遍。任意一栏超过 500 字、或者有对冲规则 = 就是它。
5. 开关其实是关的
有时候开关会被不小心关掉,特别是打开 Project 时、或者设置同步后。看上去字段里是有内容的,但下面的开关是关的。
怎么判断:Personalization → Custom Instructions,确认「Enable for new chats」是开的。
6. 模型对指令的理解和你不一样
「用英式英语」这种规则模型听;「再直接一点」这种偏软的规则它就模糊,压力下会回到默认语气。模糊指令在负载下最容易被忽略。
怎么判断:把软规则换成硬的、可测的(「每条回复结尾加上 DONE 这个词」),看是否稳。硬规则稳、软规则不稳 = 就是写法的事。
开始前
- 把当前 Custom Instructions 文本放在手边,方便改。
- 决定保留账号级、还是 Project 级、还是两层都用并明确分工。
- 挑一两条最重要的规则,方便修完后用来验证。
要收集的信息
- 两栏 Custom Instructions 的完整文本(About You / How to respond)。
- 当前对话是否在某个 Project 里,Project 指令长什么样。
- 失败对话里模型选择器显示的模型名。
- 这个对话大致轮数和附件数。
- 指令是在网页还是手机 app 里设的。
- 套餐档位,最近是否有过用量上限提示。
一步步修
Step 1: 确认 Custom Instructions 是开的
Settings → Personalization → Custom Instructions。两栏都该有内容、「Enable for new chats」开关该是开的。保存。关一下再开会重新触发一次应用。
Step 2: 在全新对话里测一遍
新开一个对话(不在任何 Project 里),问个明确该触发规则的问题(比如「解释一下光合作用」、你设了 bullet 就该 bullet 输出)。新对话是测账号级指令最干净的场景。
Step 3: 排查 Project 指令的冲突
失败对话在 Project 里 = 打开 Project → Configure,读 Project 指令。和你的 Custom Instructions 冲突的就调一致,或者把对话挪出 Project。
Step 4: 把指令缩短、写硬一点
Custom Instructions 总字数压到 500 字以内。把模糊规则换成具体、可测的:
差: 再简洁直接一点。
好: 每条回复最多 5 个 bullet point,不要开场白。
保存、新对话里测一遍。
Step 5: 把模型选择 pin 死
模型选择器里明确选 GPT-5,不要留「Auto」。这样能减少静默切换、稀释指令服从度的情况。
Step 6: 顽固对话里在线重新提醒
很长的对话里指令已经漂了 = 发一条提醒:
提醒:从现在开始这个对话里,请严格按照我账号的 Custom Instructions:
最多 5 个 bullet、不要开场白、写到初中阅读水平就行。
不用重开对话就能把模型重新锚回去。
Step 7: 团队级一致性把规则搬到 Project
多个对话要同样的行为 = 建一个 Project、把规则写进 Project 指令、对话都在 Project 里跑。Project 指令对 Project 内对话来说,服从度通常比账号级稳。
Verify
- 不在 Project 里的新对话从第 1 轮就按规则走。
- Project 里的新对话按 Project + 账号合并后的规则走。
- 跑 20 轮 + 1 个附件后,指令还在被遵循。
- 桌面切到手机再切回来,行为保持一致。
长期预防
- 账号级 Custom Instructions 短一点,只管语气和格式。
- 工作流相关规则放 Project 里,不要堆账号级。
- 用硬规则、可测规则(「永远不要用『赋能』这个词」),不要写模糊的。
- 每月审一次指令,删掉你不再在意的。
- 重要 session 把模型在选择器里 pin 死,不要靠 Auto。
常见坑
- 写 1000 字指令、期望每一条都被平均对待。
- 写互相冲突的规则(「要简洁」+「永远给 3 个详细示例」)。
- 以为 Project 指令和账号指令是叠加的——它们会冲突。
- 在手机上改 Custom Instructions、又指望桌面立刻同步。
- 怪模型,实际是某个你忘了的 Project 指令在作怪。
FAQ
- 优先级顺序是什么? 这一轮的 inline 提示 > Project 指令 > 账号 Custom Instructions > 模型默认。
- Custom Instructions 最长能写多少? 每栏上限约 1500 字符,写短一点服从度更稳。
- Custom Instructions 对 API 调用生效吗? 不生效,API 用你自己代码里的 system prompt。
- Memory 能替代 Custom Instructions 吗? 不能。Memory 存的是关于你的事实,Custom Instructions 设的是规则,两者共存。
- 为什么新对话听、老对话不听? 老对话累积的上下文把前置注入的指令挤淡了。
- 能给不同 workspace 设不同 Custom Instructions 吗? 账号级是全局生效;按 workspace 区分就用 Projects。