加载中

撰写一条您的应用可以直接使用的提示

一行简单的提示可能会让Claude不得不猜测,而猜错了就会让您的应用得到一个无法使用的回复。为一条牙医提醒提示添加背景信息、您想要的输出格式以及约束条件,然后亲自动手让一条新的提示变得清晰明确。

10 分钟Claude Platform

当您的应用将Claude的回复直接发送给用户时,没有人会先检查它。Claude写的内容就是用户得到的内容。因此,Claude需要知道回复会发送到哪里、应该是什么样子,以及应该省略什么。

要让提示清晰明确,需要给Claude这三样东西:背景信息、您想要的输出格式,以及约束条件。每一项都回答了一个新同事在开始任务前会问您的问题。

一条让Claude不得不猜测的提示

假设一个牙医预约应用会在患者就诊前一天给每位患者发送一条提醒短信。该应用向Claude发送一行任务说明和四行数据,然后将返回的内容原样发给患者。下面是针对一位患者的提示:

为这次预约写一条提醒。

患者:Dana Okafor
日期:3月12日,星期四
时间:下午2:30
治疗项目:根管治疗,第二次复诊

Claude返回了以下回复。以原始文本形式呈现,这样您就能看到应用将要发送的每一个字符:

**预约提醒**

您好,Dana,

这是对您即将到来的牙科预约的友好提醒:

**日期:** 3月12日,星期四
**时间:** 下午2:30
**治疗项目:** 根管治疗(第二次复诊)

**就诊前须知:**
- 请提前大约10分钟到达。
- 请提前吃一顿清淡的餐食,因为治疗后您的口腔可能会有几个小时的麻木感。
- 除非牙医另有告知,否则请继续按处方服用任何药物。
- 如果自上次就诊以来您出现了疼痛、肿胀,或临时填充物出现问题,请告知我们。

如果您需要改期或有任何疑问,请至少提前24小时拨打[电话号码]联系我们。

我们期待您的光临!

[诊所名称]

应用会将所有这些内容都发送给Dana,而其中很多内容并不适合出现在她的手机上:

  • 星号和连字符是用于加粗文本和列表的Markdown语法。手机会将它们显示为普通字符。
  • 关于饮食和提前到达的提示是有关就诊的建议,而建议应该来自牙医本人。
  • "根管治疗(第二次复诊)"可能会显示在Dana锁屏的手机上,其他人也能看到它。
  • "[电话号码]"和"[诊所名称]"都是空白项,在短信发出前没有人来填写它们。

这些问题都可以追溯到提示中遗漏的内容。它从未说明提醒是一条短信、没有人会先检查它,或者其他人能在锁屏手机上看到它。它也没有说明提醒应该涵盖哪些内容,也没有提供诊所名称或电话号码。因此,Claude写了一条通用的提醒,并在没有事实依据的地方留下了空白。

您得到的回复主要取决于您输入的内容。在重新调整提示的措辞之前,先把Claude缺少的事实信息提供给它。

想想一位同事会问什么

要找出缺少了什么,可以想象把这条提示交给一位从未见过这个应用的同事。他们必须仅凭这条提示来写这条提醒。如果他们会感到困惑,Claude也会感到困惑。

在写下第一个字之前,这位同事会向您提出一些问题。每个问题都指向您可以添加到提示中的三个部分之一:

部分它告诉Claude的内容同事会问的问题
背景信息回复的用途、发送到哪里,以及谁会阅读它"这是短信还是邮件?是谁发的?发出之前有人检查吗?"
输出格式回复的样子,比如长度以及是否可以使用Markdown"它应该多长?能不能有加粗文本或列表?"
约束条件回复必须坚持或省略的内容"应不应该说出治疗项目的名称?应不应该给出建议?"

在提示中逐一回答这位同事的问题,把每个答案放进它所属的那个部分。

添加背景信息、格式和约束条件

把背景信息陈述为事实,把输出格式和约束条件写成指令。对于那些Claude猜不出目的的指令,加上理由。

下面是预约应用完成后的提示,它用三段文字分别回答了这位同事的问题:一段是背景信息,一段是输出格式,一段是约束条件。

尝试在有和没有每个部分的情况下使用这条提示。每一条回复都是Claude针对该确切提示给出的真实记录。

加载中

在一条新提示上试一试

现在请您自己动手让一条提示变得清晰明确。假设一个天气应用会原样发送Claude的回复,作为人们在早上7点于锁屏上阅读的推送通知。该应用的提示只给Claude提供了一行任务说明和一些数据:

为这份天气预报写一条通知。

城市:波特兰
早晨:多云,48°F
下午:下午3点开始有大雨
风力:阵风可达35英里/小时

想一想,一位从未见过这个应用的同事会问您什么。然后选出能回答这些问题的背景信息、输出格式和约束条件。每次选择之后,阅读说明了解它为什么是对的或错的。

快速检测

天气应用的提示只写着"为这份天气预报写一条通知。"您会添加哪一行来为Claude提供背景信息?

快速检测

这条通知必须能够显示在锁屏上。您会添加哪一行作为输出格式?

快速检测

同一条提示每天早上都会运行一次,每天的天气预报都不一样。您会添加哪一行作为约束条件?

接下来该做什么

每当一条回复需要先修改才能被您的应用使用时,就去找找您的提示中还有哪个问题没有被回答。要在您自己的代码中修复提示,请按以下步骤逐一进行:

  1. 设想一位从未见过您应用的同事,想一想他们在开始任务之前会问什么。
  2. 在提示中,把每个问题作为背景信息、输出格式或约束条件来回答。把背景信息陈述为事实,并为那些Claude猜不出目的的指令加上理由。
  3. 用来自您应用的几组输入发送这条新提示。
  4. 以原始文本的形式阅读每一条回复,这样您就能看到应用将要发送的每一个字符。留意您打算修复的问题,比如应用无法显示的Markdown、没有人填写的空白,或者用户不应该看到的细节。

如果问题依然存在,就找出提示中仍然没有回答的问题,并把它也回答上。

阅读少数几条回复无法告诉您这条提示在应用的所有输入中表现如何。为此,您需要一次评估(eval),一种基于您自己的用例、能给出一个数字供您决策的测试。接下来,请学习《评估入门》课程。