提示词工程 与 实践 课程内容
LLM Power Prompting
大型语言模型本质上是一个黑箱,而提示就是我们与它沟通的唯一接口。就像我们使用自然语言与人交流一样,提示也是我们向LLM下达指令、描述任务、提供上下文的主要方式。
Zero-shot prompting(零样本提示)
直接让LLM做一件事,不提供额外支持,不提供示例

K-shot prompting(少样本提示)
提供示例(k=1,3,5等),也称为“上下文学习”(in-context learning)
少样本提示通过在提示中加入几个输入-输出示例,教会模型你期望的格式、风格或逻辑。 提供的示例跟目标任务越相似,生成效果越好
Chain-of-Thought Prompting(链式思维提示)
思维链提示要求模型在给出最终答案之前,先输出推理过程。
这能大幅提高复杂问题的正确率。
多样本CoT:在提示中给出几个带推理步骤的例子。
零样本CoT:直接加上一句“让我们一步步思考”。
实践中,你可以要求模型把推理放在<reasoning>标签中,便于解析最终结果。标签名称可自定义:不一定非要用 <reasoning>,你也可以用 <think>, <step_by_step>, <推理> 等。
关键是保持前后一致,并在提示中明确说明。
适用于需要多不逻辑推理的任务 编程 数学

Self-consistency Prompting(自洽提示 要求投票输出最常见的答案)
对同一提示多次采样(通常结合CoT) 聚合最常见的答案 通过模型集成减少幻觉和错误


Tool Use(工具调用 委托处理)
允许LLM将任务委托给外部系统 减少幻觉,提高自主性 LLM本身不能直接运行代码、查询数据库或执行系统命令。但通过工具调用(如函数调用、API集成),模型可以请求外部系统完成这些操作。
例如,在一次修复后,你可以让模型调用pytest命令来确保单元测试仍然通过。模型会生成工具调用指令,由宿主环境执行并返回结果。整个流程可通过LangChain搭建。 这是构建AI Agent的基石技术。

Retrieval Augmented Generation(先查后回答)
向LLM注入上下文数据 无需重新训练即可让模型保持最新知识 RAG是一种混合架构:先根据用户查询检索相关文档(如代码库、API文档、公司内部知识库),然后将检索到的内容与原始问题一起送给LLM生成答案。
RAG 是 Retrieval-Augmented Generation(检索增强生成)的缩写。
简单来说,它是目前大语言模型(如 ChatGPT、Claude、DeepSeek)非常流行的一种技术架构,旨在让 AI 模型“学会查资料”再回答问题。
RAG 解决了什么核心问题?
大语言模型(LLM)有两个固有缺陷:
-
知识截止日期(过时):模型训练好后,知识就停留在那一天。例如,如果你问一个 2023 年训练的模型“2024 年世界杯冠军是谁?”,它答不上来。
-
产生幻觉(一本正经胡说八道):模型有时会编造看起来很有道理但实际错误的答案。对于企业内部文档或特定领域知识,它可能完全不知道。
RAG 的解决方案:
不要求模型记住所有知识,而是在回答问题时,先去一个外部知识库(如谷歌、维基百科或你的公司文档)里搜索,找到相关片段,然后把这段话作为参考资料喂给 AI,让 AI 根据资料回答问题。
RAG 的工作流程(三个步骤)
可以把 RAG 看作一个“阅读并回答”的过程:
| 步骤 | 操作 | 生活类比 |
|---|---|---|
| 1. 检索 (Retrieval) | 用户问一个问题。系统将问题转化为向量,去知识库(如 PDF、网站)中搜索最相关的片段。 | 你去图书馆或谷歌搜索资料。 |
| 2. 增强 (Augmentation) | 把搜到的相关片段 + 用户的问题 拼接成一个“提示词(Prompt)”。 | 你把找到的书本段落夹在试卷旁边。 |
| 3. 生成 (Generation) | 把拼接好的提示词发给大模型,让模型阅读段落来回答。 | 你让朋友读那段资料,然后回答试卷上的问题。 |
Reflexion(反思自己答案对不对)
让LLM反思自己的输出 将环境反馈重新融入上下文 多轮交互:“现在评价你的答案。是否正确?如果不正确,解释原因并重试。”

Additional Terminology(额外的提示词交互)
System prompt
提供给LLM的第一条消息(用户通常不可见) 定义角色、规则、输出风格,系统提示用于设定模型的全局行为。
例如: “你是一只猫娘。” 系统提示在整个对话中持续生效,是控制模型风格和道德边界的有效工具。
User prompt
来自人类的实际指令
Assistant Response
LLM实际生成的内容 我们前面所有示例中的提示,本质上都是用户提示。理解这三者的区别有助于设计更复杂的多轮对话流程。
Best Practices 实践建议
使用提示改进工具(如Anthropic的Prompt Improver)
https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/prompt-improver
一些平台提供自动优化提示的工具,可以尝试。
积极使用角色扮演(role prompting)增强系统提示
让模型扮演特定角色(如资深程序员、产品经理、老师)能显著提高输出的专业度和针对性。
使用清晰的标签(如<log>、<error>)分隔不同部分。
当输入包含日志、堆栈跟踪、文档等多种信息时,使用XML或Markdown标签进行结构化分隔,能帮助模型准确理解每一部分的含义。
如下这种做法比无格式拼接更可靠,模型能学会聚焦于关键信息。

明确表达你想要的(语言、技术栈、库、约束)
不要说“写一个函数”,而要说“用Python 3.10+写一个异步函数,使用aiohttp库,超时设为10秒”。 分解复杂任务
如果任务很复杂,先要求模型输出步骤大纲,再分步实现。
例如:“第一步:读取文件。第二步:解析JSON。第三步:……”
更多推荐



所有评论(0)