上下文工程:AI 编程的核心能力
发布于 2026-06-13
AI 编程工具的差距,往往不在模型本身,而在于使用者对上下文的掌控能力。本文介绍上下文工程的五大实践技巧,帮助你在日常开发中系统性提升 AI 助手的输出质量。
上下文工程:AI 编程的核心能力
作为一线开发者,你可能已经用过 Copilot、Claude Code 或 OpenAI Codex。它们确实强大,但很多人发现,用了一段时间后,AI 的建议质量开始下降——代码越来越不相关,甚至答非所问。
问题往往不在 AI 本身,而在你给它的「上下文」。
什么是上下文工程
上下文工程(Context Engineering)是 Prompt Engineering 的进阶形态。Prompt Engineering 关注的是「怎么问」,而上下文工程关注的是「AI 在回答之前看到了什么」。
一个 AI 编程助手的输出质量,直接由它接收到的上下文决定。你给它的项目背景越准确,它的建议就越切中要害。上下文工程的核心,就是系统性地管理这个信息供给。
五个立竿见影的实践技巧
1. 项目结构文档化
在项目根目录放置一个 CONTEXT.md 文件,用结构化的方式描述项目:
# 项目概述
电商后端 API 服务,基于 Node.js + NestJS
## 核心领域模型
- Order(订单):id, userId, status, totalAmount, createdAt
- Product(商品):id, name, price, stock, categoryId
- User(用户):id, email, role, addresses[]
## API 设计约定
- RESTful,URL 使用 kebab-case
- 统一错误响应格式:{ code, message, data }
- 认证:JWT Bearer Token
## 数据库
- PostgreSQL,使用 Prisma ORM
- 迁移文件在 prisma/migrations/
AI 看到这份文档后,能在几秒内理解项目结构,而不需要从几千行代码里慢慢推断。
2. 精准的代码片段注入
不要让 AI 自己搜索相关代码,而是在对话中主动粘贴关键片段。
举个例子,你想让 AI 帮你写一个新的 API 路由,但 Copilot 给的建议完全不符合项目的代码风格。你可以这样做:
我正在为商品模块添加一个新的 API 端点。
这是项目中现有的商品相关路由的写法(符合我们的风格):
// 现有代码
@Get(':id')
async findOne(@Param('id') id: string) {
const product = await this.productService.findById(id);
if (!product) throw new NotFoundException('商品不存在');
return { code: 0, data: product };
}
请参考这个模式,帮我写一个根据分类获取商品列表的端点。
这样做,你是在用具体的代码「教」AI 项目的编码风格,而不是抽象地描述规则。