做产品 PMaker
系统提示 项目约束 中间:历史对话、读过的文件、工具输出 越长,这一段越容易被忽略 最新一条 你刚说的话 一次请求,模型能看到的全部内容 注意力 开头记得牢 中间最容易丢 结尾最新鲜

上下文窗口不是均匀的。开头和结尾被看得最清楚,中间那一段随着长度增加会逐渐失焦。

上下文是怎么回事

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

你会遇到的现象
  • 聊到第三十轮,它开始忘记前面定好的规则
  • 把整个项目丢给它之后,回答反而变含糊了
  • 新开一个会话,昨天讲清楚的事要从头再讲一遍

它包含什么

组成说明
系统提示与项目规则工具自带的指令,加上你项目里的约束文件
历史对话这一轮会话里说过的每一句,包括它自己的回复
读过的文件它打开过的代码、文档。一个大文件能吃掉很大一块
工具输出搜索结果、命令行输出、报错信息。这部分最容易失控
你最新说的话本轮的指令
上下文不只是你打的那段字,而是它这一次能看到的整个信息环境。管好这个环境,比琢磨提示词的措辞重要得多。

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

长了会变差

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

四个应对动作

动作做什么具体手段
写出去 把结论存到上下文之外 规格文件、约束文件、进度记录。不让它反复推导已经定过的事
挑着给 只给这一步真正需要的 指名要改哪个文件,别让它自己翻遍整个仓库
压缩 长内容先摘要再进上下文 大段日志先提取关键行;长对话阶段性总结一次
隔离 不同任务分开跑 一个任务一个会话,别让上一件事的噪音污染下一件
第一条最有杠杆。把定好的东西写进文件,等于给模型加了一份不会随对话变长而模糊的记忆。

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