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)有两个固有缺陷:

  1. 知识截止日期(过时):模型训练好后,知识就停留在那一天。例如,如果你问一个 2023 年训练的模型“2024 年世界杯冠军是谁?”,它答不上来。

  2. 产生幻觉(一本正经胡说八道):模型有时会编造看起来很有道理但实际错误的答案。对于企业内部文档或特定领域知识,它可能完全不知道。

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。第三步:……”

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