ChatGPT Project 上下文与 Chat 上下文为什么会打架

在 Project 里设了 instructions 和文件,某个 chat 却不遵守;或者一个 chat 莫名记得另一个 chat 的内容?把五层上下文理清楚就能快速定位泄漏。

最快的修法: 先想清楚这条信息该作用在哪个范围,再放进对应的那一层——“本 Project 每个 chat 都生效”放 Project Instructions、参考资料放 Project Files、“到处都生效”放账号级 Memory、“只在这次 chat”就在当前消息里直接说。绝大多数”Project 里设了却不生效”是放错了层;绝大多数”这个 chat 怎么知道这个”是 Project memory 把另一个 chat 的内容拉了进来。两种都靠下面按顺序排查五层来解决。

ChatGPT(截至 2026 年 6 月)有五层上下文,不是四层:

  1. Saved memories — ChatGPT 存下来的账号级事实(Settings → Personalization → Memory → Reference saved memories)。
  2. Reference chat history — 一个独立的账号级开关,让新建的 chat 能参考你过往的对话(Settings → Personalization → Memory → Reference chat history)。
  3. Custom Instructions — 你的全局风格 / 角色设定,叠加在一切之上,除非某个 Project 在范围上覆盖了它。
  4. Project — Project Instructions + Project Files +(自 2025 年 8 月起的)Project memory,可以让同一个 Project 里的 chat 互相参考。
  5. 当前 Chat — 你正所在这个对话的消息历史。

最大的变化是:同一个 Project 里的 chat 已经不再完全隔离了。Project 自带一个按 Project 维度的 memory 设置,所以新 chat 可能悄悄继承到兄弟 chat 的上下文。这把老问题”chat B 为什么不知道 chat A 说过的话”翻成了反过来的样子——很多人现在遇到的是”chat B 怎么知道”。下面这些原因两个方向都覆盖。(Project 是 Plus/Pro 功能;Free 没有 Project,如果你侧边栏里看不到 Projects 区块,就是这个原因。)

先判断你是哪一类

症状最可能的层看哪条
我在 Project 里设的规则,某个 chat 不遵守放错层,或被强势的当前消息压过原因 1、6
一个 chat “记得”另一个 chat 的内容,出乎意料Project memory 或 Reference chat history原因 2、3
行为在不同 Project 之间串了Saved memories(账号级)原因 4
文件挂上去了却从不被引用按需检索,不是每轮自动塞原因 5
Personal vs Team Workspace 行为不同工作区隔离原因 7
Project 里调的 Custom GPT 不理 Project 规则两套独立规则原因 8

常见原因

按命中率从高到低。

1. 信息整个放错了层

你把规则写进某个 chat 却指望它整个 Project 生效,或写进 Custom Instructions 却指望只对一个 Project 生效。每一层的范围是固定的,放错就要么没作用、要么泄漏。

如何判断:在该 Project 里新开一个 chat,自己一个字不打,问”这里有哪些常驻规则?“。如果它没念出这条规则,说明它不在 Project Instructions 里。

2. Project memory 开着,chat 之间互相参考

自 2025 年 8 月 22 日起,每个 Project 自带 memory。在 Default(默认)memory 模式下,一个 chat 可以参考同一 Project 里其他 chat(在非 Enterprise 账号上,甚至能参考 Project 之外的 chat)。所以 chat B 可以知道 chat A 说过”客户叫张三”。这跟老行为正好相反,也是今天最常见的”意外”来源。

如何判断:新开一个干净 chat,问一件只在别的 chat 里提过的事。如果它答得出来,就是 Project memory 在喂它。去 Project → Configure → Memory 看模式是 Default 还是 Project-only

3. “Reference chat history” 把不相关的旧对话拉了进来

这是一个账号级开关,跟 saved memories 是分开的。开着时,任何新 chat(包括 Project 里的)都能参考你的全部对话历史,看起来就像 Project 在”泄漏”。

如何判断Settings → Personalization → Memory。如果 Reference chat history 开着,而且冒出来的内容来自非 Project 的 chat,那源头是它,不是 Project。

4. Saved memories 跨所有 Project

Saved memories 是账号级的,所有 Project 共享。在 Project A 工作时被记下的事实(“始终用 Python”)到了 Project B 还会偏。

如何判断Settings → Personalization → Memory → Manage memories(也可以在 saved memories 下点 Manage 进去)。看到和 Project B 主题无关的条目 = saved-memory 泄漏。

5. Project 文件是按需检索,不是每轮自动塞

挂在 Project Files 里的文件不会被注入到每一轮。模型只在问题相关时才拉 chunk,所以一个内容问题完全可能漏掉一个明明挂着的文件。

