目录


能力内

略微超出

远超能力

明确需求

任务边界判断

AI独立完成

人机协作

仅作参考

稍作检查

引导验证调整

Demo/问答

交付成果

一、前言:我的AI辅助开发之路

这两年,AI辅助开发已经成为程序员的日常工作方式。从最开始的"尝鲜",到如今"离不开",我经历了漫长的探索过程。说实话,刚开始用AI写代码的时候,我也踩过不少坑——prompt写得含糊不清,AI就给我胡编乱造;任务描述太复杂,AI直接失去焦点;甚至有时候连我自己都不知道想要什么结果,却指望AI能读懂我的心思。

后来我逐渐明白了一个道理:AI不是万能的,但用对了方法,它能成为你最得力的编程助手。

在这个过程中,我总结出了一套自己的方法论:从结构化prompt(COSTAR框架),到任务边界的清晰划分,再到Claude Code的各种实用技巧。这些都不是什么高深的理论,而是我在日常开发中反复验证、调整后的实践总结。今天把这些经验分享出来,希望能让你少走一些弯路。


二、COSTAR框架:让prompt更结构化

说到prompt工程,就不得不提COSTAR框架。这个框架源自2023年新加坡的一场prompt大赛,现在已经被广泛引用。

COSTAR是六个单词的缩写:

  • Context(背景)
  • Objective(目标)
  • Style(风格)
  • Tone(语气)
  • Audience(受众)
  • Response Format(响应格式)

听上去很完善对吧?但我在实际使用中发现,完整的COSTAR框架过于繁琐。每次写个简单的代码任务都要填满这六个维度,反而降低了效率。

于是我做了一些精简:去掉风格和受众。这两个维度在大多数编程场景下并不是必需的,而且通常可以直接定义在系统提示词中,作为全局设定。

我现在使用的简化版框架更注重核心要素:

  • 背景:我要解决什么问题?
  • 目标:我期望得到什么结果?
  • 响应格式:输出应该是什么形式?

这种精简后的框架既保留了结构化的优势,又不会因为过度设计而影响使用体验。


三、伪XML格式:长上下文下的结构化技巧

在向AI传递信息时,格式的一致性至关重要。我见过太多人在同一个prompt里混用各种格式——一会儿用引号,一会儿用尖括号,一会儿又来个JSON。结果就是AI也跟着混乱,输出结果往往不尽如人意。

我的建议很简单:根据上下文长度选择一种格式,贯穿始终。

  • 短上下文:用引号或空格分隔即可,简单直接
  • 长上下文:统一使用XML标签,结构清晰
<task>
  <description>重构用户登录逻辑</description>
  <requirements>
    <item>支持邮箱和手机号登录</item>
    <item>增加验证码校验</item>
  </requirements>
</task>

坚持使用一种格式,能让AI更容易理解你的意图,减少"理解偏差"带来的返工。


四、AI任务边界:不是所有事情都适合交给AI

这是我认为最重要的一点:你必须清楚知道AI的能力边界在哪里。不是所有任务都适合交给AI,强行让AI做超出能力范围的事,只会浪费你的时间去验证结果是否正确。

我习惯把任务分为三个等级:

能力内的任务:提升效能的最佳场景

这类任务AI可以独立完成,你只需要稍作检查。例如:

  • 写一段格式化日期的代码
  • 解释一个函数的作用
  • 生成单元测试框架

这种场景下,AI就像是你的"快捷键",能显著提升开发效率。

略微超出能力的任务:性价比最高的区间

这类任务AI不能完全独立完成,但能给你一个很好的起点。你需要花更多时间去引导、验证和调整。例如:

  • 设计一个完整的数据库schema
  • 重构一个复杂模块
  • 分析代码性能瓶颈

这种任务的性价比其实很高——虽然需要你多投入一些时间,但AI能帮你完成80%的基础工作,剩下的20%才是真正需要你发挥专业能力的地方。

远超能力的任务:只适合demo和问答

这类任务AI的表现会非常不稳定,你甚至无法判断它的回答是否正确。例如:

  • 设计一个从未有人做过的系统架构
  • 处理涉及复杂业务逻辑的遗留代码
  • 需要深度理解特定领域知识的问题

