怎么跟 AI 说话才能让它写出你要的代码——我和 Claude Code 的配合心法

📅 2026/6/24 12:40:06
怎么跟 AI 说话才能让它写出你要的代码——我和 Claude Code 的配合心法
如果你以为 AI 编程就是你描述需求AI 啪一下给你完美代码——我得先泼一盆冷水。不是这样的。AI 更像是——一个不会累、反应极快、但时不时会理解歪你意思的实习生。它能力很强但你需要学会怎么跟它沟通。我把这几个月摸索出来的经验写下来帮你少走点弯路。一、怎么描述需求先说一个翻车的例子。我最早跟 AI 是这么说的帮我做一个拼多多订单管理的插件。AI 回了一大段问我用什么技术栈界面长什么样数据从哪来要不要登录功能要不要后端我当时懵了——这些问题我一个都答不上来。后来才明白AI 需要你告诉它具体要什么。改进后的说法是这样的我需要一个 Chrome 浏览器扩展。功能是点击工具栏图标弹出一个控制面板页面页面上有一个按钮同步订单点击后从拼多多拉取我的买家订单数据并显示在列表里。列表每行显示订单号、商品名称、金额、订单状态。每个订单前面有勾选框勾选后可以点击批量申请发票按钮。有什么区别改之前的描述太空泛了改之后包含具体做什么同步订单、怎么做拉取数据并显示、长什么样每行显示哪些字段、有什么交互勾选框、按钮。这些东西 AI 都需要知道才能写出对的代码。我的经验是说清楚输入是什么、输出是什么、在什么情况下做什么。把这三句话写进你的需求描述里AI 理解准确的概率会高很多。二、怎么给反馈AI 写完第一版代码之后大概率不是 100% 对的。你可能看到报错了或者功能跑通了但体验不好。这时候你要迭代——告诉 AI 哪不对让它修改。我的做法是先描述现象点击批量开票之后弹窗是空白的贴错误信息如果有报错的话——这个非常重要AI 看报错信息比看你的描述更管用说明你期望的结果是什么希望弹窗里加载出拼多多的发票页面还有一个技巧一次只改一个东西。不要一口气提七八个修改需求。AI 在处理复杂多任务时容易顾此失彼。一个功能搞定了再搞下一个。三、怎么让 AI 帮你 debug不要怕报错。报错是 AI 帮你定位问题的最好线索。比如有次我遇到一个 500 错误——就是页面打不开了。我把完整的报错信息贴给 AI。它几秒钟就定位到了少了一行require_once导致程序找不到类文件。这个问题如果让我自己查——我可能查一天都查不到。但 AI 靠堆栈信息就能定位到具体哪一行。贴报错信息的时候一定要贴完整的。不要只贴最后一行。完整的堆栈追踪信息能帮 AI 快速回溯到问题源头比你自己理解半天再描述一遍要准得多。四、让 AI 写之前先把项目背景说清楚Claude Code 有个功能叫 CLAUDE.md——一个放在项目根目录的文件AI 每次启动都会读。我在里面写了这个项目是什么、用了什么技术栈、有哪些注意事项比如不要主动提交 git、数据库是 MySQL 不是 SQLite。这个文件非常有用。因为 AI 每次新对话都是失忆状态——它需要重新理解你的项目。有了 CLAUDE.mdAI 能更快进入状态不用每次都重复解释。五、最最重要的一个原则不要让 AI 一次做太多事。把大任务拆成小步骤一个步骤一个步骤来。每个步骤完成了、验证没问题了再进行下一步。这不是慢——是稳。我最开始走了很多弯路就是因为想让 AI 一次性把所有功能都写完结果出现了大量乱七八糟的 bug最后还得一个个排查。六、几个让 Claude Code 更好用的高级功能Auto Memory让 AI 自动记住你的偏好Claude Code 有个功能叫 Auto Memory。你每次跟它对话的时候如果它发现某些信息值得记住比如你的偏好、项目的特殊配置、你之前踩过的坑它会自动保存到 memory 里。下次对话的时候它会读取这些记忆相当于 AI 越来越了解你的项目。不需要手动开启——默认就是打开的。你也可以在 Claude Code 里输入/memory来查看和管理已保存的记忆。如果有一条记忆不准确或者过时了直接删掉就行。我的实际体验它记住了一些我之前告诉它的东西——比如不要主动提交 git数据库是 MySQL 不是 SQLite——后面新开的对话里它自动就知道了。省了我不少重复解释的口舌。Hook钩子让 AI 在特定时机自动做事Hook 是我后来才学会的功能。简单说就是——你可以在特定时机让 Claude Code 自动触发某个操作。两个实用的 Hook 场景任务完成提示音——有时候让 AI 执行一个长任务比如改好几个文件你可能切出去干别的事了。任务完成的时候让 AI 触发一个提示音设置一个hook每次完成任务之后都自动执行一个声音脚本发出一个提示音叮进行提醒直接把上面这句话告诉 Claude Code 就行它会帮你设置好。代码提交前自动检查——每次git commit之前AI 自动帮你跑一遍代码格式检查避免把有格式问题的代码提交了设置一个hook每次提交代码之前都会自动触发代码格式的检查Hook 的作用就是在你不注意的时候帮你守住底线——相当于一个自动化的门卫。Plugin插件把能力打包起来Plugin 是 Claude Code 里比较高级的概念。简单理解——它把 Skill技能、SubAgent子代理、Hook钩子、MCP外部工具连接打包成一个统一的东西。在 Claude Code 里输入/plugin可以进入插件管理界面。在这里你可以浏览其他人发布的插件、下载安装需要的插件、管理自己已经安装的插件。举个例子——有个叫commit-commands的插件它可以让你用简单的命令完成 Git 的提交、推送和创建 PRPull Request等操作。不用记复杂的 git 命令输入几个字就行。还有个叫content-creator的插件专门用来跨平台写内容——从博客文章到视频脚本到社交媒体内容都覆盖。如果你经常需要写不同平台的内容这个能节省不少时间。用 Plugin 的好处是——你不用自己去研究这些功能怎么做。别人做好了你直接装。Skill技能和 SubAgent子代理Skill 是 Claude Code 的技能包——你可以给 AI 安装特定的技能让它在某些领域变得更专业。SubAgent子代理则更进一步——你可以创建多个独立的 AI 助手每个负责不同类型的任务比如一个专门写前端、一个专门写后端、一个专门做测试。创建子代理很简单——输入/agents进入代理管理界面选择创建项目级的子 Agent给它起个名字、选个颜色方便区分。之后根据不同需求调用不同的子 Agent 来处理对应的工作。我自己的项目里用得不多规模还没到需要分工的程度但对于大项目或者团队协作来说这个功能非常实用。MCPModel Context Protocol连接外部工具MCP 是一个比较新的概念——它让 Claude Code 能连接到外部工具比如数据库、文件系统、第三方服务等扩展 AI 的能力范围。举个简单例子通过 MCP 连接你的 MySQL 数据库Claude Code 就可以直接查询数据库里的数据、分析表结构——不需要你手动导出数据再贴给它看。MCP 的配置稍微复杂一点需要写一些 JSON 配置文件。但对于需要频繁跟数据库打交道的人来说这是值得投入时间去配的——一劳永逸。一些常用的指令除了上面这些Claude Code 还有很多内置的快捷指令/memory— 查看和管理记忆/plugin— 插件管理/agents— 子代理管理/init— 初始化项目的 CLAUDE.md/compact— 压缩当前对话上下文对话太长的时候用/help— 查看所有可用指令这些指令不需要背用到的时候输入/然后按 Tab 键Claude Code 会列出所有可用的指令让你选。七、我实际用到的 Claude Code SkillsClaude Code 有一个 Skill技能系统——你可以把它理解成给 AI 安装专业技能包。安装了某个 Skill 之后AI 在对应场景下会变得更专业。我这个项目的过程里实际用了下面这些 Skill每个都发挥了很明显的作用。brainstorming — 头脑风暴最常用的 Skill 之一。当我不确定接下来该做什么的时候就让 AI 用这个 Skill 来帮忙想方案。比如 30 天 300 篇文章的发布计划——帮我调研一下应该写什么内容比较好——AI 会自动去搜索当前的热门话题、分析关键词、然后给出一份详细的选题计划。不是拍脑袋瞎编的是基于实际搜索数据来的。SEO 关键词策略、文章主题分类、甚至用户会怎么搜索——这些我完全不懂的东西都是这个 Skill 帮我搞定的。writing-plans executing-plans — 写计划 执行计划这两个是一对搭档。writing-plans 负责把一个模糊的想法变成清晰的执行计划——分几步、每步做什么、需要改哪些文件。executing-plans 负责照着计划一步步执行。比如做批量开票进度窗口这个功能的时候AI 先用 writing-plans 写了一个方案改哪些文件、UI 怎么设计、状态机怎么流转。然后我用 executing-plans 让它一步步实现。有计划和没计划的区别——没计划的时候 AI 容易跑偏做着做着忘了最初要干什么。有了计划每步都有明确的验收标准。systematic-debugging — 系统化调试这个 Skill 是我最喜欢的。它让 AI 不再凭感觉猜 bug而是按照一套系统化的方法来排查问题。有次管理后台改密码报 500 错误——页面完全白屏没有任何提示。AI 用这个 Skill 先是让我打开 PHP 的错误显示看到具体的报错信息Class Auth not found然后追查这个类在哪些文件里被引用、哪个文件漏了 include最后定位到 settings.php 缺少一行 require_once。整个过程大概五分钟。如果是我自己排查——我连Class not found是什么意思都不知道更别说定位到具体文件了。verification-before-completion — 完成前验证每次 AI 说问题已修复的时候这个 Skill 会让它先去验证一下——先确认修改有没有生效再告诉我完成了。比如改完 Nginx 配置之后它不只是说配置已修改而是会实际访问一下页面看看返回码是不是 200。这个习惯避免了我以为修好了但其实没有的情况。webapp-testing — 网页测试用来在本地测试网站功能的。AI 可以用这个 Skill 自动打开浏览器、访问页面、检查元素是否正确显示。我在本地调试管理后台的激活码生成功能时用过——AI 自动打开页面填充表单点提交按钮然后检查返回结果。比我自己手动测试快多了。strategic-compact — 对话压缩Claude Code 的对话是有长度限制的——聊太久了之后前面的内容会被遗忘。这个 Skill 会在对话太长之前主动提醒——现在是个好时机要不要把前面的内容总结一下然后继续这个功能对长项目特别有用。我开发这个项目的过程中有时候一个功能会跟 AI 来回几十轮对话。如果没有 compact 机制AI 可能已经忘了前面讨论过的关键信息。subagent-driven-development — 子代理开发当有多个独立任务可以同时进行的时候这个 Skill 可以创建子代理来并行处理。比如有一天我需要同时做三件事——修批量开票的 bug、写新的 SEO 文章、更新管理后台的样式。AI 用这个 Skill 创建了三个子代理每个负责一个任务同时进行。效率比串行高了很多。这些 Skill 不需要我去学——每次用到的时候AI 会自动加载。我只需要描述我要做什么AI 自己会选择最合适的 Skill 来辅助。这种体验的好处是——你甚至不需要知道这些 Skill 的存在它们就在后台默默帮你把事做好了。最后给大家看看我的成果没有写一行代码都是让ai写的duoduoke.net