实用指南:从提示工程到AI系统设计:RAG、内存与工具
《实用笔记:从提示工程到AI系统设计——RAG、内存与工具:面向采用该模式的团队的合同、校验机制及即插即用代码模块》的操作指南。
本指南将逐步构建从原材料到可运行系统的完整路径,涵盖:提示工程、AI系统设计——包括RAG、内存管理、工具使用、微调与评估。重点在于可操作的步骤、明确的检查点,以及可直接放入代码库的代码,无需猜测其用途。 在概览阶段,应在修改代码之前明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏状态。 配置信息应与应用程序代码分开存放。环境文件、密钥存储及功能开关应集中管理,以便操作人员无需查看整个系统结构即可进行审计。
提示工程与上下文工程
在处理“提示工程”与“上下文工程”阶段时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。
Answer the customer's question.
Answer the customer's question directly.
Use the supplied policy information as your source of truth.
If the policy does not establish an answer, say that the information is unavailable.
Keep the response concise unless the customer asks for more detail.
Prompt engineering
"What should the model do?"
Context engineering
"What should the model see while doing it?"
更多上下文并不一定更好
在处理“更多上下文并非必需”这一场景时,首先需明确合同条款:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 相比冗长的脚本,应优先选择小型且可测试的单元。当某个步骤失败时,故障应指向单一责任模块,而非复杂的流程链。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。
RAG与内存:机制相似,用途不同
在处理RAG与内存相似度比对阶段时,首先需明确相关契约:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功判定标准,杜绝无声的半完成状态。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。 在处理RAG与内存相似度比对阶段时,首先需明确相关契约:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
Prompt
+ retrieved refund policy
+ customer's stored preferences
+ current conversation
+ account lookup tool result
+ structured output schema
↓
Model
提示工程与微调
将“提示工程”与“微调”阶段视为可度量的指标,效果最佳。在扩大范围之前,需记录一个成功的案例、一个失败案例以及回滚说明。同时记录成功路径与恢复路径。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的内容。需为每轮对话和每次会话设定token预算。智能工具会大量消耗上下文,设置上限可避免演示过程变成意外的费用账单。
Model + instructions/examples/context
=> output
Base model + training examples
=> specialized model
billing
technical_problem
account_access
cancellation
product_question
微调并非仅仅是“更好的提示工程”
将微调视为可测量的指标来处理,才能找到最佳方案。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。相比庞大的脚本,应优先选择小型且可测试的单元。当某一步骤失败时,故障应能指向具体的责任主体,而非复杂的流程链。需为每轮对话和每次会话设定token预算——智能工具往往会过度消耗上下文,设置上限可避免演示过程变成意外的费用账单。
模型选择与针对模型的提示工程
将“模型选择”与“模型特定配置”阶段视为可度量的工作面,效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现悄无声息的半完成状态。 需为每轮对话及每次会话设定token预算。智能工具往往会过度扩展上下文,设置上限可避免演示过程变成意外的费用账单。 将“模型选择”与“模型特定配置”阶段视为可度量的工作面,效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 应将配置信息置于应用程序代码之外。环境文件、密钥存储及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
Quality
Cost
Latency
Context capacity
Tool capabilities
Structured-output support
Reasoning capability
Safety behavior
实用的决策框架
在“实用决策框架”阶段,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新执行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品的一部分,而非后续需要补充的内容。 当下一步操作是编写代码或调用工具时,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。
提示工程演变为系统设计
在“提示工程系统化”阶段,应在修改代码之前明确输入内容、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型、可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。若后续步骤为代码或工具调用,相比自由形式的文字描述,结构化且经过模式验证的输出更为合适。
Write a good instruction.
Try it.
Change the wording.
Try again.
模块化提示
在模块化提示阶段,修改代码之前需明确输入内容、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功判定条件,并拒绝默许的半完成状态。 当下一步操作为代码编写或工具调用时,优先采用具有架构验证的结构化输出,而非自由形式的文字描述。 在模块化提示阶段,修改代码之前需明确输入内容、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个操作员可审计的位置,无需查看整个系统结构。
程序化与自动化提示生成
在开展程序化与自动化提示生成阶段时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续代码修改的规范性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。
优化提示的LLM
在处理“优化提示词”的阶段时,首先需明确相关规范:所需的输入参数、成功标志,以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改始终符合预期。 建议采用小型、可测试的单元而非庞大的脚本。当某个步骤出现故障时,故障应指向单一责任模块,而非复杂的流程链。 对稳定的系统指令和工具结构进行缓存。重复发送相同的开头信息是导致资源浪费的常见原因。
以评估为导向的流程
在处理“评估驱动型管道”阶段时,首先需明确相关契约:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改始终符合约定。 将此阶段视为输入与已验证输出之间的契约。为相关产物命名,定义成功检测标准,并杜绝无声的半完成状态。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。 在处理“评估驱动型管道”阶段时,首先需明确相关契约:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改始终符合约定。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
accuracy ↑
groundedness ↑
customer satisfaction ↑
unsupported claims ↓
unsafe actions ↓
latency ↓
cost ↓
我们仍不了解的内容
将“我们仍需了解的内容”视为可度量的范畴最为有效。在扩大范围之前,先记录一份最佳处理方案、一个失败案例以及回滚说明。同时记录正常流程与恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的内容。需为每轮对话和每次会话设定token预算。智能工具会大量消耗上下文,设置上限可避免演示过程变成意外的费用账单。
长上下文能否替代检索功能?
将长上下文视为可度量的载体时,它最适用于替代阶段性工作。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤失败时,故障应指向单一责任主体,而非复杂的流程链。 为每轮对话和每次会话设定token预算。智能工具会大量消耗上下文,设置上限可避免演示过程变成意外的费用账单。
提示注入问题能否彻底解决?
将“Can提示注入检测”阶段视为可测量的对象时,其效果最佳。在扩大范围之前,需记录一份理想的处理过程、一个失败案例以及回滚说明。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 需为每轮及每次会话设定令牌预算。智能工具往往会过度扩展上下文,设置上限可避免演示过程变成意外的费用账单。 将“Can提示注入检测”阶段视为可测量的对象时,其效果最佳。在扩大范围之前,需记录一份理想的处理过程、一个失败案例以及回滚说明。 应将配置信息置于应用程序代码之外。环境文件、密钥存储及功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
Can模型能否可靠地评判其他模型?
为使 Can 模型能够可靠地判断阶段,在修改代码之前需明确输入参数、该步骤的负责人以及退出标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品的一部分,而非后续需要补充的功能。 当下一步操作是编写代码或调用工具时,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。
优化后的提示词可以在不同模型之间传递吗?
在针对 Will 优化的提示词转换阶段,修改代码之前需明确输入内容、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,应优先选择小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。若后续步骤为代码或工具调用,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。
自动化优化能否实现泛化?
在 Can 自动优化泛化阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,杜绝无声的半完成状态。 当下一步操作是代码编写或工具调用时,优先采用具有架构验证的结构化输出,而非自由形式的文本。 在 Can 自动优化泛化阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将配置信息置于应用程序代码之外。环境文件、密钥存储及功能开关应集中存放于操作人员可审计的位置,无需阅读应用程序代码即可查看。
洞图。整体视角
在处理“整体视角”阶段时,首先写下相关契约:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程和恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的组成部分,而非后续的优化工作。 缓存稳定的系统指令和工具架构。重复发送相同的报文头是导致资源浪费的常见原因。
You are a customer-support assistant.
Answer the customer's question using the supplied information.
操作检查清单
将“操作检查清单”阶段视为可度量的工作面,效果会更好。在扩大范围之前,先记录一份最佳操作范例、一个故障案例以及回滚说明。
在功能结果旁记录处理时间以及令牌或查询成本。提前显示成本可避免在从演示环境切换到共享环境时出现意外账单。
为每轮及每次会话设定令牌预算。智能工具会大量消耗上下文资源,设置上限可防止演示环境产生意外费用。
需注明实际用于生成答案的对应内容。没有引用依据,操作人员就无法区分是幻觉还是索引缺失导致的错误。
需记录每次调用的工具名称、参数哈希值、延迟时间以及最终结果。没有这些记录,调试智能体循环将耗费大量时间。
在更改提示词或模型之前,先锁定一个基准版本。同时改变系统与评估标准会掩盖功能退化问题。
在推广该技术栈之前,应先冻结版本,为关键路径生成标准测试记录,并明确回滚步骤。共享环境需要设置速率限制、租户验证机制,以及明确的密钥轮换负责人。与其展示花哨的一次性演示,不如追求扎实的可靠性。
b60692e45ddf的批量处理说明:不要将提供商密钥放入代码仓库,为每个会话设置令牌使用上限,并将测试记录与评估用文件存放在同一位置,以便后续模型更换时保持对比性。
强化措施的第0阶段若被视为可测量的评估标准,则效果最佳。在扩大范围之前,应先获取一份标准测试记录、一个故障案例以及回滚说明。将该阶段视为输入与经过验证的输出之间的契约,为相关文件命名、定义成功标准,杜绝无声的半完成状态。
加固细节 0/869:测量该条记录的运行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来判断是否保留该变更。
在加固笔记的第一阶段,应在修改代码之前明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。配置应置于应用程序代码之外,环境文件、密钥存储和功能标志应集中存放于一个操作人员可以审核的位置,无需查看整个系统结构。
加固细节 1/869:测量该条记录的运行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来判断是否保留该变更。
在处理强化措施的第2阶段时,首先写下相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改始终符合要求。 相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障应能指向单一的责任模块,而非复杂的流程链。
强化措施细节2/869:需测量该步骤的运行时间、错误类型以及代币消耗情况,然后依据固定的评估标准而非主观判断来决定是否保留该修改。
将强化措施的第3阶段视为可度量的对象来处理效果最佳。在扩大范围之前,先记录一份理想的运行示例、一个失败案例以及回滚说明。 在功能结果旁同时记录时间消耗及代币或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外支出。
强化细节 3/869:测量该笔记的运行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来决定是否保留该变更。