首页 / 文章 / 实用指南:大语言模型的提示工程——零样本、少样本与推理方法

实用指南:大语言模型的提示工程——零样本、少样本与推理方法

《实用笔记:LLM提示工程——零样本、少样本与推理》的操作指南:为采用该模式的团队提供合同模板、检查清单以及可直接插入的代码片段。

2948 词

可将此内容视为《LLM提示工程:零样本、少样本、推理、分解与ReAct》中理念面向操作人员的重构版本:清晰的阶段划分、有序的代码模块,以及便于交接时参考的恢复说明。将概览视为可度量的界面使用效果最佳,在扩大范围之前,先记录一份理想的操作日志、一个失败案例以及对应的回滚说明。相较于庞大的脚本,应优先选择小型且可测试的单元。当某一步骤失败时,故障应能指向单一责任模块,而非复杂的流程链。

零样本提示

对于零样本提示,应在修改代码之前明确输入内容、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与经过验证的输出之间的契约。为生成结果命名,定义成功判定标准,并拒绝默许的半完成状态。 当下一步操作为编写代码或调用工具时,优先采用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。

Summarize the following customer complaint in one sentence.
<complaint>
The package arrived three days late and the box was damaged.
</complaint>

明确的任务规范

为确保任务描述清晰,在修改代码之前需明确输入内容、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新执行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。当下一步操作为编写代码或调用工具时,宜采用带有架构验证的结构化输出形式,而非自由形式的文字描述。

Task:
Summarize the customer complaint.

Source:
<complaint>
The package arrived three days late and the box was damaged.
</complaint>

Constraints:
- Use only the information in the complaint.
- Do not infer the cause of the damage.
- Use one sentence.

Output:
Return only the summary.

明确的目标

对于明确的目标,在修改代码之前需定义输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个流程即可进行审计。 当后续步骤为代码或工具调用时,宜使用具有结构化格式且经过模式验证的输出,而非自由形式的文本。 对于明确的目标,在修改代码之前需定义输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相比庞大的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向某个特定职责,而非整个复杂的流程。

约束条件是任务的一部分

在处理“约束条件是任务的一部分”这类问题时,首先需列出相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,明确成功判定标准,杜绝默许部分完成的情况。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。

何时零样本提示有效

在研究零样本提示法何时有效时,首先需明确相关规范:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续代码修改的透明度。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。

零样本失败模式

在处理零样本故障模式时,首先需明确规范:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。 在处理零样本故障模式时,首先需明确规范:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 优先选择小型、可测试的单元,而非庞大的脚本。当某个步骤出现故障时,故障应指向单一责任模块,而非复杂的处理流程。

少样本提示

将少样本提示视为可度量的指标时,其效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 为每轮对话和每次会话设定token预算。智能工具往往会过度扩展上下文;设置上限可避免演示过程变成意外的费用账单。

Task:
Classify the customer message as BILLING, TECHNICAL, or ACCOUNT.

Example 1:
"My invoice contains an unexpected charge."
→ BILLING

Example 2:
"The application crashes when I upload a file."
→ TECHNICAL

Example 3:
"I cannot reset my password."
→ ACCOUNT

Now classify:
"I was charged twice for my subscription."

示例用于传授行为模式,而不仅仅是格式规范

示例用于传授行为规范,而非仅关注格式——将格式视为可测量的指标最为有效。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外账单。 为每轮及每次会话设定令牌预算。智能工具会大量消耗上下文资源,设置上限能防止演示过程变成意外收费的源头。

示例选择

将示例选择视为可度量的对象时,其效果最佳。在扩大范围之前,先记录一份理想的处理结果、一个故障案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能标志应集中存放于一处,这样操作人员无需查看整个系统结构即可进行审计。 为每轮对话和每次会话设定预算令牌限制。智能工具往往会过度扩展上下文,设置上限可避免演示过程变成意外的费用账单。 将示例选择视为可度量的对象时,其效果最佳。在扩大范围之前,先记录一份理想的处理结果、一个故障案例以及回滚说明。 相较于庞大的脚本,应优先使用小型且可测试的单元。当某个步骤出现故障时,故障原因应能明确指向某个特定职责,而非复杂的流程链。

Example 1: straightforward billing issue
Example 2: straightforward technical issue
Example 3: ambiguous issue
Example 4: boundary case
Example 5: short, poorly written request

示例数量

在修改代码之前,需先确定示例数量、输入内容、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功判定标准,杜绝默许的半完成状态。 当下一步操作为代码编写或工具调用时,优先采用具有架构验证的结构化输出,而非自由形式的文字描述。

示例多样性

例如在处理多样性问题时,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解这些成本可以避免在从演示环境过渡到共享环境时出现意外费用。当下一步操作是编写代码或调用工具时,应优先选择具有架构验证的结构化输出,而非自由形式的文本。

"can't login"
"I've been locked out since yesterday"
"Password reset isn't sending me anything"
"login broken after changing phone"

正反示例

在修改代码之前,需为正面和负面示例明确输入内容、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作员无需查看整个流程即可进行审计。 当后续步骤为代码或工具调用时,宜使用具有架构验证的结构化输出,而非自由形式的文本。 在修改代码之前,需为正面和负面示例明确输入内容、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相比冗长的脚本,应优先使用小型且可测试的单元。当某个步骤失败时,故障原因应能明确指向单一责任模块,而非复杂的流程链。

Input:
"The customer says the package arrived late."
Good output:
"The customer reports that the package arrived late."
Bad output:
"The courier lost the package."
Reason:
The customer did not state that the courier lost it.

格式化示例

