乐于分享
好东西不私藏

AICoding研发新范式04 | Context Engineering

AICoding研发新范式04 | Context Engineering

“上一篇我们讲解了和AI协作写代码要做的心态模式转型。这一篇我们来讲一下AICoding最被低估的工程能力:Context Engineering(上下文编程)。全篇3千余字,大概需要10分钟(若来不及看可先收藏,已把全文总结置顶!)。”

全文速览

很多人用AI效果不稳定,其实问题不在Prompt而在上下文不一致。Context Engineering就是系统性地管理AI能获取的背景信息,包括项目目标、技术栈、历史决策等,远比单次Prompt更重要。

好的上下文分三层:仓库级(如AGENTS.md)、会话级和任务级,需保证正确、完整、精简、有轨迹。常见反模式包括信息太少、太多、太旧或太模糊。维护好上下文,能让AI输出更稳定、减少返工。维护AGENTS.md是最有效的单一手段。


  一、为什么大多数人用AI的效果不稳定?

Prompt 是战术,Context 是战略。

一个常见的现象:同一个问题,同一个AI工具,今天得到一个很好的结果,明天换一个会话,得到一个差很多的结果。

很多人把这归结为"AI不稳定"或者"Prompt没写好"。但更根本的原因往往是:上下文不一致。

AI模型的输出质量,在很大程度上取决于它在生成回答时所拥有的上下文信息——关于项目的信息、关于任务的信息、关于约束的信息、关于历史决策的信息。

这就是 Context Engineering(上下文工程)——系统性地设计、管理和维护AI所能获取的上下文信息,以稳定地获得高质量输出。


二、为什么说"Context > Prompt"

Prompt 是战术Prompt 是你在某个具体时刻对AI说的话。它决定了AI在这一次对话中的行为。好的Prompt可以提升单次输出质量,但它是一次性的、会话级的。

Context 是战略Context 是 AI 在整个任务过程中所能获取的所有信息的总和——不仅是你当前说的话,还包括:

  • 项目的背景和目标

  • 技术栈和架构约束

  • 过去做出的决策和原因

  • 当前任务的范围和边界

  • 验收标准和质量要求

好的 Context 设计,可以让 AI 在整个项目过程中保持一致的行为和输出质量,不依赖于每次都写出完美的 Prompt。

类比:Prompt 像是每次开会前的议题,Context 像是团队共同拥有的背景知识库。一个新成员每次开会都需要反复解释背景,是因为他没有这个背景知识库。AI 的情况类似——如果没有良好的 Context 设计,每次对话都需要从头建立背景。


三、四维上下文质量模型

评估一份 Context 的质量,可以从四个维度:

维度一:正确性(Correctness)

上下文中的信息是否准确?过时的 API 文档、错误的架构描述、不再适用的约束条件,都会主动误导 AI。检查问题:我提供的信息,是否反映了系统当前的真实状态?

维度二:完整性(Completeness)

AI 完成任务所需的关键信息,是否都已经提供?缺失的关键信息会导致 AI 做出错误假设。检查问题:如果一个不了解项目的新工程师只看我提供的 Context,他能做出正确决策吗?

维度三:精简性(Conciseness)

上下文并不是越多越好。AI 的上下文窗口有限,无关信息会稀释关键信息的权重,甚至让 AI 在大量信息中"迷失"。检查问题:我提供的每条信息,是否对当前任务有实际价值?有没有可以去掉的噪音?

维度四:轨迹性(Trajectory)

AI 不仅需要知道"现在是什么",还需要知道"我们是怎么到达这里的"——关键决策的背景和原因,比决策本身更有价值。检查问题:对于重要的约束和设计选择,我有没有说明"为什么这样做"而不仅仅是"这样做"?


四、三层上下文架构

实践中,上下文可以按照"持久性"分为三个层次:

第一层:仓库级上下文(持久性最高)

这是关于整个项目的信息,通常以固定文件的形式存在于代码仓库中,对所有任务都适用。

常见文件:

  • AGENTS.md / CLAUDE.md:告诉 AI 关于这个项目的一切——技术栈、架构模式、代码风格、禁止操作、关键约束

  • .cursorrules:Cursor 专用的规则文件,定义 AI 在编辑代码时的行为约束

  • README.md:项目基本信息,通常 AI 会自动读取

一份好的 AGENTS.md 应该包含:

## 项目概述这是什么项目,服务什么用户,解决什么问题## 技术栈语言、框架、主要依赖及版本## 架构约束模块边界、数据流、禁止的模式## 代码风格命名约定、文件组织、注释要求## 关键决策记录"我们为什么选择 X 而不是 Y" 类型的历史决策## 禁止操作绝对不能做的事(删除数据、修改配置文件、调用外部服务等)

