做产品 PMaker
空格的键盘空格的键盘
与 AI 协作

上下文是怎么回事

上下文是怎么回事 | 与 AI 协作 | 做产品

上下文是怎么回事

上下文是这一次请求里模型能看到的全部内容。它有上限,而且并非看到就等于用上。

你会遇到的现象

  • 聊到第三十轮,它开始忘记前面定好的规则

  • 把整个项目丢给它之后,回答反而变含糊了

  • 新开一个会话,昨天讲清楚的事要从头再讲一遍

它包含什么

组成说明 系统提示与项目规则工具自带的指令,加上你项目里的约束文件 历史对话这一轮会话里说过的每一句,包括它自己的回复 读过的文件它打开过的代码、文档。一个大文件能吃掉很大一块 工具输出搜索结果、命令行输出、报错信息。这部分最容易失控 你最新说的话本轮的指令

上下文不只是你打的那段字,而是它这一次能看到的整个信息环境。管好这个环境,比琢磨提示词的措辞重要得多。

还有一条容易踩的:**跨会话不会自动延续。**今天的会话结束,昨天的判断就不在了,除非它被写进了项目里的文件。

长了会变差

直觉上给的信息越多越好,实际不是。上下文变长时,推理准确率会逐渐下滑,这个衰减是渐进的,不会突然崩掉,所以很难察觉。

  • **中段最容易被忽略。**模型对开头和结尾的注意力更高,塞在中间的关键约束经常不起作用。重要的规则要么放最前,要么在当下这条指令里重申。

  • **窗口大不等于用得上。**能装进一百万 token,不代表这一百万都被有效利用。塞满噪音之后,指令遵循和推理都会明显下降。

  • **无关内容是污染。**读了一堆用不上的文件、贴了一大段无关日志,这些不是「多点信息没坏处」,它们在挤占注意力。

  • **成本和延迟也跟着涨。**这一条对 AI 产品尤其现实——每一次调用都是真金白银。

窗口大,不等于这一百万都被有效利用

真正被用上的 读了用不上的文件 · 贴了一大段无关日志 · 上个话题的全部历史 这些不是「多点信息没坏处」,它们在挤占注意力 而且准确率是渐进下滑的,不会突然崩掉,所以很难察觉

上下文由这五块拼成

系统提示与规则

历史对话

读过的文件

工具输出

你最新说的话 「工具输出」这块最容易失控——搜索结果、命令行输出、几百行报错,一下就把窗口撑满了。

还有一条容易踩的:跨会话不会自动延续。 今天的会话结束,昨天的判断就不在了——除非它被写进了项目里的文件。

四个动作里「写出去」最有杠杆:**把定好的东西写进文件,等于给模型加了一份不会随对话变长而模糊的记忆。**还有一条跟代码组织有关——按功能分目录比按技术分层更适合 AI 协作,改登录只需要读 auth 一个目录。

四个应对动作

动作做什么具体手段

写出去 把结论存到上下文之外 规格文件、约束文件、进度记录。不让它反复推导已经定过的事

挑着给 只给这一步真正需要的 指名要改哪个文件,别让它自己翻遍整个仓库

压缩 长内容先摘要再进上下文 大段日志先提取关键行;长对话阶段性总结一次

隔离 不同任务分开跑 一个任务一个会话,别让上一件事的噪音污染下一件

第一条最有杠杆。把定好的东西写进文件,等于给模型加了一份不会随对话变长而模糊的记忆。

还有一条跟代码组织有关:按功能分目录比按技术分层更适合 AI 协作。做登录相关的改动,前者只需要读 auth 目录,后者要从每一层各读几个文件才能拼出全貌。

接着看

它会做的和不会做的 「它只知道你给它的」这一条的来源。分清哪部分判断必须由你写出来。

上下文预算 这一篇讲原理,那一篇讲具体怎么分配:什么该给、什么不该给、什么时候清空重来。

约束沉淀 「写出去」这个动作的落地。哪些内容值得写进 CLAUDE.md,哪些不值得。