最快修复: Custom GPT 的 Knowledge files 不是每次对话都自动塞进 context 的。它走的是按需检索(file_search):只有用户问题命中文档里的措辞、或者 Instructions 里写明先查知识库,模型才会真正读文件。在 Configure → Instructions 最顶部加一条硬要求——“Before answering, always search the knowledge files first”——点 Update,大约 70% 的”它不理我的文件”问题立刻就好了。
配置页里挂上去 ≠ 模型每次都看。各项上限(截至 2026 年 6 月:20 个文件、单文件 512MB、单文件 2,000,000 tokens)确实是硬上限,但真正的瓶颈往往是检索的触发率,而不是这些上限。
先判断你属于哪一类
动设置前先花 30 秒做这个分诊。开一个全新对话,让 GPT “从 <你的文件> 里原文引一句第一页的话”。
| 你看到的现象 | 最可能的原因 | 跳到 |
|---|---|---|
| GPT 用通识回答,从不提文件 | Instructions 没强制查库 | 原因 1 |
| 用文档原词能命中,换同义词就失败 | 问题没命中检索关键词 | 原因 2 |
| 有的文件能引、有的总是失败 | 文件太多,或某个文件太大 | 原因 3 |
| 文件在列表里,但每次引用都错或被拒 | 入库静默失败 / 文件消失了 | 原因 4 |
| Knowledge 里只挂了 PNG / MP3 / MP4 | 支持上传但不支持检索 | 原因 5 |
| Configure 预览里好,分享链接里坏 | 你没点 Update | 原因 6 |
常见原因
按命中率从高到低排:
1. Instructions 没显式要求”先查知识库”
最常见——你把 PDF / DOCX 挂上去就觉得万事大吉,但 Custom GPT 的默认行为是先用模型通识回答。Instructions 里没有”always search the knowledge files before answering”这种硬要求,模型大概率跳过检索。
如何判断:让 Custom GPT 回答一个只有知识库里才有的事实(比如某个内部产品代号)。如果它回”我不知道”或者编一个版本号,就是没触发检索。
2. 用户问题没命中检索关键词
Retrieval 用关键词 / 向量匹配。问题里没出现文档里的关键词,相似度不够,就跳过。比如知识库是”API 限流文档”,用户问”为什么请求被拦了?”——“限流”两个字没出现,检索可能拉不到那篇。
如何判断:先按文档里的原词来问一次(“API 限流策略是什么”),再用同义词问一次(“请求被拦怎么办”)。如果只有第一种能命中,就是关键词错位。
3. 文件数接近上限或单文件过大被截
Custom GPT 上限(截至 2026 年 6 月):最多 20 个文件,单文件 512MB 且 2,000,000 tokens,CSV / 表格实际上限在 50MB 附近。总文本会被切成 chunk,每次查询只拉评分最高的几个 chunk,所以文件过大时只会拉到几块——关键信息可能正好在没被拉到的那一块。对文字密集的 PDF,2M tokens 这道天花板往往远早于 512MB 触顶,会把文件悄悄截断。
如何判断:在 Configure → Knowledge 里看文件数和大小。> 15 文件 / 单文件 > 50MB 就先按这条排查。让它”列出 knowledge 里的所有文件名”,如果列不全,就是确实被切掉了。
4. 文件入库静默失败(或文件凭空消失)
上传 UI 显示成功 ≠ 内容已索引。损坏 PDF、奇怪编码、扫描件无文本层都会让索引在后端静默失败,文件出现在列表里但搜不到内容。另有一个到 2026 年仍在 OpenAI 开发者论坛被反复报告的 bug:文件在保存或刷新页面后从 Knowledge 列表里消失,于是 GPT 确实无文件可读。
如何判断:让 GPT “从 xxx.pdf 里原文引一句第一页的话”。引不出 / 内容是幻觉就是索引失败。然后刷新 Configure → Knowledge,确认文件是否还在列表里——如果文件数变少了,就是被悄悄移除了,必须重新上传。
5. 文件类型支持上传但不支持检索
图片、音频、视频可以挂到 Knowledge 但不会被向量化检索,只是被存着。模型问起来”看不到”——它真看不到。
如何判断:Knowledge 里只挂了 PNG / MP3 / MP4,问什么都说不知道——就是这条。改成 PDF / DOCX / TXT / MD。
6. 测试时用了 Preview 但发布的是旧版本
在 Configure 页测试时是当前编辑版本,但你 Share 给别人或自己用的 GPT URL 是上次 Update 的版本。文件改了没点 Update,对外还是旧的。
如何判断:在用户端 GPT URL 打开,问”列出你能访问的文件”,对比 Configure 页文件列表。不一致就是版本没更新。
动手前先确认
- 确认问题是在 Configure 预览里还是发布后的 GPT URL 里出现;两者用的是不同版本快照。
- 复现前把当前对话复制一份或截图,避免清掉历史影响下次诊断。
- 确认账号订阅。Free 账号可以使用别人发布的 Custom GPT(消息条数限制更紧),但不能创建——GPT 编辑器(截至 2026 年 6 月)需要 Plus($20/月)、Pro、Team 或 Enterprise。如果你连 Configure 都打不开,那是订阅问题,不是文件问题。
需要收集的信息
- 文件类型、大小(MB)、页数 / 行数;是否扫描件 PDF、是否含中文 / 公式 / 图表。
- Knowledge 里文件总数、是否接近 20 上限。
- 完整 prompt 文案 + GPT 回复截图;如果回复说”看不到文件”原话记录下来。
- 当前 GPT 的 instructions 全文(截图 Configure → Instructions)。
- 测试时用的是 Configure 预览还是发布版 URL。
最短修复路径
按收益从高到低,前 2 步通常就能解决 70% 的问题。
Step 1:Instructions 顶部加硬要求
打开 Configure → Instructions,在最前面(不是末尾)加:
Before answering ANY question, first call `search the knowledge files`
to check if the answer exists in the uploaded documents. Only use your
general knowledge if the knowledge files contain nothing relevant.
When citing knowledge, name the source file.
中文 GPT 也用英文写——instructions 用英文模型遵守更稳。点 Update 发布新版本。
Step 2:用关键词式提问
让用户(包括你自己)按文档里的原词来问:
差:这个功能怎么用?
好:根据 `user-guide.pdf`,"批量导出"功能怎么用?
把”根据 xxx.pdf”这种点名写到 instructions 里要求模型也这样回答(“always quote the source filename”),用户问的时候也照着学。
Step 3:清理 Knowledge 到 ≤ 10 个核心文件
20 是硬上限,但实测 8-12 个命名良好的文件检索质量最稳。> 15 文件检索会偏向高分那几个,其他基本被冷落。
操作:
- Configure → Knowledge → 删除冗余 / 过期文件
- 把多个小文件合并成一个分章节的大文件(带清晰
# Chapter 1标题),检索 chunk 时上下文更连贯 - 文件名带语义:
api-rate-limit-policy.pdf胜过doc1.pdf
Step 4:分割超大文件 + 转 Markdown
单文件 > 50MB 的 PDF:
# 拆 PDF(macOS / Linux)
brew install qpdf
qpdf --split-pages=30 large.pdf split-page-%d.pdf
# 转 Markdown(更高质量抽取)
pip install marker-pdf
marker_single large.pdf ./output --max_pages 100
把 Markdown 上传比 PDF 检索质量高一截,特别是带表格的文档。
Step 5:验证索引成功
发布后开一个新对话,依次问:
1. 列出你 Knowledge 里所有文件名
2. 从 `<filename>.pdf` 里原文引一句第一页的话
3. 这份文档大概多少页 / 多少行?
任何一题答不上来,就是那个文件索引坏了——重新上传一次(删掉再传),通常会触发重新索引。
Step 6:发布并用 GPT URL 测试
测试不要只在 Configure 页做。点 Update → Share → 复制 GPT URL,开无痕窗口或换账号打开,跑一遍上面 Step 5 的三题。Configure 里好但 URL 里坏,就是没点 Update。
怎么确认已经修好
- 开新对话(不要在原会话里继续)上传同一个文件,问同一个问题,确认不是会话历史污染。
- 换一个账号或换无痕浏览器再打开 GPT URL 试一次,确认不是账号 / 客户端缓存。
- 让同事在他们的账号里重复一遍流程,确认不是只有你的账号被修好。
如果还是没修好
- 把文件切到最小:100 行的 CSV、1 页的 PDF,看最小用例能不能跑通。
- 换文件格式:PDF→txt、DOCX→md,排除是不是某种格式的解析路径有问题。
- 换模型:在 Configure → Model 里把 GPT 设成 GPT-5.5(2026 年 4 月起的默认模型),别让它停在更老的默认值上;对含糊的问题,Thinking / Pro 推理模式触发检索比 Instant 模式更稳。
- 查 status.openai.com——如果 “file search” 或 “GPTs” 组件处于降级状态,不管你怎么配,所有检索都会失败。
- 准备好原文件、prompt、GPT URL、订阅级别截图,去 help.openai.com 提工单。
预防建议
- 建 Custom GPT 时先准备一组 5-10 题的”检索触发率测试”——只有 Knowledge 里才有的事实,发布前用这组题验一遍。
- Instructions 永远把”先 search the knowledge files”放第一句,不要埋在中间。
- 文件控制在 8-12 个、单文件 ≤ 30MB、文件名带语义。
- 改完 Knowledge / Instructions 后必点 Update,再用 GPT URL(不是 Configure 预览)验证一遍。
- 表格 / 数据类内容优先用 CSV / Markdown,不要用 PDF——抽取层质量差异大。
常见问题
为什么我的 Custom GPT 不理 Knowledge 文件,却能读我拖进对话框的文件?
你在对话框里临时附上的文件会直接进入这一轮的 context,所以模型立刻就能读。Knowledge 文件不在 context 里——它们躲在 file_search 后面,只有问题命中、或 Instructions 强制查库时才会被拉出来。这道差距正是”临时上传的文件能用、Knowledge 文件不能用”成为最常见报告的原因。
一个 Custom GPT 该放多少个 Knowledge 文件? 硬上限是 20,但检索质量在 8–12 个命名良好的文件时最佳。超过 15 个左右,检索会偏向那几个高分文档,把其余的饿死。更少、更大、结构清晰的文件,胜过一堆零碎小文件。
加一句 “always search the knowledge files” 真的有用吗? 有,而且比任何单项改动都管用。模型的默认行为是先用通识回答;在 Configure → Instructions 最顶部加这一条显式指令,就能翻转这个默认,是性价比最高的修复。即便是中文 GPT,这句也用英文写。
文件在列表里但 GPT 引不出来,是坏了吗? 几乎一定是入库失败——损坏 PDF、无文本层的扫描件、奇怪编码,或者 2,000,000 tokens/文件 的上限把大文档悄悄截断了。删掉文件重新上传以触发重新索引,或者先转成 Markdown / TXT。
我改了文件,但用户拿到的还是旧答案,为什么? 你几乎肯定没点 Update。Configure 预览用的是你的实时草稿;分享出去的 GPT URL 提供的是上次发布的版本。每次改 Knowledge 或 Instructions 都要显式点一次 Update,再用公开 URL(不是预览)重测。
Free 用户能用我的 Custom GPT 吗? 能。Free 账号可以打开并使用已发布的 Custom GPT(消息条数限制更紧),所以对他们检索也应该正常工作。Free 账号不能做的是创建 GPT——编辑器需要 Plus、Pro、Team 或 Enterprise。
相关阅读
- ChatGPT Project 文件未被引用
- 文件从对话中消失
- Project 指令被忽略
- ChatGPT 多文件没被一起用
- ChatGPT 上传的 PDF 分析不正确
- ChatGPT Project 导出缺少附件
- ChatGPT Project Instructions 更新后被忽略
- ChatGPT Project Knowledge 编辑后没更新
- ChatGPT 生成的文件下载失败
- ChatGPT 图片编辑结果未变:5 个原因 + 修复路径
- ChatGPT 看不懂上传的图片:6 类原因 + 排查修复
- ChatGPT Project 文件数超限
- ChatGPT Project 分享链接返回 404
- 扫描件 / 手写 PDF 上传后 ChatGPT 说’读不出来’:需要 OCR 预处理
- ChatGPT 看不到 ZIP 压缩包里的内容:沙箱不会自动解压