第二层:会话级上下文(中等持久性)

这是针对某个工作阶段或某类任务的上下文,通常在开始一个新的工作会话时提供。

常见形式:

  • SOUL.md:定义 AI 的角色和工作风格

  • 任务背景文档:当前正在做的事情的背景信息

  • 相关代码片段:AI 在本次会话中可能需要参考的现有代码

最佳实践:在开始一个新的工作会话时,明确告诉AI:"今天我们要做的是X,背景是Y,请先读取这些文件"。

第三层:任务级上下文(一次性)

这是针对单个具体任务的上下文,通常在任务开始时提供,完成后就不再需要。

常见形式:

  • spec.md:具体功能的需求规格

  • plan.md:实现方案和设计决策

  • tasks.md:当前任务列表和进度

设计原则:任务级上下文应该是自包含的——仅凭这份文档,AI应该能够完成任务,不需要反复追问。


五、常见的上下文反模式

反模式一:太少(Under-Context)

  • 症状:AI经常需要猜测,输出质量不稳定,经常出现"AI把简单的问题理解错了"的情况。

  • 修复:在 AGENTS.md 中补充关键背景信息;在 Prompt 中使用 CACA 框架提供完整上下文。

反模式二:太多(Over-Context)

  • 症状:把整个代码库都塞给AI,AI的回答开始变得"通用"而不是针对你的具体情况。

  • 修复:每次任务只提供相关的上下文;将大型文档拆分,按需提供。

反模式三:太旧(Stale-Context)

  • 症状:AGENTS.md 上次更新是 3 个月前,描述的是旧架构;AI 按照旧架构给出了错误的建议。

  • 修复:在每次重要架构决策后更新 AGENTS.md;将上下文维护纳入 Definition of Done。

反模式四:太模糊(Vague-Context)

  • 症状:AGENTS.md 里写的是"遵守最佳实践"、"代码要整洁",这些对 AI 毫无约束力。

  • 修复:用具体、可操作的语言描述约束——不是"代码要整洁",而是"函数不超过 50 行,每个公共函数必须有 JSDoc 注释,变量名使用驼峰命名法"。


六、如何写一个好的 AGENTS.md

一份有效的 AGENTS.md,应该能回答 AI 的这五个问题:

  1. 我在哪?→ 项目背景、目标用户、主要功能

  2. 我能用什么?→ 技术栈、可用的库和工具

  3. 我不能做什么?→ 禁止操作、需要人工确认的决策

  4. 我应该怎么做?→ 代码风格、文件组织、测试要求

  5. 为什么是这样?→ 关键架构决策的背景和原因

# AGENTS.md - 项目名称## 项目概述[一段话描述:这是什么系统,服务谁,解决什么核心问题]## 技术栈- 语言: TypeScript 5.x- 框架: Next.js 14 (App Router)- 样式: ****- 数据库: PostgreSQL - 测试: Vitest + Testing Library## 架构原则- Server Components 优先,只在必要时使用 Client Components- 错误处理: 不要 throw,除非是无法恢复的错误## 禁止操作- 修改数据库 schema- 删除任何现有的接口## 代码风格- 函数不超过 50 行- 每个公共函数必须有 JSDoc 注释- 文件命名: 组件用 PascalCase,工具函数用 camelCase- 测试文件与源文件同目录,命名 xxx.test.ts## 关键决策记录- ****

七、写在最后

Context Engineering 是 AI 时代工程师最需要投资的能力之一。它不是一次性的工作,而是随着项目演进持续维护的工程实践。

投资在上下文质量上的时间,会以"AI 输出更稳定、迭代更少、方向偏差更小"的方式得到几倍的回报。

下一次当你觉得"AI 表现不稳定"时,先检查一下:你给它的上下文,是不是这篇文章里描述的某种反模式?


本文是「AI Coding 研发新范式」系列的第4篇。本系列计划10余篇文章,系统的介绍VibeCoding、SpecCoding、OpenClaw多Agent协作的AICoding研发新范式!

AICoding研发新范式01 | 全景图

AiCoding研发新范式02 | Vibe Coding感觉驱动编程

AICoding研发新范式03 | 从「写代码」到「指挥AI写代码」你需要做的转变

下一篇预告:Spec Coding!

关于我:

我是老乔伊,互联网大厂十年技术管理,专注技术人职场跃迁,也在持续探索AI时代IT人职场转型之路!

关注我:

每周持续分享AI时代的技术转型(AICoding)、职场跃迁、绩效管理、后端|数据开发|数据科学专业技能进阶、面试指南等等适合IT人的实操干货!欢迎关注交流~

相关学习资料