Context Engineering 实战:如何给 AI 最精准的上下文
2026-06-24 · context engineering prompt optimization advanced
Prompt Engineering 教你怎么写指令,Context Engineering 教你怎么给信息。
什么是 Context Engineering?
Prompt Engineering = 告诉 AI "做什么" Context Engineering = 告诉 AI "看什么"
举个例子:
| 场景 | Prompt Engineering | Context Engineering |
|---|---|---|
| 修 bug | "修复这个登录 bug" | "修复这个登录 bug。这是相关代码、错误日志、和之前类似 bug 的修复方案" |
| 写功能 | "实现用户认证" | "实现用户认证。这是现有的用户模型、API 路由、测试框架配置" |
核心区别:不只是写更好的 prompt,而是精心选择 AI 应该看到的信息。
为什么 Context Engineering 重要?
我们的经验判断(不是严谨的学术研究):
- 给 AI 精选的 200 行代码,通常比给它整个 5000 行的项目效果更好
- 给 AI 结构化的信息(表格、列表),通常比给它散乱的文本效果更好
- 给 AI 最新的文档,通常比给它过时的文档效果更好
注意:这些是经验判断,不是经过 A/B 测试验证的结论。不同项目、不同任务可能有不同结果。
Context Engineering 三原则
原则一:相关性 > 完整性
常见做法:把整个项目目录给 AI 建议做法:只给 AI 看相关的代码
❌ "这是我的项目,请帮我重构"
✅ "这是 auth 模块的代码(200行),请帮我重构登录逻辑"
原则二:结构化 > 原始数据
常见做法:给 AI 一堆散乱的文件 建议做法:用表格、列表、层级结构组织信息
❌ 粘贴 10 个代码文件
✅ 用表格列出文件名、作用、关键函数,然后只粘贴最关键的 3 个文件
原则三:新鲜度 > 历史积累
常见做法:给 AI 3 年前的文档 建议做法:给 AI 最新的代码和文档
❌ "这是我们的架构文档(2023年写的)"
✅ "这是我们当前的架构,最近一次更新是上周"
实用技巧
技巧一:用 CLAUDE.md 做持久化 Context
Claude Code 支持项目级的 context 文件,每次对话自动加载:
# CLAUDE.md
## 项目概述
React + TypeScript 电商项目
## 技术栈
- React 18, TypeScript 5
- Zustand(状态管理)
- Tailwind CSS
- Vitest(测试)
## 代码规范
- 组件用 PascalCase
- 工具函数用 camelCase
这个文件只有几百 tokens,但每次对话都能让 AI 了解你的项目背景。
技巧二:用摘要代替全文
当代码文件很长时,给 AI 一个摘要 + 关键部分:
"这是 auth 模块(500行),以下是摘要:
- 使用 JWT 认证
- 有 3 个路由:login, register, refresh
- 密码用 bcrypt 加密
以下是 login 路由的代码(50行):[粘贴代码]"
技巧三:用类型签名代替实现
当 AI 不需要看具体实现时,只给函数签名:
"这个函数的签名是:
function authenticate(email: string, password: string): Promise<User>
关键逻辑:
1. 查找用户 by email
2. 比较密码 hash
3. 生成 JWT token
4. 返回 user 对象"
技巧四:分批处理大任务
❌ 一次性让 AI 处理 10 个文件
✅ 分 3 批,每批 3-4 个文件
第一批:核心模块
第二批:辅助模块
第三批:测试和文档
工具推荐
| 工具 | 用途 | 我们了解的程度 |
|---|---|---|
| context7 | 自动获取最新库文档 | 知道它存在,没有深入测试 |
| headroom | 压缩 tool 输出 | 知道它存在,没有深入测试 |
| CLAUDE.md | 项目级 context | 我们自己在用,效果不错 |
常见错误
错误一:信息过载
❌ 给 AI 50 个文件,说"帮我理解这个项目"
✅ 给 AI 3 个核心文件 + 1 个架构图,说"帮我理解认证模块"
错误二:信息不足
❌ "帮我写个函数"
✅ "帮我写一个验证邮箱的函数,用正则表达式,TypeScript,返回布尔值"
错误三:不压缩日志
❌ 直接粘贴 1000 行的错误日志
✅ 粘贴关键的 20 行 + 错误摘要
总结
Context Engineering 的核心:
- 选择性:只给 AI 需要的信息
- 结构化:用表格、列表、层级组织信息
- 新鲜度:给最新的、准确的信息
这些是我们基于使用经验的建议,不是经过严格验证的"最佳实践"。不同场景可能需要不同策略。
Context Engineering 是一个正在发展的领域。如果你有更好的实践经验,欢迎在 GitHub 分享。