我认为业界最先进的 context 工程实践就在 AI IDE 里。这也代表着一种通用场景的未来解法。
从上次 KA "重命名" prompt engineering 为 context engineering 之后,context 工程就正式被提出来作为一种实践范式。今天我发现各家 AI IDE 都在做这件事。
vs code 的 custom instructions
- 项目级别的
.github/copilot-instructions.md
:每次发起对话都会携带给大模型的信息--使用此文件来定义适用于所有代码生成任务的一般编码规范、首选技术以及项目要求。 .instructions.md
: 更精细化或者更充分的context ,可以通过通配符去匹配哪些文件可以用,支持主动调用(进阶玩法,我基本没有这样用)- vs code 设置里自定义,参照下面这个图,它的意义在于每个细微的场景都想兼顾

cursor 里的 rules
官网说明:大型语言模型在生成完内容后不会保留记忆。规则在提示级别提供持久且可重用的context 。应用规则时,规则内容将包含在模型context 的开头。这为 AI 提供了一致的指导,用于生成代码、解释编辑或帮助处理工作流。
它玩的更花了, context 到了文件夹层级,不得不说它很符合直觉!

更直观的是可以选择每条规则如何生效

.cursor/rules
User Rules
对于编写规则来说,它也提供了非常好的建议,不过我越看越觉得这些指导理念和去年前年的 prompt guide 很接近

减少不必要的 context
上面这两条其实算是固化 context 的方式,但是很多时候我们不仅仅是缺少 context 的问题,而是给模型的 context 太多有些是不必要的,有些是超过了模型本身的 context 范围。对于减少 context 长度,各家也下足了功夫:
几乎每家都支持忽略文件------就像 .gitignore
文件一样,现在也有类似的.llmignore
文件,比如:
- vs code 就默认不提供全部代码文件作为 context ,只会将打开的窗口文件作为 context ,或者在聊天框里明显指定文件才作为 context 提供。
- cursor 里加入了
.cursorignore
文件,作用如前所述,唯一的区别是,虽然 Cursor 会忽略被忽略的文件,但由于 LLM 的不可预测性,完全的保护并不能得到保证。 - trae 的摘要机制,较早的对话通过基于 LLM 的总结进行提炼,生成紧凑的记忆条目,保留高层次的推理、工具使用和任务依赖,具体如下图

最近正火的 claude code 也引入了摘要机制,这也是它能够连续不断工作的关键。
为什么是 AI IDE?
我想这是程序员的野望和很自然的想法。最近几年 to D 的开发工作其实一直很火(发现程序员是一个好的消费对象),AI 的出现让最厉害的程序员再次燃起一种可以通过代码再次颠覆全世界的野心,而最适合的场地无疑是 IDE 了,这里可以获得对代码的绝对掌控权,一个空格,一个变量,一行注释。没有哪里可以天然就提供如此多而且结构性如此强的 context 。
ps:还有 memory 之类的我不太了解就不提了。