AI方法论
关于上下文(Context)你知道的和不知道的技巧
整理自 AI写的放这里.md
关于上下文(Context)你知道的和不知道的技巧
很多人有个不好的习惯,就是舍不得重开对话。我就是这种人,因为我看到窗口左边挂着密密麻麻的对话框我就有点...难受的感觉。所以我都是在一个对话里面一直问一直说。
从使用豆包、元宝开始我就是这样,现在使用Claude code、Cursor、Codebuddy等工具,依然是这种习惯。
对于这个标识,我根本没怎么在意过,甚至不知道是什么意思。
图片占位图
后来,我才逐渐了解了这个context的意思,知道了什么是context Engineering。知道了因为这个习惯,我浪费了很多token,现在想起来扼腕叹气不已。
很多人估计也和我之前一样,用了很久AI,上下文这个概念还是模模糊糊的。今天这篇就帮你把上下文彻底搞明白——你知道的和不知道的,都在这里了。
说明:本文的命令基于Claude code 和Cursor,使用方法各大工具都通用。
上下文到底是什么?
一句话:上下文就是在和AI的对话窗口里面,你和AI说了那些话,你让AI读取了哪些文件,AI是怎么理解以及处理的过程,都在这个窗口里面。
使用方法
用过AI聊天工具的人,基本都懂一些喂上下文的办法——给背景、贴文件、@引用某个文档。这些都是基础的"喂上下文"操作,我就不多说了。
但光知道"如何使用"还不够,下面这5个技巧,才是拉开差距的地方。
你可能不知道的:上下文的5个技巧
技巧1:喂材料要精准,别一锅端
很多人觉得给AI的材料越多越好,恨不得把整个项目文件夹全甩给它,让它"全面了解"。
结果呢?重点被冲掉了。AI在一堆材料里找不到关键信息,给你整出来的回答平平无奇。
正确的做法是:能引用单文件就不引用整个目录,能引用相关段落就先手动缩小范围。先摘要再贴长内容,别一整段甩过去。
在Cursor里,就是能@单个文件就别@整个文件夹;在Claude Code里,能指定路径让AI自己搜就别把整段代码贴进对话。
技巧2:不相关的任务一定要分开聊
不同的任务不在同一个窗口说,这个大家都能理解。混在一起有两大坏处:一是无关内容占用上下文空间,二是AI容易被之前的话题带偏,给你的回答牛头不对马嘴。
我要说的是就算是同一个项目,如果是不同的工作任务,也建议开不同的窗口去做。
比如,你之前写一个PPT,AI给你干的不错,下一个PPT你还想在这个窗口工作。这种是不合理的。首先是这个窗口可能时间长了,缓存已经没有了,再用没有意义。还有就算时间不长,但是你两个PPT差距较大,之前PPT的上下文对新的PPT没什么帮助,反而占空间。
技巧3:上下文到50%就该另开窗口——但别频繁开
这个方法是大家公认的,Claude的开发人员也这样建议过。
上下文不是无限的。每个模型都有上下文窗口的上限,一般用百分比来衡量。到了50%左右,AI就开始"挤"了——前面的内容被压缩,重要细节可能丢掉,回答质量明显下降。
所以我的习惯是:上下文到50%了,该清就清,该另开窗口就另开窗口。别舍不得那个对话,续着聊只会越来越差。
在Claude Code里,可以输入 /context 查看当前上下文占用情况。Token快超了的时候赶紧看一眼,心里有数。
Cursor里没有直接的命令看占用,但聊天界面上有个上下文栏,能看到当前引用了哪些文件、上下文大概多满。直观程度差不多,一个用命令一个用界面。
但这里有个反直觉的点:频繁开新窗口也不省钱。
背后的原因是缓存机制。AI每次收到你的消息,都要把整个上下文从头"读"一遍——系统指令、工具定义、CLAUDE.md里的规则、之前所有的对话记录。同一个窗口里,前面这些不变的内容会被缓存下来,下次读取缓存的成本只有重新计算的十分之一。
但如果你开了一个新窗口呢?之前积累的缓存全部用不上,5万Token的"基础设施"得重新全价加载一遍。频繁/clear或者每做完一步就开新会话,等于反复为这些不变的内容付全价。
这个缓存机制在Claude Code和Cursor里都一样。Cursor虽然没有/clear命令,但新建Chat的效果一样——之前的缓存白攒了。
所以正确的心态是:能继续就继续,开新窗口是有条件触发的操作。
什么条件该继续?任务没换、距离上一条消息不超过1小时、之前的上下文对当前工作还有用——那就继续聊,缓存是热的,几乎不花钱。如果暂时没想法但不想让缓存过期,发条简短消息保活就行。
什么条件该重开?任务换了、闲置超过1小时(缓存大概率过期了)、上下文里塞满了不相关的噪音——那就果断重开。
个人习惯:我现在一个会话只做一件事,几乎不会触发配额问题。
技巧4:聊多了用命令续命
有时候一个窗口聊了很久,内容确实重要,不想丢,但上下文又快满了。这时候有两个续命办法:
/compact:压缩对话历史,总结之前的内容,腾出更多上下文空间。聊了很多轮之后,用这个能续命。这是Claude Code的命令,Cursor目前没有对应的手动命令,但Cursor会在上下文快满时自动压缩(你会看到侧边提示"Summarizing chat context"),效果一样,只是不能主动触发。
/summarize:如果不想丢失历史信息但对话已过长,用这个让AI把核心信息(关键背景、已做决策、待解决问题)提取出来,上下文能压缩到原本的15%以内。Claude Code和Cursor都支持这个命令。
思路是一样的:上下文快满了,要么压缩,要么另起炉灶。
技巧5:长内容给路径,别往对话里贴
碰到报错日志、大段代码、长文档,很多人的第一反应是复制粘贴到对话里让AI自己找。
别这么做。
把10000行日志复制粘贴到对话里,这些内容就永久占着你的上下文空间了,每多一轮对话都要重新"读"一遍。更聪明的做法是把文件路径发给AI,让它自己去检索需要的信息,只把相关内容拉进上下文。
Claude Code里直接把路径写在对话里就行,AI会用grep等工具自己去搜。Cursor里用@引用文件——注意,能@单个文件就别@整个文件夹,引用粒度越细,上下文越干净。
记住一句话:最便宜的Token,是根本没进上下文的Token。
上下文管理不是什么玄学,就是个习惯问题。给AI喂对材料、控制好用量、不相关的任务分开聊、长内容给路径别贴对话——做到这几条,你已经比大部分人都用得好了。
上下文用的好,还有一点就是会节约很多token。现在是拼算力的时代,AI越来越智能,各大模型的token价格持续上涨。以后拼的就是谁能用最少的token完成工作,谁就能比别人先获得公司的青睐。
学会管理上下文,也就学会了节约token。