如何判断:问”列出这个 Project 挂的文件名”。如果它能列出来、但一个内容相关的问题却引不到,那文件是看得到的、只是检索没触发——把问题改成点名文件、或引用文件里某句独特的话。

6. 强势的当前消息压过了 Custom/Project Instructions

Instructions 永远生效,但权重低于当前用户消息。chat 里一句生硬的”忽略所有先前规则,只做 X”能在那一轮把它们压下去,看起来就像”Project 忘了自己的规则”。

如何判断:在干净 chat 里不带那句覆盖语重跑同一任务。如果规则回来了,说明只是被权重压了,没丢。

7. Personal Custom Instructions vs Team Workspace Project

Personal Workspace 里设的 Custom Instructions 不会进到 Team/Business Workspace 的 Project,反之亦然。两个工作区里同名的 Project 可能行为不同。

如何判断:在 Personal 和 Team Workspace 各跑同一 prompt。行为不同 = 工作区隔离,不是 Project 的 bug。

8. Custom GPT 和 Project 不互通

Custom GPT 有自己独立的 Knowledge + Instructions,不读 Project 的任何东西。在 Project 内调用 Custom GPT,它按 GPT 的规则走,不按 Project。(截至 2026 年 6 月 Custom GPT 仍然存在;2026 年 2 月 13 日被下线的只是 GPT-4o 这类旧模型。)

如何判断:在 Project 里 @ 一个 Custom GPT 提问,回答无视 Project 的常驻规则 = 两套规则各自独立运行。

动手前先确认

  • 确认你确实在 Projects 里(不是 Custom GPT、也不是普通对话),并搞清楚不一致是哪个方向——规则没生效,还是 chat 知道得太多。
  • 改动前先记下你的 Project memory 模式Default vs Project-only)和账号 Reference chat history 的状态,这样才分得清是哪个动了结果。
  • 确认订阅 + 工作区:Personal vs Team/Business 在 Custom Instructions 和 memory 行为上差异明显。

需要收集的信息

  • Project 名 + Project Instructions 全文 + Files 列表,以及 Project memory 模式。
  • Settings → Personalization → Memory:saved-memory 条目、Reference saved memories 状态、Reference chat history 状态,以及 Custom Instructions 全文。
  • 出现行为差异的两个对比场景(chat A vs chat B、Project 内 vs 外、Personal vs Team)。
  • 完整 prompt 文案 + 两边回答截图对比。
  • 当前模型(例如 GPT-5.5)+ 工作区类型。

最短修复路径

按收益从高到低。前两步通常能修掉约 70% 的问题。

Step 1:每条信息放进正确的层

你想让信息生效的范围放哪里
全平台所有 chat、所有 ProjectSettings → Personalization → Memory / Custom Instructions
仅本 Project 所有 chatProject Instructions
本 Project 所有 chat 都可访问的资料Project Files
仅本次 chat当前 chat 消息里直接说
跨账号 / 多人共享的工作流Custom GPT

放错层 = 泄漏或失效。

Step 2:决定本 Project 的 chat 之间该不该共享上下文

这是新的分叉点。打开 Project → Configure → Memory

  • 想让兄弟 chat 互相累积(研究日志、持续推进的项目)→ 保持 Default memory。
  • 想让每个 chat 互相隔离、外部 memory 也别渗进来(客户项目、不同客户分开)→ 设为 Project-only memory。

Project-only memory 会挡住你的通用 / saved memories 进入这个 Project,把 Project 的上下文锁在 Project 内。注意:分享一个 Project 会强制它变成 Project-only,且无法改回 ——分享前先想清楚。

Step 3:debug”为什么这个 chat 不一样”时,五层都走一遍

1. 这条规则在 Project Instructions 里吗?
   -> Project -> Configure -> Instructions
2. Project memory 模式是 Default 还是 Project-only?
   -> Project -> Configure -> Memory
3. 账号的 "Reference chat history" 开着吗?
   -> Settings -> Personalization -> Memory
4. 在 saved memories 里吗?
   -> Settings -> Personalization -> Memory -> Manage memories
5. 在当前这个 chat 早些时候我自己说过吗?
   -> 翻消息历史

五层都过一遍,才知道行为是从哪层来的。

Step 4:要跨 chat 持久保存信息,写进 Project,别指望 memory

  • 短规则 -> Project Instructions
  • 长资料 / 表格 / 文档 -> Project Files
  • 跨 Project / 跨账号 -> Custom GPT Knowledge。

