
Context engineering is the new vibe coding.
最近,GitHub 上一个名为 context-engineering-intro 的项目火了。上线不到两周,Star 数就突破了 12k+。这个项目用一句话点明了核心:“Context engineering is the new vibe coding — it's the way to actually make AI coding assistants work.”
这句话揭示了一个关键事实:Vibe Coding 的概念很吸引人,但真正能让 AI 编程助手高效工作的,是 Context Engineering(上下文工程)。
今天,我们就来深入聊聊什么是 Context Engineering,它为什么至关重要,以及如何在你的 Python 等项目中进行实战应用。
01 什么是 Context Engineering?
先说说 Vibe Coding。
Vibe Coding 是 2025 年底流行起来的概念,核心思想是:用自然语言描述你想要的功能,让 Claude Code、Cursor 这类 AI 编程助手自动生成代码。
听起来很美好,对吧?但实际使用中,很多开发者遇到了这些问题:
- AI 生成的代码不符合项目规范
- AI 不理解你的架构设计
- AI 会重复犯同样的低级错误
- 你需要花费大量时间反复纠正 AI 的输出
问题出在哪?
根本原因在于 AI 缺少足够的上下文(Context)。
Context Engineering(上下文工程) 就是为了解决这个问题而生的。它指的是:通过精心设计和组织项目的上下文信息,让 AI 编程助手能够真正理解你的代码库结构、架构设计、编码规范,从而生成高质量、可直接使用的代码。
简单来说,两者的区别在于:
- Vibe Coding = “帮我写个用户登录功能”
- Context Engineering = “帮我在 FastAPI + PostgreSQL 的微服务架构下,遵循 PEP 8 规范,参考现有认证模块的模式,实现一个 JWT 用户登录功能”
02 为什么 Context Engineering 如此重要?
观察一下周围,你会发现开发者使用 AI 助手通常有三种状态。
状态 1:盲目信任
用户:帮我写个用户登录功能
AI:(生成了一段代码)
用户:(直接复制粘贴)
结果:代码跑不起来,或者不符合项目规范
状态 2:反复纠正
用户:帮我写个用户登录功能
AI:(生成了一段代码)
用户:不对,我们项目用的是 JWT,不是 Session
AI:(重新生成)
用户:还有,我们的数据库是 PostgreSQL,不是 MySQL
AI:(再次重新生成)
用户:还有还有...
状态 3:Context Engineering
用户:(提供项目上下文)
- 架构:前后端分离,Next.js + FastAPI
- 认证:JWT,token 有效期 7 天
- 数据库:PostgreSQL,使用 SQLAlchemy ORM
- 规范:遵循 PEP 8,函数需要 type hints
- 参考:参考 /auth/login.py 的实现模式
用户:帮我在上述上下文中,实现用户登录功能
AI:(生成符合项目规范的代码)
用户:(直接使用,无需修改)
看到了吗?Context Engineering 的核心价值在于大幅减少反复沟通的成本,显著提高 AI 首次输出的代码质量。
03 Context Engineering 的核心要素
根据 context-engineering-intro 项目的总结,高效的上下文工程应包含以下几个要素。
3.1 代码库结构
让 AI 了解你的项目目录是如何组织的。
my-project/
├── src/
│ ├── api/ # API 路由
│ ├── models/ # 数据模型
│ ├── services/ # 业务逻辑
│ └── utils/ # 工具函数
├── tests/ # 测试文件
├── config/ # 配置文件
└── docs/ # 文档
为什么重要? AI 需要知道新代码应该放在哪里,以及如何正确引用项目中已有的模块。
3.2 架构模式
让 AI 理解你的整体架构设计。
## 架构模式
- **分层架构**:Controller → Service → Repository
- **依赖注入**:使用依赖注入容器管理服务
- **错误处理**:统一使用 AppException 类
- **日志**:使用 structlog,包含 request_id
为什么重要? 确保 AI 生成的代码符合你的架构约束,而不是随意发挥,产生架构上的“异味”。
3.3 编码规范
明确告诉 AI 你的代码风格要求。
## 编码规范
- 函数必须有 type hints
- 所有公共方法必须有 docstring
- 使用 f-string 格式化字符串
- 异常处理必须记录日志
- 禁止在业务逻辑中 print()
为什么重要? 避免生成风格迥异的代码,减少 Code Review 时在格式规范上耗费的时间。
3.4 技术栈信息
清晰列出项目所使用的技术和版本。
## 技术栈
- **前端**:React 18, TypeScript 5, TailwindCSS
- **后端**:Python 3.11, FastAPI, SQLAlchemy 2.0
- **数据库**:PostgreSQL 15
- **缓存**:Redis 7
- **消息队列**:RabbitMQ
为什么重要? 防止 AI 使用过时的、废弃的 API 或不兼容的库版本,特别是当你项目里使用的 数据库 或中间件有特定版本要求时。
3.5 业务领域知识
向 AI 解释清楚你的业务逻辑和核心概念。
## 业务概念
- **用户**:分普通用户和 VIP 用户,VIP 有额外权限
- **订单**:状态包括 pending/paid/shipped/completed/cancelled
- **积分**:1 元=1 积分,VIP 用户 1.5 倍积分
为什么重要? AI 需要理解业务规则,才能生成逻辑正确的代码,而不仅仅是语法正确的代码。
04 实战:如何实施 Context Engineering?
理论讲完了,我们来看看具体怎么做。
4.1 创建 CONTEXT.md 文件
在你的项目根目录下创建一个名为 CONTEXT.md 的文件。这是你项目的“AI 说明书”。
# Project Context
## 项目概述
[简短描述项目是做什么的]
## 技术栈
[列出主要技术和版本]
## 架构模式
[描述架构设计]
## 目录结构
[关键目录说明]
## 编码规范
[代码风格要求]
## 业务概念
[核心业务术语解释]
## 参考实现
[典型代码示例]
4.2 在 AI 会话中提供上下文
使用 Claude Code 时,可以通过几种方式注入上下文:
# 方式 1:使用 /context 命令直接引入文件
/context /path/to/CONTEXT.md
# 方式 2:在提问中引用文件
@CONTEXT.md 帮我实现用户登录功能
# 方式 3:通过命令行参数传递
claude-code --context ./CONTEXT.md "帮我实现用户登录功能"
使用 Cursor 时,通常在聊天框中 @CONTEXT.md,然后输入你的问题即可。
4.3 使用 claude-mem 自动管理上下文
claude-mem[1] 是一个 Claude Code 插件,它可以:
- 自动记录你每次会话中的重要上下文信息
- 智能压缩并存储关键点
- 在后续相关的会话中自动为你注入这些记忆
安装很简单,在 Claude Code 中执行:
/install claude-mem
使用时,你可以随时保存关键信息:
/mem save 这个项目使用 JWT 认证,token 有效期 7 天
/mem list # 查看所有已保存的上下文记忆
4.4 创建项目特定的 AI 指令
你可以在项目根目录创建 .clinerules(Claude Code)或 .cursorrules(Cursor)文件,来定义 AI 在该项目中必须遵守的行为规范。
# 项目规则
## 代码风格
- 始终使用 type hints
- 函数不超过 50 行
- 一个函数只做一件事
## 架构约束
- Controller 不能直接访问数据库
- 所有异常必须被捕获并记录
- 禁止循环 import
## 测试要求
- 新代码必须有单元测试
- 测试覆盖率不低于 80%
AI 助手会自动读取这些规则文件,并在生成代码时严格遵守。
05 一些高级技巧
5.1 分层上下文
不要一次性把 CONTEXT.md 的全部内容扔给 AI。根据任务阶段,分层提供信息:
Level 1: 项目概述 + 技术栈(首次会话建立整体认知)
Level 2: 架构模式 + 目录结构(开始编写具体功能时)
Level 3: 具体模块的实现细节 + 业务规则(深入开发或调试时)
5.2 动态上下文
根据当前任务类型,动态提供最相关的上下文:
写新功能 → 提供架构模式 + 编码规范 + 参考实现
修复 Bug → 提供相关模块的代码 + 错误日志 + 测试用例
代码重构 → 提供完整的模块依赖图 + 现有测试用例 + 性能指标
5.3 上下文压缩
当需要引用的代码文件很长时,可以先让 AI 帮你总结核心信息:
请帮我总结这个文件的关键信息,保留:
- 核心类和方法及其作用
- 重要的配置项和默认值
- 关键的业务规则和逻辑
删除:
- 详细的函数实现代码
- 普通的注释
- 示例数据
这样可以节省宝贵的上下文 Token,同时保留精髓。
5.4 上下文版本控制
CONTEXT.md 应该被视为项目文档的一部分,随项目迭代而更新。
git add CONTEXT.md
git commit -m “更新上下文:添加新的微服务通信协议说明”
06 总结
Vibe Coding 是令人兴奋的起点,而 Context Engineering 才是真正高效的终点。
仅仅停留在 Vibe Coding 阶段,你得到的只是一个“偶尔能蒙对”的 AI 助手。但掌握了 Context Engineering,你将拥有一位“深刻理解你的项目和需求”的编程伙伴。
核心要点回顾:
- 创建 CONTEXT.md — 这是你与 AI 沟通的项目基石。
- 使用 .clinerules/.cursorrules — 为 AI 设定明确的行为边界和规范。
- 利用 claude-mem 等工具 — 让上下文管理自动化、智能化。
- 分层、动态地提供上下文 — 根据任务精准投放信息,提升效率。
- 持续维护和更新上下文 — 确保 AI 的理解与项目进展同步。
最后,一个共识正在形成:AI 编程助手不会替代程序员,但善于运用 Context Engineering 的开发者,将会拉开与不善于使用者的效率差距。
资源链接:
如果你想了解更多关于如何设计高可用、可扩展的 后端架构 来配合 AI 高效开发,可以到技术社区交流讨论。希望这篇指南能帮助你更好地驾驭 Claude Code,释放 10 倍编程潜力。