为什么 ChatGPT 不再遵守你的自定义指令
1. 自定义开关被关闭了
这是一个很不起眼但发生频率远超人们想象的原因——设置重置、更换新设备或工作区切换。自定义指令只有在开关开启时才会生效,OpenAI 的设置步骤中也明确指出了这一点。
在网页端和桌面端:进入“设置”(Settings),然后选择个性化(Personalization),确保启用自定义(Enable customization)开关已开启,且你的文本已填入自定义指令(Custom Instructions)字段。在 iOS 和 Android 端,路径为“设置”,然后选择自定义 ChatGPT(Customize ChatGPT),同样的开关,同样的字段。该功能“适用于网页端、桌面端、iOS 和 Android 上的所有方案”,所以这不是订阅方案的问题,而仅仅是一个开关的问题。
先检查这一点。只需花费 15 秒,而且这是最常见的原因。
2. 你正在使用自定义 GPT
这一点连细心的人也会忽略,因为一切看起来都配置得很正确。OpenAI 帮助中心在 GPTs 常见问题解答“GPTs 是否使用记忆或自定义指令?”中明确指出:“GPTs 不使用保存的记忆、自定义指令或以前的对话。每次对话都是全新的开始。”
因此,当你打开一个自定义 GPT(无论是你自己的还是别人的)时,你的个人指令就会失效。这是刻意设计的:GPT 是一种可共享的配置,如果继承运行它的任何人的个人设置,会导致其行为不可预测,并可能将个人上下文泄露到共享界面中。但这意味着在这种特定情况下,“ChatGPT 忽略了我的指令”是预期行为,无论你如何重写指令都无法改变这一点。如果该 GPT 需要你偏好的格式,必须将其写入该 GPT 自身的指令中。
3. 你超出了字符限制
自定义指令有一个明确记录的硬性上限,而且比大多数人想象的要小:“免费版和 Go 用户在自定义指令中最多可保存 1,500 个字符。Plus、Pro、Enterprise、Business 和 Education 用户最多可保存 5,000 个字符。”
1,500 个字符大约只有两段话。如果你每次遇到不顺心的事情就往里加一行,你很可能已经碰壁了——而碰壁的实际体验就是,你最新、最具体的指令恰好是装不下的那一条。打开输入框数一数字符。这也是为什么指令字段不能作为你的知识库,而只能作为你的偏好清单。
4. 你是在对话中告诉 ChatGPT,而不是在专用字段中
这是最大的概念混淆,值得仔细厘清,因为这两个系统的设计初衷和运行方式完全不同。
自定义指令是规定性的。 你声明它们,它们会被逐字存储在一个你可以阅读的字段中,并应用于每一个对话。
记忆是描述性的。 OpenAI 将其描述为“对您过去对话中上下文的持续更新综合”——模型是在注意模式,而不是记录你的命令。而且文档坦言你无法对其进行完整审计:记忆摘要“不会包含 ChatGPT 根据您的对话记住的所有内容”,并建议“如果您想知道 ChatGPT 是否记住了某些内容,只需在对话中询问即可”。
因此,当你在对话中输入“从现在开始,跳过前言”时,这只是一个请求,它可能会也可能不会成为综合记忆的一部分。OpenAI 官方的指导意见是,明确的指令属于“自定义指令”。如果你要求的行为是不可妥协的,就应该把它放在专用字段中,而不是对话中。关于记忆方面的更广泛限制,请参阅 ChatGPT 记忆限制,诊断方法请参阅 当 ChatGPT 记忆功能不起作用时该怎么办。
5. 你看的是旧对话的记录,而不是当前的行为
这里有两个记录在案的声明,它们靠得很近,很容易被混淆。
设置更改会立即生效,包括对已经打开的对话。但另一方面,常见问题解答在回答“如果我更新或删除自定义指令,以前版本的指令会继续出现在我的聊天记录中吗?”时指出:“是的,对指令的更新仅反映在未来的对话中。要从以前的对话中删除自定义指令,您可以从聊天记录中清除这些对话。”
结合起来理解:你当前指令的应用是立即生效的,而旧指令文本的记录仍会保留在曾使用过它的过去对话中。如果你通过审查旧对话来检查新指令是否生效,那么你找错了证据。请在新对话中进行测试。
6. 指令含糊不清,或者与其他指令相冲突
这是最后一种情况,也是唯一一个真正与模型行为而非配置有关的情况。“保持简洁”只是一种期望;“除非我要求提供细节,否则将回答控制在 150 字以内”则是可测试的。“解释你的推理”和“不要前言”会产生相反的导向,当指令发生冲突时,总有一方会妥协。
文档中有一个提示表明,模型对指令的遵守是经过校准的,而不是绝对的。OpenAI 指出,使用自定义指令的信息会被用于提高模型性能——“例如教导模型如何调整其回答以适应您的指令,而不会做得过头。”指令遵循被调整为合理执行,而非字面死板执行。因此,请编写经得起合理解释的指令:具体、相互一致且数量要少。
人们尝试过的方法
用更强烈的语气重写指令。 全部大写,使用“你必须(you MUST)”。偶尔能在边缘情况下起到一点作用。但对于原因一到五(占了绝大多数情况)毫无用处。
添加更多指令。 这种本能反应会直接导致你触及字符上限,并在此过程中稀释你真正关心的规则。
在每次对话的开头重复指令。 这确实有效,但这也正是该功能旨在消除的额外负担。这也意味着偏好存在于你的习惯中,而不是任何持久的地方——这种模式在 停止向你的 AI 重复解释上下文 中有详细描述。
将项目知识放入指令字段中。 这可以理解,因为这是你唯一确定会被读取的地方。但在 1,500 或 5,000 个字符的限制下,这种方法很快就会失效——而你最需要的知识恰恰是被截断的部分。
假设记忆功能会记住它。 有时确实会。但由于这是一种你无法完全列举的综合记忆,所以“有时”就是它的上限。对于你仅仅是希望如此的偏好来说还可以,但对于你要求的硬性规则来说则不适用。
解决方法:将规则放入字段,将知识放入记忆层
稳定的配置应该将人们塞进同一个盒子里的两件事物分开。
关于 ChatGPT 行为方式的规则放入“自定义指令”中:简短、可测试、相互一致,且远低于字符限制。开启开关,将列表保持在你真正坚持的少数几条规则内,并在新对话中测试更改。
关于你工作的知识根本不属于那里。它对于该字段来说太庞大了,而且变化太频繁,同时你还需要在其他工具中使用它。这就是 MemoryLake 的用途:一个供你的助手读取的记忆层,这样指令字段就可以保持为一张纯粹的偏好清单。设置只需三个步骤。
步骤 1:创建 API 密钥
登录 MemoryLake 并创建一个 API 密钥。一个凭证即可跨越你连接的所有工具,独立于任何单个助手的设置界面。