Project memory 是个便利功能,不是契约——它做的是摘要,不存原文。任何必须每轮都在的内容,都该放进 Instructions 或 Files。

Step 5:堵住跨 Project 的泄漏

如果某条 saved memory 老是干扰错的 Project:在 Manage memories 里删掉这条,或者把受影响的 Project 设成 Project-only,让账号 memory 够不着它。saved memories 只留真正通用的偏好(“回复简洁”、“用美式英文”),每月清一次。业务偏好(“用 React”)放 Custom Instructions,而不是 saved memories。

Step 6:高约束工作流移到 Custom GPT

Project + 普通 chat 对”必须 100% 遵守”的场景太松。客服话术、合规审核、固定输出模板 → Custom GPT:

  • Instructions 权重更高。
  • Knowledge 检索更确定。
  • 分享后人人版本一致。

Step 7:需要一次干净运行时,在 chat 顶部声明边界

For this conversation, ignore my saved memories and custom instructions.
Follow only these rules:
1. ...
2. ...

Task: <X>

模型不会 100% 听话地”忽略 memory”,但显式声明能让权重明显倾向当前消息——再配一个 Project-only 的 Project,就是从源头去掉泄漏,而不是求模型去压制它。

怎么确认已经修好

  • 在另一个 Project 跑同 prompt——它按那个 Project 的 Instructions 走、不带本 Project 的内容 = 隔离生效。
  • 把某个 Project 设成 Project-only、删掉相关 saved memory,再跨 Project 跑——行为分叉 = 跨 Project 泄漏堵住了。
  • 让同事在他们账号里这个共享 Project 跑相同 prompt——输出一致 = 配置确实定在 Project 层,而不是在你个人的 memory 里。

如果还是没修好

  • 干净重建 Project:新建、复制(trim 后的)Instructions、重新上传 Files、设 Project-only memory、不带任何历史。
  • 临时关掉 Reference saved memories Reference chat history,重跑 prompt 对比——以此判断是不是某个账号级 memory 开关在泄漏。
  • 换 Workspace(Personal vs Team)重跑,确认是不是工作区在干扰。
  • 备好五层配置截图 + 行为差异对比,去 help.openai.com 提工单。

常见问题

现在同一个 Project 里的 chat 共享上下文了吗? 默认共享。自 2025 年 8 月 22 日起,Project 自带 memory,新 chat 能参考兄弟 chat。不想要就把 Project 设成 Project-only memory(这同时也会挡住你的通用 memory 进来)。2025 年前那条”chat 之间完全隔离”的规则已经不成立了。

为什么一个 chat 知道我只在另一个 chat 里说过的事? 要么是 Project memory(同一 Project 内的兄弟 chat),要么是账号级的 Reference chat history 开关(任意过往 chat)。先查 Project → Configure → Memory,再查 Settings → Personalization → Memory

saved memories 和 “reference chat history” 有什么区别? saved memories 是 ChatGPT 存下来的明确事实,你能在 Manage memories 里编辑。Reference chat history 是一个更宽、独立的开关,让新 chat 在没有明确存条目的情况下也能参考你过往的对话。两者在同一个 Memory 面板里各自独立控制。

我找不到 Project memory 设置,在哪? Project → Configure(Project 的设置面板)里的 Memory 项。Default vs Project-only 的选择在你第一次创建 Project 时也会让你选。如果你压根没有任何 Project,说明你在 Free——Project 需要 Plus 或 Pro。

为什么有些回答里 Project 文件被忽略了? 文件是按需检索,不是每轮都加载。点名文件、或引用文件里一句独特的话让检索触发;“summarize spec.pdf” 比 “总结一下那份 spec” 管用。

分享一个 Project 会改它的 memory 吗? 会。分享会强制 Project 变成 Project-only memory,且改不回去。被分享的协作者看得到同样的文件、instructions 和 Project 内的 chat,但看不到你 Project 之外的个人 memory。

预防建议

  • 固化当前的心智模型:saved memories + reference chat history = 账号全局;Custom Instructions = 全局风格;Project = 本 Project 共享的指令、文件和 memory;Chat = 当下这个对话。
  • 加信息前先问”这该作用在哪个范围?“,按答案选层。
  • 建 Project 时就刻意选好 memory 模式:累积型工作选 Default,隔离 / 敏感工作选 Project-only
  • saved memories 每月清一次,删过期或一次性条目。
  • 任何”必须每轮都在”的内容放 Project InstructionsProject Files,别放 memory。
  • 高约束工作流交给 Custom GPT,别在 Project 里硬刚。

相关阅读

标签: #ChatGPT #ChatGPT 文件 #排查 #排查 #Projects #上下文范围