在处理格式化示例时,首先需明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功检测标准,并杜绝无声的半完成状态。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。

Issue: ...
Evidence: ...
Action: ...
Input:
"The login token expired after 30 days."
Output:
Issue: Expired authentication token
Evidence: Token expiration is reported after 30 days
Action: Regenerate the authentication token

示例之间的一致性

在处理“示例之间的一致性”问题时,首先需列出相关规范:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。

Example 1:
"Can't log in" → ACCOUNT
Example 2:
"Can't log in" → TECHNICAL

上下文学习

在开展上下文学习时,首先需明确相关规范:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。 在开展上下文学习时,首先需明确相关规范:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 优先选择小型、可测试的单元,而非庞大的脚本。当某个步骤失败时,故障应指向单一责任模块,而非复杂的流程链。

Example:
"Password reset email never arrived." → ACCOUNT
User:
"I can't access my account."

零样本学习与少样本学习的选择

将零样本与少样本方法的选择视为一个可度量的维度来处理最为有效。在扩大范围之前,先记录一份理想的输出结果、一个失败案例以及相应的回滚说明。将此阶段视为输入与经过验证的输出之间的契约:为输出成果命名,明确成功标准,绝不允许出现无声无息的半完成状态。需为每轮对话及每次会话设定token预算,因为智能工具往往会过度扩展上下文,设置上限可避免演示过程变成意外的费用账单。

将复杂任务拆解为子任务

将复杂任务拆解为子任务时,若能将其视为可量化的对象效果最佳。在扩大范围之前,先记录一份最优结果、一个失败案例以及回滚说明。在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,就能避免在从演示环境过渡到共享环境时出现意外账单。为每轮对话和每次会话设定令牌预算——智能工具往往会大量消耗上下文,设置上限可防止演示过程变成意外收费的源头。

Task:
Analyze this customer support case.

Step 1:
Extract the relevant facts.

Step 2:
Identify the customer's actual problem.

Step 3:
List plausible causes supported by the evidence.

Step 4:
Select the safest supported resolution.

Step 5:
Draft the customer-facing response.

回答前的规划

将回答前的规划视为可量化的指标,效果最佳。在扩大范围之前,先记录一份理想的响应范本、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 为每轮对话和每次会话设定token预算。智能工具往往会过度扩展上下文,设置上限可避免演示过程变成意外的费用账单。 将回答前的规划视为可量化的指标,效果最佳。在扩大范围之前,先记录一份理想的响应范本、一个失败案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤出错时,故障应能指向单一责任点,而非复杂的流程链。

Goal:
Resolve the customer's login problem using only supported evidence.
Plan:
1. Read the latest customer message.
2. Check the relevant conversation history.
3. Identify authentication-related evidence.
4. Compare the evidence with the known troubleshooting guidance.
5. Produce a response that does not claim unsupported facts.

评审与修改

在进行代码修改以进行评审和修订之前,需明确输入内容、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。 当下一步操作是编写代码或调用工具时,优先采用具有架构验证的结构化输出,而非自由形式的文字描述。

First:
Draft the response.

Then:
Check the draft for:
- unsupported claims,
- missing evidence,
- incorrect troubleshooting steps,
- promises the support team cannot make,
- failure to answer the customer's actual question.

Finally:
Revise the response to correct any problems.

以推理为导向的提示方式

对于以推理为导向的提示,应在修改代码之前明确输入内容、各步骤的执行负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。当下一步操作是编写代码或调用工具时,应优先选择具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。

Identify the relevant facts.
Determine which facts support each possible conclusion.
Eliminate conclusions that require unsupported assumptions.
Select the conclusion supported by the evidence.
classification: password_reset_issue
evidence_supported: true
recommended_action: resend_reset_link
confidence: high

自我一致性:切勿盲目信任单一路径

为确保一致性:切勿盲目信任某条特定路径,修改代码前需明确输入参数、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储及功能开关应集中存放于一个位置,以便操作员无需查看整个流程即可进行审计。 当下一步操作为代码编写或工具调用时,优先采用具有结构化格式且经过模式验证的输出,而非自由形式的文本。 为确保一致性:切勿盲目信任某条特定路径,修改代码前需明确输入参数、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 相比庞大的脚本,应优先使用小型且可测试的单元。当某一步骤失败时,故障原因应能指向单一的责任主体。

比复杂的管道系统更高效。

何时停止提示并开始计算

在处理“何时停止提示并开始计算”这一问题时,首先需明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功判定标准,并杜绝无声的半完成状态。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是造成资源浪费的常见原因。

操作清单

在处理“操作清单”时,同样需首先明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。

同时记录正常流程和恢复流程。重试、人工审核以及死信处理都是产品本身的一部分,而非后续需要补充的功能。

缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。

尽量降低渲染成本,只有在经过测量后才会将耗时的计算操作放入缓存中。过早使用缓存可能会掩盖过时属性带来的错误。

只要预算允许,就在持续集成过程中使用测试用例而非真实的付费 API 来执行关键路径的测试。

在记录功能结果的同时,也要记录处理时间以及令牌或查询的成本。提前了解成本情况,可以避免在从演示环境过渡到共享环境时出现意外账单。

在推广该技术栈之前,应先冻结版本,为关键流程记录标准输出文本,并明确回滚步骤。共享环境需要设置速率限制、租户验证机制,以及负责密钥轮换的明确责任人。与其展示花哨的一次性演示,不如注重扎实的可靠性。

关于96fc8ed96065的批注:请将提供商密钥移出代码仓库,设定单会话令牌上限,并将输出文本存储在评估用示例文件旁,以便后续模型更换时仍能保持对比性。