步骤 2:上传你的第一批记忆
将项目知识从指令字段中移出:你的工作是如何构建的、那些不明显的限制、决策及其背后的推理、你尝试过并拒绝了什么。保持条目简短且主题单一。然后将指令字段缩减为真正的行为规则——你通常会发现它减少了一半,而剩下的规则因此得到了更一致的遵守。

步骤 3:连接你的 AI 和智能体
连接你的工具。可以通过 MCP 和 API 访问 MemoryLake,因此 MCP 原生智能体(包括 Claude Code、Codex 和 OpenClaw)可以通过指向 MCP 服务器进行连接,而其他助手则通过 API 读取相同的记忆。指令字段继续履行其狭窄的职责;知识不再与它争夺 1,500 个字符的空间。

两个客观的限制。记忆层不会改变自定义指令的工作方式——如果开关关闭或者你处于 GPT 内部,这仍然是根本原因,任何外部层都无法覆盖它。而且它不是强制执行:在任何助手中,指令都是塑造行为,而不是保证行为。
这在实践中带来了什么改变
诊断只需两分钟。 如果指令列表简短且是最新的,一眼就能看出某条规则是否存在。而如果是 5,000 个字符的规则与背景混合体,那就是一项调查工作了。
通过做减法来提高遵守率。 较少且不冲突的指令比冗长的列表更容易被可靠地遵守。这是反直觉的部分:删除文本通常会让你获得更多的顺从,而不是更少。
字符限制不再是悬崖。 当知识存在于其他地方时,你永远不会因为多加一条有用的指令而触及上限。
你的偏好会跟随你跨越不同的工具。 自定义指令仅限 ChatGPT 使用,没有 API——OpenAI 表示“不会有针对自定义指令的 API,因为 Chat Completions API 的系统消息应该用于实现类似的效果。”记忆层则是实现跨工具共享的载体。
GPTs 变得可以用于实际工作。 一旦你明白 GPTs 不会读取你的个人指令或记忆,你就会停止无谓的挣扎,转而为 GPT 提供其自身的指令以及实时的知识源。
让自定义指令持久生效的最佳实践
首先检查开关。 网页端和桌面端:设置 → 个性化;移动端:设置 → 自定义 ChatGPT。必须开启“启用自定义”。
务必在新对话中进行测试。 旧对话携带着它们发生时生效的指令记录。新对话是唯一干净的测试环境。
计算你的字符数。 免费版和 Go 账户为 1,500 个字符,Plus、Pro、Enterprise、Business 和 Education 账户为 5,000 个字符。在添加新行之前,先清楚自己处于什么位置。
编写可测试的规则。 用“除非我要求更多,否则控制在 150 字以内”代替“保持简洁”。一条你可以评分的规则,才是模型可以遵守的规则。
一旦发现矛盾立即清除。 两条背道而驰的指令意味着其中一条会被任意舍弃。决定你到底想要哪一个。
记住导出路径。 自定义指令包含在你的 ChatGPT 数据导出中——常见问题解答回答了“自定义指令是否包含在我的 ChatGPT 数据导出中?是的。”在重写你花了几个月调整的指令集之前,这很值得了解。
不要指望它们在 GPTs 内部生效。 按照设计,它们在那里不适用。GPT 需要的任何内容都应该放入该 GPT's 配置中。
不要放入组织级别的规则。 如果你是在编码公司范围的标准,而不是个人偏好,那是另一项工作——这更接近于 让 ChatGPT 记住你的品牌指南,而不是个人设置字段。
结论
自定义指令是该领域中少数几个在文档中毫无歧义的功能之一:立即应用于所有对话、所有方案和所有平台。因此,当该行为消失时,原因一定在其他地方——开关、自定义 GPT、字符上限、错误的系统、你用作证据的旧对话,或者过于模糊而无法执行的指令。
按照这个列表排查,你就能解决问题,通常在前两项就能搞定。然后刻意保持该字段的精简:将关于行为的规则留在字段中,将关于工作的知识放在一个不受 1,500 字符限制的层中。这才是该功能在六个月后依然能正常工作的版本。如果你的具体困扰在于诊断方面而非解决方法,为什么 ChatGPT 会遗忘你的自定义指令 更深入地介绍了其机制,而 为什么 ChatGPT 会遗忘项目上下文 则介绍了邻近的情况。