写咒语Prompt的艺术

0 阅读3分钟

玩转通用智能体之Claude Code

第六章 写Prompt的艺术

跟Claude Code说话,是一门艺术。

它不是人,所以你不能像跟朋友聊天那样随意。但它也不是机器,所以你不需要像写代码那样精确。它在两者之间,你需要找到那个平衡点。

最基本的原则是:说清楚你要什么。

不要说"优化这个函数",太模糊。是说优化性能?优化可读性?还是优化错误处理?每种优化方向都不一样。

要说清楚:

  • 目标是什么
  • 有什么约束条件
  • 什么是必须做的,什么是可选的
  • 什么不能做(比如不能改API接口)

这就像是你交代任务给下属,说得越清楚,结果越符合预期。

给Claude Code的prompt,最好有结构。

我的经验是分成几个部分:

  1. 背景:当前的情况是什么
  2. 目标:要达成什么
  3. 约束:有什么限制
  4. 步骤:如果需要,可以指定大致步骤

比如:

背景:我们有一个处理用户登录的函数,现在它没有任何错误处理。
目标:给这个函数加上完善的错误处理。
约束:
- 不能改变函数的签名
- 不要引入新的依赖
- 所有错误都要有日志记录
步骤:
1. 先分析当前代码可能的失败点
2. 给每个失败点加上try-catch
3. 确保所有错误都被妥善处理

这样结构化的prompt,Claude Code理解起来更容易,做出来的结果也更好。

还有一个技巧:给例子。

如果你希望Claude Code按照某种特定的风格或格式输出,最好的方法是给它一个例子。比如:

请按照以下格式写文档:

函数名

简要描述

参数

  • param1: 描述
  • param2: 描述

返回值

描述

示例

代码示例

有了例子,Claude Code就知道你想要什么格式了,不会瞎猜。

Prompt要迭代优化。

第一次说的可能不够清楚,看Claude Code的输出,如果不对,就补充信息,修正方向。这就像是对话,不是一次性的指令,而是来回沟通的过程。

我通常的做法是:

  1. 先给一个大体的prompt
  2. 看输出,找出不满意的地方
  3. 补充说明,纠正方向
  4. 重复直到满意

有时候这个过程要来回好几次,但最终结果通常都不错。

最后,记住一件事:Claude Code有context window的限制。

你给的prompt越长,它记住的东西就越少。所以要言简意赅,不要说废话。重要的信息放在前面,因为后面的内容它可能会忘记。

这就像写信给记性不好的人,要把重要的事情放在开头,而且不能写太长,不然他读到后面就忘了前面说什么了。

写好prompt,是使用Claude Code最核心的技能。这需要练习,需要经验,需要对Claude Code的脾气有了解。但只要掌握了这门艺术,你就能让这只智能怪兽发挥出最大的威力。