“Cursor 不好用”、“AI 生成的代码全是错的”、“还不如自己写”——

每次听到这种评价,我都想问一句:你喂给它什么上下文了?

大部分情况不是 AI 不行,是你给的信息不对。就像你跟一个新来的实习生说"帮我写个页面",不告诉他任何项目信息,他写出来的东西能用才怪。

我踩过的 3 个坑

坑 1:把整个文件夹丢给 AI

我:@src/view/marketing 帮我在这个目录下加一个新页面

结果:AI 读了 30 个文件,上下文被无关信息占满,生成质量反而下降。

坑 2:什么上下文都不给

我:帮我写一个活动配置的三步表单

结果:AI 用了它自己的"默认风格",跟项目代码风格完全不搭。

坑 3:给太多文字描述

我:请用 TypeScript,用 antd,用 ProForm,用 dayjs,用 Rematch,
用 axios,用箭头函数,用 less modules,文件放在 src/view/marketing/ 下……

200 字的要求,AI 反而抓不住重点。

正确的做法:3 层上下文策略

下面是三层上下文策略的流程图,展示了信息如何分层加载和组合:

开始生成代码

加载上下文

第一层: 自动加载

技术栈配置

目录结构

禁止事项

~1500 token

第二层: 手动指定

范例文件 1

范例文件 2

~3000 token

第三层: 需求描述

业务差异点

接口信息

~500 token

总计: ~5000 token

高密度信息输入

AI 生成

高质量代码输出

┌─────────────────────────────────────────┐
│ 第一层:自动加载(配置文件,每次自动生效)  │
│ ┌─────────────────────────────────────┐ │
│ │ 技术栈 + 目录结构 + 禁止事项         │ │
│ │ ~1500 token,一次配置永久生效        │ │
│ └─────────────────────────────────────┘ │
│                                          │
│ 第二层:手动指定(范例文件,1-2 个)       │
│ ┌─────────────────────────────────────┐ │
│ │ @CouponCreate/index.tsx             │ │
│ │ AI 自动学习:结构/导入/hooks/样式     │ │
│ │ ~3000 token                         │ │
│ └─────────────────────────────────────┘ │
│                                          │
│ 第三层:需求描述(只写业务差异)           │
│ ┌─────────────────────────────────────┐ │
│ │ "三步表单,字段是xxx,接口是xxx"      │ │
│ │ ~500 token                          │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘
总计:~5000 token,信息密度极高

一个反直觉的技巧:写"不要做什么"比"要做什么"有效

AI 见过太多种写法,你说"用 TypeScript"它知道,但它不知道你项目里哪些写法是被禁止的。

## 禁止事项(比正面要求有效 3 倍)
- 不要用 any 类型
- 不要用 moment
- 不要用 class 组件
- 不要在组件内直接写 axios.get
- 不要用 index.tsx 作为业务组件文件名
- 不要在一个文件里导出多个组件

给 AI 边界,它反而能在正确的范围内生成。

效果对比

方式              Token消耗    生成质量    需要手动修改
─────────────    ─────────   ────────   ──────────
丢整个文件夹       50K+        低          60%+
什么都不给         1K          很低        80%+
3 层策略          5-8K        高          10-20%

信息密度比信息量重要。5K token 的精准上下文,比 50K token 的噪音信息效果好 10 倍。

可直接抄走的 Prompt 结构

## 每次生成代码时的标准 Prompt 结构

参考 @[范例文件路径] 的结构和写法,
帮我写一个 [功能描述]。

业务需求:
- [需求点 1]
- [需求点 2]
- [需求点 3]

接口信息:
- 接口地址:[URL]
- 入参类型见 @[类型文件路径]

不需要处理的部分:
- [路由配置我自己加]
- [权限控制不用管]

这个结构配合自动加载的配置文件,每次对话的有效信息密度极高。


一句话总结:不要让 AI 在 50K token 的噪音里找答案,给它 5K token 的精准信息就够了。


💬 你用 AI IDE 时,最常遇到的"生成不对"的情况是什么?评论区说说,我帮你分析是不是上下文的问题。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