📊 页面导航

适用角色与上手难度

角色推荐度上手难度
🛠️ 开发★★★★★★★★☆☆
🧪 测试★★★★☆★★★☆☆
📦 产品★★★★☆★★★☆☆

🎯 学习产出: 掌握提升 AI 输出准确度的实用技巧,能独立获得更精准的代码生成和回答

🚀 AI 能力提升: 代码生成、调试诊断

提高 AI 生成准确率

预计阅读时间: 10 分钟

AI 写代码不总是对的。但准确率不是玄学——80% 的"AI 不懂我"其实是可以系统化解决的问题。这篇指南从提示词、上下文、任务拆解、验证四个维度,给出可立即上手的技巧。

提示词:说清楚你要什么

AI 不懂你的项目,除非你告诉它。模糊的提示词 = 模糊的结果。

指定技术栈和约束

不好写一个登录页面

用 React + TypeScript 写一个登录页面,使用 react-hook-form 做表单管理,zod 做校验,shadcn/ui 的 Input 和 Button 组件

为什么有效:AI 不会凭空知道你的项目依赖——明确技术栈直接缩小了搜索空间。

给出正面和反面例子

把地址字段从 `address: string` 改成支持多个地址:

不要这样做(冗余):
interface User {
  address1: string
  address2: string
  address3: string
}

要这样做:
interface User {
  addresses: string[]
}

反面例子比正面例子更省 token——AI 一次就能锁定"你不要什么"。

指定输出格式

给 User 表加一个 `role` 字段:
- 改 `src/db/schema.ts`
- 生成迁移文件到 `src/db/migrations/`
- 更新 `src/types/user.ts` 的类型定义
- 只改这三个文件,别动其他

"只改这三个文件"是关键。不加这句,AI 可能顺便"优化"五个不相关的文件。

CLAUDE.md:一次配置,持续生效

CLAUDE.md 是提高准确率性价比最高的操作。它在每次对话开始时自动加载,帮 AI 建立项目心智模型。

必须写清楚的三件事

# CLAUDE.md

## 项目概述

一个基于 Rspress 的文档站点,内容用中文写,技术术语保留英文。

## 技术栈

- Rspress v2 + React 18
- Tailwind CSS,不用 CSS Module
- TypeScript strict 模式

## 代码规范

- 缩进 2 空格
- 单引号,无分号
- 命名导出优先于默认导出
- commit 格式:type(scope): description

易被忽略但效果显著的内容

  • 禁止做的事不要引入新依赖,优先用已有工具别改 _meta.json 除非我明确说
  • 文件结构约定组件放 src/components/,页面放 docs/guide/,静态资源放 docs/public/``
  • 你的偏好用中文解释技术概念,用类比而不是术语堆砌
Tip

每当你发现要反复纠正 AI 同一个问题时,说明这个问题应该进 CLAUDE.md。

主动喂上下文

AI 不知道你的代码库——除非你喂给它。

拖入关键文件

开始任务前,把相关的核心文件拖到对话里:

我需要加一个新 API 端点。相关的文件我已经拖进来了:
- src/routes/users.ts(现有路由参考)
- src/middleware/auth.ts(认证逻辑)
- src/types/api.ts(类型定义)

请按照现有模式,在 users.ts 中添加 GET /users/:id/posts 端点。
Tip

在 Claude Code 中,直接在对话中引用文件路径(如 @src/routes/users.ts)或粘贴文件路径,Claude Code 会自动读取对应文件。使用 VS Code/JetBrains 扩展时,也可以直接从 IDE 拖入文件。

给参考代码

按照 `src/routes/users.ts` 的 `GET /users/:id` 模式的风格,
写 `POST /users`,返回格式也保持一致。

"参考 X 的模式"比"写一个 Y"准确得多——AI 有了可复制的模板。

任务拆解:大任务变大坑

大任务拆成小任务。每次只让 AI 做一件事。