对于这类任务,我的建议是:**只用来写demo或者作为问答参考,绝对不要直接用于生产环境。**你无法信任一个你无法验证的结果。

任务分类

能力内的任务效率提升

略微超出能力的任务性价比最高

远超能力的任务仅作Demo

写格式化代码解释函数作用生成测试框架

设计数据库Schema重构复杂模块分析性能瓶颈

全新系统架构遗留代码迁移深度领域问题


五、Claude Code实战技巧

COSTAR框架和任务边界是"道",而具体的使用技巧是"术"。下面分享一些我在Claude Code中常用的实战技巧。

精确信息:善用get_file功能

Claude Code有一个很实用的get功能,可以精确选择需要发送给AI的文件。不要一股脑把整个项目都丢过去——信息量过大会让AI失去焦点。

我的一般做法是:

  1. 先用一句话描述任务
  2. 让AI分析需要哪些文件
  3. @精确选择这些文件

这样既能保证AI有足够的上下文,又不会因为信息过载而偏离主题。

焦点控制:上下文过多是双刃剑

很多人觉得"给AI的信息越多越好",这是一个误区。上下文确实重要,但焦点更重要

就像和人聊天一样,如果对方东拉西扯说了一大堆,你还能抓住重点吗?AI也是一样。当上下文过长时,它会逐渐失去焦点,开始"记不住"之前的内容。

所以,只给最有价值的信息,其他的等AI需要时再补充。

任务粒度:太细总比太粗好

上下文是有限的,如果任务粒度太粗,AI可能执行到一半就开始"幻觉"或者忘记之前的约定。

我见过一个极端的例子:有人一次性让AI"帮我重构整个项目"。结果可想而知,AI写到一半就开始自相矛盾,最后还不如人工重写。

把任务拆得足够细,让AI一步步完成。虽然看起来麻烦,但效率反而更高,因为你不需要花大量时间去返工。

分治思想:外部文件当作"硬盘"

如果你实在没法压缩任务规模,那就用"分治法"来解决。

把大任务拆分成多个阶段,每个阶段的结果保存到外部文件中。这些文件就像是AI的"外存硬盘",可以在需要时重新加载。

例如:

  1. 第一阶段:分析需求,把分析结果写入requirements.md
  2. 第二阶段:设计架构,把设计方案写入architecture.md
  3. 第三阶段:读取前两个文件,生成代码

每个阶段完成后,可以用一个"总结任务"把各阶段结果汇总。这样既能保证上下文的连贯性,又不会因为单次任务过长而出问题。

Claude的Flow功能其实就是这个思想的官方实现。


六、进阶技巧锦囊

除了上面这些核心技巧,还有一些"锦上添花"的功能值得了解。

/memoryCLAUDE.md:项目规范管理

如果你的项目有特定的编码规范或约定,可以通过/memory命令编辑CLAUDE.md文件,把这些规范写进去。

这样AI在处理项目相关任务时,会自动参考这些规范,不需要你每次都重复强调。这对于团队协作尤其有用。

Browser MCP:让AI控制浏览器

Claude Code支持MCP(Model Context Protocol)插件,其中有一个很实用的browser-use-mcp-server

有了它,AI可以直接控制浏览器进行网页操作——比如自动填写表单、抓取网页数据、验证页面功能等。这在需要和网页交互的场景下非常方便。

Claude Code

MCP Protocol

Browser MCP Server

浏览器自动化

填写表单

抓取数据

验证功能


七、总结

AI辅助开发不是"一键生成代码"那么简单,它更像是一种"协作模式"。你需要:

  1. 用结构化的方式表达需求(COSTAR框架)
  2. 清楚知道AI能做什么、不能做什么(任务边界)
  3. 掌握具体工具的使用技巧(Claude Code实战)

这三者缺一不可。

希望这些实战经验能对你有所帮助。记住,AI是你的助手,不是你的替代品。用对了方法,它会让你的开发效率成倍提升;用错了,它只是一个会"胡言乱语"的聊天机器人。


部分资料参考来源: https://mp.weixin.qq.com/s/6j-MqSrJz5YlKAe2LZW6pg

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