03.04工作流
本页目录 10
上下文管理
上下文质量直接决定 AI 输出质量。本章讲解如何精准提供上下文,避免信息过载和信息缺失。
上下文的三个维度
1. 项目上下文
让 AI 理解项目的整体结构和约定:
项目类型:Next.js 14 App Router + TypeScript
状态管理:Zustand
样式:Tailwind CSS + shadcn/ui
测试:Vitest + Testing Library
API:tRPC
数据库:PostgreSQL + Prisma
这类信息适合放在项目规则文件(如 .cursor/rules/、CLAUDE.md、.kiro/steering/)中,每次自动注入。详见项目规则文件。
2. 任务上下文
当前任务直接相关的代码和信息:
- 要修改的文件内容
- 相关的类型定义
- 依赖的接口或函数签名
- 现有的测试用例
3. 约束上下文
告诉 AI 不能做什么:
- 不引入新的 npm 依赖
- 不修改 auth/ 目录下的文件
- 保持现有 API 接口不变
- 不改动数据库 Schema
上下文选择策略
最小相关集原则
graph LR
A[所有相关文件] --> B{是否直接影响任务?}
B -->|是| C[包含]
B -->|否| D{是否提供必要约定?}
D -->|是| E[摘要包含]
D -->|否| F[排除]
按任务类型选择
新增功能
必须包含:
- 相邻的同类功能实现(作为风格参考)
- 相关的类型定义文件
- 测试文件模板
修复 Bug
必须包含:
- 复现步骤
- 出错的完整堆栈
- 相关模块代码
- 最近的相关改动(git diff)
重构
必须包含:
- 当前实现
- 重构目标(接口保持不变 or 允许改变)
- 现有测试用例
上下文过载的信号
当你发现以下情况,说明上下文过多:
- AI 开始修改你没有提到的文件
- AI 的回复开始讨论与任务无关的优化
- AI 忘记了你在同一对话中设置的约束
解决方案:开启新对话,只带入当前任务必需的上下文。
上下文不足的信号
- AI 生成的代码风格与项目不一致
- AI 引入了项目中已有的功能的重复实现
- AI 做出了与项目约定冲突的假设
解决方案:补充项目约定和相邻代码示例。
上下文模板
【项目约定】
- 语言:TypeScript,严格模式
- 框架:Next.js 14 App Router
- 样式:Tailwind CSS,不使用内联样式
- 错误处理:统一使用 Result<T, E> 类型
【相关文件】
// src/types/user.ts(类型定义)
[文件内容]
// src/lib/api.ts(API 工具函数)
[文件内容]
【任务】
[具体任务描述]