对比

大任务给我的 NestJS 项目加上完整的 RBAC 权限系统

AI 需要同时理解:项目结构、认证方式、数据模型、中间件、装饰器、测试……出错的维度太多。

拆解后

  1. 先在 prisma/schema.prisma 中加 Role 和 Permission 两个模型
  2. 创建 RoleGuard 装饰器,参考已有 AuthGuard 的写法
  3. 在 UserController 上加权限保护,只允许 admin 访问 DELETE /users/:id
  4. ...

每步只涉及 1-2 个文件,出错概率大幅下降。

实用拆解原则

  • 每次只涉及 1-3 个文件
  • 每步有明确的验收标准npm run typecheck 应该通过
  • 前置步骤的结果喂给后续步骤:第一步的 schema 写对了,第二步才不会凭空编字段名

验证:别信,去跑

AI 生成的代码不一定能跑。必须验证。

最轻量的验证路径

  1. 类型检查npm run typechecknpx tsc --noEmit
  2. 构建npm run build(静态站点项目特别重要——dev 正常不代表能构建)
  3. 实际跑一下:访问页面、调接口、跑测试
  4. Lintnpm run lint
改完后:
1. 跑 npm run typecheck
2. 如果有报错,根据报错继续改
3. 直到通过为止

把验证步骤写在提示词里,AI 会自己迭代修正。

让 AI 自检

写完后自己审查一遍:
- 有没有引入未使用的 import?
- 类型定义和实际用法一致吗?
- 有没有改动我明确说不要动的文件?

AI 审查自己的输出通常能抓到 30-50% 的问题,比你再手动检查省时间。

控制上下文质量

对话越长,AI 越"健忘"。控制上下文 = 控制准确率。

及时 compact

每 10-15 轮对话后运行:

> /compact

这会压缩对话历史,释放上下文空间,保持响应质量。

开新对话

当任务方向完全改变时(比如从写 React 组件突然转到配 Docker),开一个新对话。旧上下文里的 React 细节对新任务没有帮助,反而干扰。

具体场景工具箱

场景技巧示例
写新代码给参考文件参考 src/utils/format.ts 的风格写 formatDate
改 Bug给错误信息 + 相关代码这个 API 返回 500,错误栈如下:...,相关代码是:...
重构明确"只改结构,不改行为"把 class 组件改成 hooks,功能保持不变,所有测试继续通过
CRUD给 Schema,让 AI 生成按照 type User = {...} 生成完整的 CRUD 路由
写测试给被测代码 + 期望的覆盖场景给以下函数写测试,覆盖:正常输入、空输入、边界值、错误输入
探索代码先问结构,再问细节这个项目的路由是怎么组织的?在用户路由里加一个新端点

常见错误和补救

"AI 加了一堆多余的代码"

原因:你没说"只改什么"。 补救:提示词里加 只改 X 文件,别动其他的

"AI 用了我们没装的库"

原因:CLAUDE.md 没写技术栈,AI 随意选库。 补救:CLAUDE.md 写明依赖清单和"不要引入新依赖"。

"AI 的代码风格和项目不一致"

原因:没在 CLAUDE.md 里写代码规范,或者没给参考文件。 补救:CLAUDE.md 写规范 + 拖入现有文件做模板。

"AI 改着改着忘了最初的要求"

原因:上下文过长,早期信息被压缩。 补救/compact 释放空间,或者开新对话重新说明。

总结

提高 AI 准确率不是碰运气。记住这四条:

  1. 说清楚:技术栈、约束、不要什么
  2. 喂上下文:CLAUDE.md + 参考代码 + 关键文件
  3. 拆小任务:每步 1-3 个文件,有明确验收标准
  4. 验证:类型检查、构建、实际运行,链条放提示词里让 AI 自己迭代

每多花 10 秒写好提示词,通常能省 2 分钟的来回修正。

下一步