阅读进度:0%
📚 实战百科 · 中文最全 · 持续更新

大模型应用实战百科
提示词工程 · 工作流 · 智能体

融合 DeepLearning.AI、OpenAI、Anthropic、LangGraph、Coze、Dify 等八大权威知识源,打造中文社区最全面的大模型应用实战文档。涵盖提示词工程核心技术、工作流五大设计模式、智能体架构与 ACI 设计、企业级生产化部署,配以双轨并行 AGI 学习路线图——从理论到实践,一份文档覆盖大模型应用全链路。

📖 29 章节 🔗 9 大知识域 🛠️ 30+ 实战案例 🗺️ 双轨学习路线 🇨🇳 全中文

👋 联系作者

🗺️ AGI 应用学习路线图 — 双轨并行

理论轨(左)学原理与方法论,实操轨(右)动手做项目。两条轨道一一对应、互相补充——学完理论立即实操,做完实操回顾理论。点击任意节点跳转至对应章节。

📚 理论轨 · 学原理
对应
🛠️ 实操轨 · 动手做
↓
↓
↓
↓
💡 使用方法:左右两轨一一对应——左侧学理论(点击跳转对应章节),右侧立即动手实操。建议按层级顺序学习,每层"理论→实操"完成后再进入下一层。第 1-2 层是所有 AI 应用者的必备基础,第 3 层是进阶分水岭(从"使用 AI"到"编排 AI"),第 4-5 层是专业化方向。本路线聚焦应用方向,不涉及机器学习/深度学习/模型训练等底层内容。
第 01 章

什么是提示词工程

从最基本的概念出发,理解提示词工程到底是什么。

定义

提示词工程(Prompt Engineering)是一门关注提示词(Prompt)开发和优化的学科,旨在帮助用户将大语言模型(LLM, Large Language Model)应用于各类场景。它不仅仅是"写一个问题",而是一套与 AI 高效沟通的工程方法论。

根据 Prompt Engineering Guide(promptingguide.ai)的定义,提示词工程涵盖:

  • 与大语言模型交互和研发的各种技能与技术
  • 提升 LLM 处理复杂任务(如问答、算术推理)的能力
  • 提高大语言模型的安全性
  • 借助外部工具和专业知识增强 LLM 能力
📌 是什么

一套编写、优化、迭代 AI 指令的系统方法,让模型稳定输出符合需求的结果。

💡 为什么

同样的模型,好提示和差提示的效果天壤之别。提示词是释放 AI 能力的"钥匙"。

✅ 怎么做

掌握核心原则与技巧,通过结构化编写、持续迭代、评估测试来优化提示词。

ℹ️ 重要澄清

提示词工程不是"讨好 AI 的咒语"或"玄学技巧"。它是一门可学习、可系统化、可复用的工程技能。好提示词的背后是清晰的逻辑思维和结构化表达能力。

提示词的英文术语

在学习过程中你会频繁遇到以下英文术语,这里先做个对照:

英文术语中文含义简要说明
Prompt提示词输入给 AI 模型的指令或文本
LLM大语言模型Large Language Model,如 GPT、Claude 等
Token词元模型处理文本的最小单位
Completion补全/生成模型根据提示词生成的输出
Context Window上下文窗口模型一次能处理的最大 Token 数
第 02 章

为什么需要学习提示词工程

理解学习的动机,才能建立持续学习的动力。

四大核心理由

1. 释放 AI 的全部能力

DeepLearning.AI 课程中,吴恩达(Andrew Ng)用一个生动的比喻说明:LLM 就像一个"非常聪明但需要明确指令的新同事"。你给它的指令越清晰,它交付的结果越好。同一个模型,不同的提示词可以产生从"无法使用"到"惊艳专业"的天壤之别。

❌ 模糊的提示
帮我写个产品介绍
✅ 清晰的提示
你是一位资深产品文案。
请为一款"智能降噪耳机"写
一段 200 字的产品介绍,
目标用户是 25-35 岁都市白领,
语气专业但亲切,突出降噪和
续航两个卖点。

2. 降低成本与提升效率

好的提示词能减少试错次数,降低 Token 消耗(即 API 调用成本)。Learn Prompting 的课程强调,系统化的提示技巧可以让你第一次就得到高质量输出,而不是反复修改、反复调用。

3. 提高输出的可靠性与一致性

在生产环境中,你需要 AI 的输出稳定、可预测、可复现。提示词工程提供了一系列结构化方法(如格式约束、Few-shot 示例、思维链等),让模型输出从"偶尔好"变成"持续好"。

4. 一项通用技能

提示词工程的原理是跨平台通用的。无论你使用 GPT、Claude、Gemini 还是开源模型,核心方法论一致。OpenAI 指南和 Anthropic 指南虽然各有侧重,但底层原则高度相通——学会了这些通用方法,你可以快速适应任何新模型。

🎯 Learn Prompting 的观点

Learn Prompting 将提示词工程定义为"为 AI 工具编写有效指令以获得量身定制的高质量结果的实践"。它不仅是技术技能,更是人机沟通的新范式——就像学会使用搜索引擎一样,提示词工程是 AI 时代的基础素养。

第 03 章

核心学习资源概览

本指南融合的核心学习资源各有侧重,了解它们的特点有助于你选择适合自己的补充学习路径。除以下五大主资源外,还整合了 OpenAI Cookbook 和 Microsoft Azure OpenAI 学习路径。

🎓
ChatGPT Prompt Engineering for Developers
DeepLearning.AI · 吴恩达 & Isa Fulford · 免费短课程
面向开发者的入门课程,1 小时 40 分钟,9 节课。以 OpenAI API 为基础,教授两大核心原则和四大应用场景(摘要、推断、转换、扩展),配有 Jupyter Notebook 实操。
入门友好 实操代码 两大原则 应用导向
📚
Prompt Engineering Guide
promptingguide.ai · 开源在线指南 · 有中文版
最全面的提示技术百科全书,涵盖 18 种提示技术(从 Zero-shot 到 ReAct、Reflexion),配有 Prompt Hub 提示词库。适合作为技术参考手册随时查阅。
技术最全 18 种技术 提示词库 中文版
🌱
Learn Prompting
learnprompting.org · Sander Schulhoff · 系列课程
从零基础到高级的完整课程体系。入门课覆盖基础概念与伦理安全,高级课深入 Few-shot、CoT、问题分解、自我批评等进阶技巧。作者是《The Prompt Report》综述论文的主笔。
分级课程 安全伦理 高级技巧 认证证书
⚡
OpenAI 官方 Prompt Engineering 指南
platform.openai.com/docs/guides/prompt-engineering
OpenAI 官方最佳实践,提出"Identity → Instructions → Examples → Context"结构化提示框架,区分 GPT 模型与推理模型的差异化提示策略,覆盖生产环境部署建议。
官方权威 结构化框架 生产级实践 API 集成
🤖
Anthropic Claude 提示工程指南
docs.anthropic.com · Claude 官方文档
Claude 官方提示设计指南,以 XML 标签结构化、角色设定、自适应思考(Adaptive Thinking)、Few-shot 示例为核心,特别强调"像对新同事解释"的清晰直接原则,包含大量代理系统实践。
XML 结构化 自适应思考 代理实践 长上下文
📋 七大提示词工程资源 + 三大工作流/智能体资源对比总结

入门首选:DeepLearning.AI 课程(有实操)
技术查询:Prompt Engineering Guide(最全面)
系统学习:Learn Prompting(分级课程)
生产实践:OpenAI 指南 + Anthropic 指南(官方最佳实践)

第 04 章

LLM 是如何工作的

理解模型的工作原理,才能理解为什么某些提示技巧有效。

大语言模型的训练过程

Learn Prompting 课程指出,理解 LLM 的工作原理是写好提示词的基础。大语言模型的诞生通常经历三个阶段:

① 预训练 Pre-training
→
② 指令微调 SFT
→
③ 人类反馈强化学习 RLHF

① 预训练(Pre-training)

模型通过阅读海量互联网文本,学习语言的统计规律和世界知识。这个阶段模型学会了"续写文本"——即根据前面的内容,预测下一个最可能出现的词。但此时的模型还不会"对话"。

② 指令微调(Supervised Fine-Tuning, SFT)

用大量"指令-回答"的示例数据训练模型,让它学会按照人类指令行事,而不是单纯续写文本。

③ 人类反馈强化学习(RLHF)

让人类对模型的多个回答进行排序打分,用这些偏好数据训练一个"奖励模型",再通过强化学习优化模型,使其输出更符合人类期望(更有用、更诚实、更安全)。

核心机制:下一个 Token 预测

无论经过怎样的训练,LLM 的底层机制始终是基于概率预测下一个 Token(词元)。它不是在"搜索答案",而是在"生成最可能的下一个词"。

⚠️ 关键认知

LLM 不是搜索引擎,它不会去数据库里"查找"答案。它是概率生成器,根据你给的上下文,逐字生成最可能的回答。这意味着:你给的上下文越清晰、越完整,模型生成的方向就越准确。

为什么模型会"一本正经地胡说八道"

因为模型是在"生成最可能的下一个词",当它不确定答案时,它会生成看起来合理但实际错误的内容——这就是所谓的幻觉(Hallucination)。提示词工程的重要目标之一,就是通过清晰的指令和准确的上下文来减少幻觉。

第 05 章

关键概念:Token 与上下文

掌握 Token 和上下文窗口这两个核心概念,是理解提示词工程的前提。

Token(词元)

📌 是什么

模型处理文本的基本单位。一个 Token 大约对应 3-4 个英文字符或 0.5-1 个中文字。

💡 为什么重要

API 按 Token 计费,上下文窗口也以 Token 为单位。理解 Token 有助于控制成本和长度。

✅ 怎么做

中文比英文更"费 Token"。写提示词时注意精炼表达,避免不必要的冗余。

Token 示例
# 英文 "Hello world" = 2 个 Token
# 中文 "你好世界" ≈ 4-6 个 Token(取决于分词器)
# 1 个英文单词 ≈ 1-2 个 Token
# 1 个中文字 ≈ 1-2 个 Token

上下文窗口(Context Window)

📌 是什么

模型一次能处理的最大 Token 数量。包含你的提示词 + 模型的输出。

💡 为什么重要

超出窗口的内容模型"看不见"。合理分配窗口空间是上下文工程的基础。

✅ 怎么做

把最重要的信息放在窗口内。长文档放在前面,指令和问题放在后面。

💡 Anthropic 的长上下文最佳实践

处理长文档时,Anthropic 建议将长文档和数据放在提示的顶部,将查询、指令和示例放在底部。测试表明,这种"文档在前、问题在后"的布局可以将响应质量提升最多 30%。

模型参数设置详解

Prompt Engineering Guide 的 LLM Settings 章节详细介绍了通过 API 调整模型行为的关键参数。理解这些参数能帮助你获得更稳定、更符合预期的输出。以下是 6 个核心参数的完整说明:

Temperature(温度)
取值范围:0 ~ 2 | 默认值:1.0
控制输出随机性的核心参数。值越低,输出越确定——模型总是选择概率最高的下一个 Token;值越高,输出越随机——模型会给其他可能的 Token 更多权重,产生更多样或创意的输出。

使用建议:事实性问答、代码生成、数据提取用低值(0~0.3);摘要、翻译用中值(0.3~0.7);创意写作、诗歌用高值(0.7~1.2)。
Top P(核采样 / Nucleus Sampling)
取值范围:0 ~ 1 | 默认值:1.0
与 Temperature 类似,都控制输出的确定性,但机制不同。打个比方:Temperature 像是给模型"喝咖啡"——值越高模型越"兴奋"越天马行空;Top P 则像是给模型设一个"选择池"——只从最可能的几个词中选,池子越小输出越确定,池子越大选择越多越多样。

通俗解释:假设模型要生成下一个词,面前有 10 个候选词,按可能性从高到低排列。Top P=0.1 意味着只考虑概率最高的前 10%(可能就 1-2 个词),其余直接忽略;Top P=0.9 意味着考虑前 90%(大部分词都考虑)。

关键规则:一般建议只调整 Temperature 或 Top P 其中一个,不要同时修改两个。需要精确事实性回答时保持低值;需要多样响应时调高。
Max Length(最大长度)
单位:Token
限制模型生成的最大 Token 数量。设置最大长度可以防止过长或无关的响应,同时帮助控制 API 成本。例如,只需要一句话摘要时,设置 max_tokens=100 可以避免模型生成冗长输出。
Stop Sequences(停止序列)
类型:字符串
一个停止序列是让模型停止生成 Token 的字符串。这是控制模型响应长度和结构的另一种方式。例如,你可以通过添加 "11" 作为停止序列,让模型生成不超过 10 项的列表。当模型遇到停止序列时,会立即停止生成。
Frequency Penalty(频率惩罚)
取值范围:-2 ~ 2 | 默认值:0
对下一个 Token 施加惩罚,惩罚力度与该 Token 在响应和提示中已出现的次数成正比。值越高,某个词再次出现的概率越低。这个设置通过给出现更多的 Token 更高的惩罚来减少模型响应中词语的重复。
Presence Penalty(存在惩罚)
取值范围:-2 ~ 2 | 默认值:0
同样对重复 Token 施加惩罚,但与频率惩罚不同——惩罚对所有重复 Token 是相同的。出现两次的 Token 和出现 10 次的 Token 受到同样的惩罚。这个设置防止模型过于频繁地重复短语。需要多样化创意文本时调高;需要模型聚焦时调低。

关键规则:与 Temperature/Top P 类似,一般建议只调整频率惩罚或存在惩罚其中一个,不要同时修改两个。
场景TemperatureTop PFrequency PenaltyPresence Penalty
代码生成01.0(默认)00
事实问答 / 数据提取0~0.31.0(默认)00
摘要 / 翻译0.3~0.51.0(默认)0.30
文案写作0.7~0.91.0(默认)0.50.5
创意写作 / 头脑风暴1.0~1.20.90.70.7
第 06 章

提示词的四大要素

一个好的提示词通常包含四个组成部分,理解它们是构建有效提示的基础。

Prompt Engineering Guide 指出,一个完整的提示词通常由以下四个要素构成(并非每次都需要全部,但理解它们有助于系统构建提示):

要素英文作用必需性
指令Instruction告诉模型要做什么必需
上下文Context提供背景信息或外部知识视情况
输入数据Input Data需要处理的具体内容视情况
输出格式Output Format指定输出的样式或结构推荐

完整示例

四大要素拆解
# 【指令】
请将以下用户评论分类为"正面"、"负面"或"中性"。

# 【上下文】
我们正在分析一款智能手表的用户反馈,
分类结果将用于产品改进决策。

# 【输入数据】
评论内容:"手表外观不错,但电池只能撑一天,
而且心率监测经常断连,体验不太好。"

# 【输出格式】
请以 JSON 格式输出,包含字段:
- sentiment: 分类结果
- reason: 一句话理由
✅ 实践建议

初学者最常犯的错误是只写指令,不提供上下文和输出格式。即使简单任务,明确输出格式也能大幅提升结果质量和一致性。

进阶:Azure OpenAI 的五组件模型

Microsoft Azure OpenAI 的 提示工程技术指南提供了一个更精细的提示组件拆分模型,将提示分为 5 个组件(按使用频率从高到低排列,均为可选但至少需要一个):

组件英文定义对应四大要素
指令Instructions告诉模型做什么,可简单可复杂指令
主要内容Primary Content模型需处理/转换的文本输入数据
示例Examples输入/输出对,用于 Few-shot 学习上下文(特殊形式)
引导线索Cue为输出"起头"的前缀,引导输出格式输出格式(隐式)
辅助内容Supporting Content影响输出但非主任务目标(如日期、用户偏好)上下文
💡 Cue(引导线索)的妙用

Azure 指南特别强调了 Cue 的作用——在提示末尾加入几个词来获得期望形式的输出。例如,末尾加 "One possible search query is:" 可使模型只输出一个查询而非多个。这是一种低成本控制输出格式的技巧。

📚 权威参考

Azure OpenAI Prompt Components(提示组件) · Prompt Engineering Guide Prompting Tips

第 07 章

两大核心原则

DeepLearning.AI 课程提出的两大原则,是所有提示词工程技巧的根基。

吴恩达在 DeepLearning.AI 课程中提出了编写有效提示词的两大核心原则,这两条原则贯穿了几乎所有提示技术,是入门提示词工程最重要的认知。

原则一:编写清晰具体的指令

📌 是什么

指令要尽可能清晰、具体、明确,减少模型的猜测空间。

💡 为什么

模型不会"读心"。模糊的指令让模型自行推断意图,容易偏离你的实际需求。

✅ 怎么做

使用分隔符、要求结构化输出、提供步骤、给出参考文本。

技巧 1:使用分隔符标识输入

用分隔符清晰区分指令与输入数据,避免模型混淆——这是 OpenAI 官方指南的首要建议。分隔符的作用是在提示词中创建明确的"边界",让模型清楚知道哪部分是指令、哪部分是需要处理的数据、哪部分是参考信息。

🔗 权威来源

OpenAI 官方指南 Prompt Engineering 明确指出:"Use delimiters to clearly indicate distinct parts of the input"(使用分隔符清晰标明输入的不同部分)。Microsoft Azure OpenAI 提示工程技术指南 也建议用 Markdown 或 XML 作为分隔语法,因为模型在大量此类内容上训练过。

以下是 5 种常用分隔符的详细对比,帮助你根据场景选择最合适的方案:

分隔符名称适用场景优点注意点
""" 三重引号 包裹纯文本段落(文章、评论、邮件) 简单直观,DeepLearning.AI 课程首选 如果文本本身含 """ 会混淆
### 三重井号 分隔不同段落或章节 与 Markdown 语法兼容 文本中含 # 标题时可能干扰
--- 三重横线 分隔指令、内容、输出区域 视觉清晰,Azure 指南推荐 Markdown 中也表示水平分割线
<tag></tag> XML 标签 结构化多段内容(多文档、多字段) 语义最明确,Anthropic 强烈推荐 稍显冗长,但可读性最强
``` 三重反引号 包裹代码或结构化数据 与 Markdown 代码块一致 文本含代码片段时不宜使用
✅ 分隔符选择原则

① 语义优先:需要标注内容类型时用 XML 标签(如 <article>、<review>),比纯符号更清晰。② 避免冲突:选择的分隔符不应在输入文本中出现。如果文本含引号,就别用 """;含代码就别用 ```。③ 一致性:同一提示中尽量使用同一种分隔符体系,不要混用。

📎 分隔符示例 — XML 标签(推荐)
请总结以下用 <article> 标签包裹的文本:

<article>
人工智能(AI)是计算机科学的一个分支,
致力于创造能够模拟人类智能行为的系统...
</article>

请用 3 句话概括核心内容。
📎 分隔符示例 — 三重引号
请总结以下用三重引号包裹的文本:

"""
人工智能(AI)是计算机科学的一个分支,
致力于创造能够模拟人类智能行为的系统...
"""

请用 3 句话概括核心内容。

中文大模型的分隔符最佳实践

以上分隔符原则在国际模型(GPT、Claude)上验证成熟。对于国产中文大模型,各厂商基于自身训练特点也给出了官方建议,以下汇总 DeepSeek、豆包(字节跳动)等模型的分隔符使用规范,帮助你针对不同模型优化提示词。

🔗 权威来源

DeepSeek API 官方文档 · 豆包大模型 Prompt 最佳实践(火山引擎) · Anthropic XML Tags 指南

模型推荐分隔符核心原则注意事项
DeepSeek [file content begin]
...
[file content end]

XML 标签
<think>
角色先行、分隔清晰、任务独立——角色指令位于最前端且独立成段,任务描述紧随其后不嵌套角色语句 R1 模型不使用 system prompt,所有指令放在 user prompt 中;温度建议 0.6;文件上传用 [file name] + [file content begin/end] 标记
豆包 ###指令###
###文章###
###输出格式###

三重引号 """
结构化分块——用 ### 划分指令、数据、输出格式三个模块,让模型按步骤执行 前缀必须紧贴核心动词;可用 【任务|参数】 结构化前缀加速响应;避免用冒号替代竖线 |
通用实践 语义化 XML 标签
<instructions>
<context>
<document>
适度原则 + 语义化原则 + 成本效益分析——为逻辑独立的大块内容使用标签,不在句子级添加 标签名本身即对模型的提示;嵌套保持简洁;添加前评估 Token 成本是否值得
✅ 跨模型分隔符选择心法

① 结构化任务:用 ###指令### / ###数据### / ###输出### 三段式(豆包推荐,中文模型优化最佳)。② 多文档/多字段:用语义化 XML 标签(<article>、<review>),所有模型通用。③ 文件上传场景:用 [file content begin]...[file content end] 标记(DeepSeek 官方规范)。④ 推理模型:DeepSeek-R1 等推理模型不使用 system prompt,所有指令和分隔符都放在 user prompt 中。⑤ 避免冲突:选择的分隔符不应在输入文本中出现,这是所有模型的共同要求。

📎 DeepSeek 文件分析 — 分隔符模板
# DeepSeek 官方推荐的文件分析提示词模板
# 使用 [file content begin/end] 标记文件内容

[file name]: 季度销售报告.pdf
[file content begin]
2026年Q1总营收1.2亿元,同比增长23%。
华东区占比45%,华北区占比30%,华南区占比25%。
明星产品A系列营收增长45%,贡献增量营收的60%。
[file content end]

请根据以上文件内容回答问题。
如果文件中没有相关信息,请直接说"根据提供的资料无法回答"。

问题:哪个区域增长最快?明星产品的贡献率是多少?
📎 豆包结构化分块 — 三段式模板
# 豆包推荐的 ### 三段式分隔符结构
# 适用于需要分步执行的复杂任务

###指令###
你需要完成以下三个任务:
1. 总结下面的文章,不超过200字
2. 提取文章中的三个核心要点
3. 基于文章内容,提出两个值得探讨的问题

###文章###
"""
[这里粘贴文章内容]
"""

###输出格式###
请按照以下格式返回结果:
总结:[你的总结内容]
核心要点:
1. [要点一]
2. [要点二]
3. [要点三]
延伸思考:
1. [问题一]
2. [问题二]

技巧 2:要求结构化输出

结构化输出
请从以下文本中提取关键信息,
以 JSON 格式输出,包含以下键:
- 产品名称
- 价格
- 评价数量

文本:"iPhone 16 Pro 售价 7999 元,
已有 12500 条用户评价。"

技巧 3:提供条件判断和步骤

条件与步骤
请按以下步骤处理用户消息:

1. 首先判断消息是否包含投诉内容
2. 如果包含投诉,提取投诉的具体问题
3. 如果不包含投诉,直接回复"非投诉消息"
4. 对于投诉消息,生成一条安抚性回复

用户消息:"你们的产品质量太差了!
用了三天就坏了,要求退款!"

原则二:给模型充足的推理时间

📌 是什么

对于复杂任务,引导模型先进行推理思考,再给出最终答案。

💡 为什么

如果模型被要求"立即给答案",它可能在没有充分思考的情况下仓促作答,导致错误。

✅ 怎么做

指定推理步骤、要求先分析再结论、使用思维链(CoT)。

❌ 仓促作答
判断这个学生的解答是否正确:

一个问题:一台发电机...
学生的解答:...

直接告诉我对不对。
✅ 先推理再判断
判断这个学生的解答是否正确。

请按以下步骤:
1. 先自己重新解答这个问题
2. 然后将你的解答与学生的解答对比
3. 最后判断学生的解答是否正确

问题:...
学生解答:...
🔗 与后续技术的联系

原则二是思维链(Chain-of-Thought)技术的理论基础。后续章节会详细讲解如何系统化地引导模型进行分步推理。

第 08 章

结构化提示设计

OpenAI 和 Anthropic 各自提出的结构化框架,帮助你系统性地组织提示词。

OpenAI 的推荐结构

OpenAI 官方指南推荐使用 Markdown 和 XML 标签来格式化提示,并按以下顺序组织内容:

① Identity 身份
→
② Instructions 指令
→
③ Examples 示例
→
④ Context 上下文
顺序部分说明
1Identity(身份)描述助手的目的、沟通风格和高层目标
2Instructions(指令)指导模型如何生成响应的规则
3Examples(示例)提供输入与期望输出的示例(Few-shot)
4Context(上下文)提供额外信息(私有数据等),通常放末尾

OpenAI 结构化示例

完整结构化提示
# Identity

You are a coding assistant that helps enforce
the use of snake case variables in JavaScript code.

# Instructions

* When defining variables, use snake case names
  (e.g. my_variable) instead of camel case.
* Declare variables using the older "var" keyword.
* Do not give responses with Markdown formatting.

# Examples

<user_query>
How do I declare a string variable for a first name?
</user_query>

<assistant_response>
var first_name = "Anna";
</assistant_response>

Anthropic 的 XML 标签结构化

Anthropic(Claude)强烈推荐使用XML 标签来结构化提示,认为这能帮助模型"无歧义地解析复杂提示":

📌 是什么

用 <instructions>、<context>、<input> 等标签包裹不同内容。

💡 为什么

当提示混合指令、上下文、示例时,标签能清晰划定边界,减少误解。

✅ 怎么做

用一致的标签名,长文档用嵌套标签,指令放末尾。

XML 结构化示例
<instructions>
你是一位专业的法律文档分析助手。
请阅读以下合同条款,提取其中的
违约责任条款,并以列表形式输出。
</instructions>

<documents>
  <document index="1">
    <source>合同A.pdf</source>
    <document_content>
    第十条 乙方如未按时交付货物...
    </document_content>
  </document>
</documents>

<question>
请列出所有违约责任条款。</question>
💡 Claude 的黄金法则

Anthropic 提出了一个检验提示清晰度的黄金法则:"把你的提示展示给一位对任务背景了解最少的同事,请他按照提示执行。如果他也会困惑,Claude 也会。"——这个法则适用于所有模型。

⚠️ 提示缓存优化

OpenAI 和 Anthropic 都建议:将反复使用的内容放在提示开头。因为模型会对前缀进行缓存,前缀越长越稳定,缓存命中率越高,成本和延迟越低。变化的内容(如用户输入)放在末尾。

第 09 章

零样本提示 Zero-shot

入门通用 最基础的提示方式。

📌 是什么

不提供任何示例,直接给出指令让模型完成任务。"Zero-shot"意为"零次射击/零样本"。

💡 为什么

现代 LLM 经过了大量指令微调,对很多常见任务已有足够理解,无需示例即可完成。

✅ 怎么做

清晰描述任务即可。适用:分类、摘要、翻译等模型已有足够能力的任务。

📎 Zero-shot 可复制示例
# 直接给指令,不给示例 — 翻译任务
请将以下中文翻译为英文,保持商务正式语气:

"感谢您提供的详细方案,我们将在内部评估后尽快回复。"

# 模型输出:
# Thank you for the detailed proposal.
# We will review it internally and reply as soon as possible.

对比:模糊指令 vs Zero-shot 清晰指令

❌ 模糊指令(未使用技术)
帮我看看这段话是什么意思:
"这家餐厅服务态度很好,
就是上菜太慢了,等了40分钟。"
✅ Zero-shot 清晰指令
将以下文本分类为"正面"、"负面"或"中性",只输出分类结果,不输出其他内容:

"这家餐厅服务态度很好,就是上菜太慢了,等了40分钟。"
📚 权威参考

Prompt Engineering Guide Zero-Shot 提示技术 · OpenAI Prompt Engineering 指南

ℹ️ 何时使用 Zero-shot

当任务是常见且简单的(如情感分类、基础翻译、简单摘要),先尝试 Zero-shot。如果效果不理想,再升级到 Few-shot。

第 10 章

少样本提示 Few-shot

入门通用 通过示例引导模型理解任务模式。

📌 是什么

在提示中提供少量(通常 2-5 个)输入-输出示例,让模型从示例中学习任务模式。

💡 为什么

有些任务仅靠文字描述难以传达,示例能直观展示格式、风格、逻辑,比纯文字指令更有效。

✅ 怎么做

提供 3-5 个相关、多样、结构化的示例,覆盖典型场景和边缘情况。

Few-shot 示例
# 通过示例教模型将"描述"翻译为"一句话评论"

# 示例 1
输入:画面精美,剧情紧凑
输出:这部电影的视觉效果令人惊艳,节奏把控也十分到位。

# 示例 2
输入:演员表演自然,配乐动听
输出:演员的表演真实动人,配乐更是锦上添花。

# 示例 3
输入:打斗场面震撼,但结尾仓促
输出:动作戏确实过瘾,可惜结尾收得太急,留有遗憾。

# 实际任务
输入:台词幽默,节奏轻快
输出:

Few-shot 最佳实践(综合 OpenAI + Anthropic)

原则说明来源
相关(Relevant)示例应密切反映你的实际用例Anthropic
多样(Diverse)覆盖边缘情况,避免模型拾取非预期模式Anthropic
结构化(Structured)用 <example> 标签包裹,让模型区分示例与指令Anthropic
数量适中3-5 个示例效果最佳,过多可能过拟合Anthropic
展示多样性尽量展示多种可能的输入及期望输出OpenAI
✅ 实践建议

当你发现 Zero-shot 输出格式不稳定或风格不一致时,就是升级到 Few-shot 的信号。示例的质量比数量更重要——一个精心设计的示例胜过五个粗糙的示例。

对比:Zero-shot vs Few-shot(同一任务)

❌ Zero-shot(格式不稳定)
将以下产品描述转换为一句营销文案:

"无线蓝牙耳机,续航 30 小时,主动降噪。"
✅ Few-shot(通过示例锁定风格)
将产品描述转换为一句营销文案。

示例:
描述:机械键盘,青轴,RGB 背光
文案:指尖跳动的节奏感,每一次敲击都是享受

描述:保温杯,316 不锈钢,24 小时保温
文案:从清晨到深夜,温度始终如初

描述:无线蓝牙耳机,续航 30 小时,主动降噪
文案:
📚 权威参考

Prompt Engineering Guide Few-Shot 提示技术 · Anthropic Few-shot Examples 最佳实践 · Azure OpenAI Few-shot Learning 指南

第 11 章

角色设定 Role Prompting

入门通用 为模型设定角色身份,聚焦其行为和语气。

📌 是什么

在提示开头为模型设定一个角色或身份,如"你是一位资深律师""你是一位 Python 专家"。

💡 为什么

Anthropic 指出,即使一句话的角色设定也能"聚焦 Claude 的行为和语气",让输出更专业、更贴合场景。

✅ 怎么做

在 system prompt 或提示开头写明角色、专业领域、沟通风格。

❌ 无角色
解释一下什么是机器学习。
✅ 有角色
你是一位擅长用通俗语言解释技术
概念的科普作家,面向没有技术
背景的普通读者。

请用 200 字以内解释"机器学习",
使用生活中的类比,避免专业术语。
ℹ️ 角色设定的进阶用法

Anthropic 指南还提到:如果需要模型在应用中正确识别自己(如使用特定 API 字符串),可以在角色设定中明确身份信息。例如:"The assistant is Claude, created by Anthropic."

⚠️ 角色设定的风险

角色设定应该聚焦专业领域和沟通风格,而非模拟特定真实人物或用于欺骗。Learn Prompting 的安全课程特别强调了这一点——不要利用角色设定绕过模型的安全限制。

📚 权威参考

Anthropic Give Claude a Role(角色设定) · Prompt Engineering Guide Role Prompting · Learn Prompting Roles 角色设定

第 12 章

上下文工程 Context Engineering

进阶通用 管理提供给模型的信息,是提示词工程的核心能力。

📌 是什么

系统性地管理"模型能看到什么信息"——包括背景知识、参考文档、历史对话、示例等。

💡 为什么

模型只"知道"上下文窗口中的信息。OpenAI 指出,提供上下文的两大原因:①让模型访问专有数据;②将响应限制在特定资源范围内。

✅ 怎么做

提供相关、准确、结构化的上下文。长文档在前,指令在后。

上下文工程的三个层次

Prompt Engineering Guide 的新增章节"上下文工程指南"将上下文管理分为三个层次:

层次内容示例
即时上下文当前提示中直接提供的信息粘贴一段文本让模型总结
会话上下文多轮对话中积累的历史信息聊天机器人记住之前的对话
外部上下文从外部知识库检索的信息(RAG)查询数据库后注入相关文档

上下文工程的最佳实践

1. 相关性优先

不要把所有信息都塞给模型。OpenAI 指南强调:只提供与任务相关的信息。无关信息会分散模型注意力,降低输出质量。

2. 结构化组织

用 XML 标签或 Markdown 标题组织上下文。Anthropic 建议多文档场景使用嵌套标签:

多文档结构化
<documents>
  <document index="1">
    <source>report_q3.pdf</source>
    <document_content>...</document_content>
  </document>
  <document index="2">
    <source>report_q4.pdf</source>
    <document_content>...</document_content>
  </document>
</documents>

请对比 Q3 和 Q4 的营收增长趋势。

3. 引用提取

Anthropic 提供了一个高级技巧:对于长文档任务,要求模型先引用文档相关部分,再执行任务:

引用提取模式
在回答之前,请先从文档中提取并引用
与问题相关的段落,放在 <relevant_quotes>
标签中,然后基于引用内容回答。

这样可以减少幻觉,提高答案的可追溯性。

对比:无上下文 vs 有上下文

❌ 无上下文(容易幻觉)
我们公司最新的退货政策是什么?
✅ 提供上下文(准确回答)
<policy>
退货政策(2026年修订版):
1. 购买后 7 天内可无理由退货
2. 食品和定制商品不支持退货
3. 退货商品需保持原包装完好
</policy>

请根据以上政策文档回答用户问题。
如果文档中没有相关信息,请说"根据现有政策无法回答"。

用户问题:我买了一台手机,用了5天能退吗?
💡 这就是 RAG 的基础

上下文工程的高级形态就是检索增强生成(RAG)——从外部知识库自动检索相关信息并注入提示。后续章节会详细讲解。

第 13 章

思维链 Chain-of-Thought (CoT)

进阶通用 引导模型逐步推理,是解决复杂问题的核心技术。

📌 是什么

引导模型在给出最终答案前,先逐步展开推理过程。"Let's think step by step"是最经典的触发语。

💡 为什么

模型直接给答案时容易出错,但分步推理能显著提升数学、逻辑、推理类任务的准确率。

✅ 怎么做

添加"让我们一步步思考"或用 <thinking> 标签引导分步推理。

CoT 的效果对比

❌ 直接问(无 CoT)
一个奇数数组 [15, 32, 5, 13, 82, 7, 1]
中所有奇数相加,再加上一个
偶数数组 [4, 8, 12] 的和。
最终结果是多少?
✅ 思维链(CoT)
一个奇数数组 [15, 32, 5, 13, 82, 7, 1]
中所有奇数相加,再加上一个
偶数数组 [4, 8, 12] 的和。

让我们一步步思考:
第一步:找出奇数数组中的奇数...
第二步:计算奇数之和...
第三步:计算偶数数组之和...
第四步:相加得到最终结果。

CoT 的三种实现方式

方式 1:Zero-shot CoT

最简单的方式——在提示末尾加上一句触发语:

[你的问题]

# 触发语
让我们一步步思考。
# 或英文:Let's think step by step.

方式 2:Few-shot CoT

在示例中展示推理过程,让模型学习"如何分步思考":

Few-shot CoT
# 示例 1
Q: 小明有 5 个苹果,给了小红 2 个,
   又买了 3 个,现在有几个?
A: 思考过程:
   1. 小明原有 5 个苹果
   2. 给了小红 2 个:5 - 2 = 3
   3. 又买了 3 个:3 + 3 = 6
   答案:6 个

# 示例 2(类似结构)
...

# 实际问题
Q: 一辆公交车上有 20 人,
   到站下了 8 人,上了 12 人,
   现在车上有多少人?
A:

方式 3:结构化思考标签

Anthropic 推荐使用 <thinking> 和 <answer> 标签分离推理与输出:

结构化思考标签
请先在 <thinking> 标签中写出你的
推理过程,然后在 <answer> 标签中
给出最终答案。

问题:如果 A > B,B > C,C > D,
那么 A 和 D 谁大?
🔗 Anthropic 的自适应思考

Anthropic 新一代 Claude 模型(Claude 3.5 Sonnet+)引入了自适应思考(Adaptive Thinking)——模型会自动判断何时需要思考、思考多少。在这种情况下,不需要手动添加"让我们一步步思考",模型会自行决定。但通用做法仍建议:面对复杂推理任务,显式引导 CoT 仍然有效。

⚠️ CoT 的适用场景

CoT 主要适用于需要推理的任务(数学、逻辑、多步分析)。对于简单任务(如翻译、分类),CoT 反而可能增加延迟和成本,没有实质收益。

第 14 章

自我一致性 Self-Consistency

高级通用 通过多次采样取多数投票,提高推理可靠性。

📌 是什么

对同一问题生成多条推理路径(设置较高 Temperature),通过多数投票选择最终答案。

💡 为什么

单次推理可能出错,但如果多条路径都指向同一答案,该答案的可靠性大幅提升。

✅ 怎么做

同一提示 + CoT,多次调用模型(Temperature > 0),统计答案,取多数。

同一问题 + CoT
→
生成 N 条推理路径
→
统计答案
→
取多数投票
自我一致性流程(伪代码)
# 同一问题,多次采样
for i in range(5):
    response = model.generate(
        prompt="问题 + Let's think step by step",
        temperature=0.7  # 较高温度增加多样性
    )
    answers.append(extract_answer(response))

# 取出现次数最多的答案
final_answer = most_common(answers)
ℹ️ 适用场景

Self-Consistency 主要适用于有明确正确答案的推理任务(数学题、逻辑推理),不适用于开放式生成任务(创意写作)。代价是需要多次调用,成本和延迟会增加。

对比:单次推理 vs 多次推理取多数

❌ 单次推理(可能出错)
问题:一个班有 32 个学生,男生比女生多 4 人,男生有多少人?

让我们一步步思考。
(模型只推理一次,可能算错)
✅ Self-Consistency(多次取多数)
# 同一问题 + CoT,调用 5 次(temperature=0.7)
问题:一个班有 32 个学生,男生比女生多 4 人,男生有多少人?

让我们一步步思考。

# 第 1 次推理 → 答案:18
# 第 2 次推理 → 答案:18
# 第 3 次推理 → 答案:20(错误路径)
# 第 4 次推理 → 答案:18
# 第 5 次推理 → 答案:18

# 多数投票 → 最终答案:18
# 验证:32 - 4 = 28,28 / 2 = 14(女生),14 + 4 = 18(男生)✓
第 15 章

提示链 Prompt Chaining

进阶通用 将复杂任务拆分为多步,逐步完成。

📌 是什么

将复杂任务拆分为多个子任务,每个子任务用一个独立提示,前一步输出作为后一步输入。

💡 为什么

一个提示试图做太多事容易出错。拆分后每步聚焦单一任务,质量和可控性更高。

✅ 怎么做

设计步骤链:步骤1输出 → 步骤2输入 → 步骤3输入...每步可独立测试和优化。

最常见的模式:自我纠正链

Anthropic 指出,提示链最常见的模式是自我纠正(Self-correction):

生成草稿
→
对照标准审查
→
基于审查改进

实际案例:文章创作流水线

提示链示例
# 步骤 1:生成大纲
请为以下主题生成一份文章大纲:
主题:人工智能在教育中的应用
要求:5 个主要部分,每部分 2-3 个要点

# 步骤 2:根据大纲写初稿
请根据以下大纲撰写一篇 1000 字的文章初稿。
大纲:[步骤 1 的输出]

# 步骤 3:审查并改进
你是一位资深编辑。请审查以下文章,
指出 3 个需要改进的地方,并给出修改建议。
文章:[步骤 2 的输出]

# 步骤 4:根据建议修改
请根据以下审查建议修改文章,
输出最终版本。
原文:[步骤 2 的输出]
建议:[步骤 3 的输出]
✅ 提示链的优势

①每步可独立测试和优化;②可以在任何步骤插入人工检查;③容错性好——某步出错只需重跑该步;④比试图用一个巨型提示完成所有事情更可控、更可靠。

对比:单提示 vs 提示链(文章创作)

❌ 单提示试图做全部(容易失控)
请为"AI 在教育中的应用"写一篇 1000 字文章,
要求:5 个部分,每部分 2-3 个要点,
语气专业但通俗,结尾要有展望,
同时检查是否有事实错误并修正。
✅ 提示链(分步可控)
# 步骤1:生成大纲
请为"AI 在教育中的应用"生成文章大纲,
5 个主要部分,每部分 2-3 个要点。

# 步骤2:根据大纲写初稿(将步骤1输出粘贴到此处)
请根据以下大纲撰写 1000 字文章初稿。
大纲:[步骤1的输出]

# 步骤3:审查(将步骤2输出粘贴到此处)
你是资深编辑,请审查文章,
指出 3 个需要改进的地方并给出建议。
文章:[步骤2的输出]

# 步骤4:修改定稿(将步骤2和3输出粘贴到此处)
请根据审查建议修改文章,输出最终版。
原文:[步骤2的输出]
建议:[步骤3的输出]
📚 权威参考

Anthropic Chain Prompts(提示链) · OpenAI Cookbook Building resilient prompts using an evaluation flywheel · Prompt Engineering Guide Prompt Chaining

第 16 章

思维树 Tree of Thoughts (ToT)

高级通用 CoT 的升级版,探索多条推理路径并评估选择。

📌 是什么

将思维链扩展为树状结构:生成多个思考分支,评估每个分支,选择最优路径继续探索。

💡 为什么

CoT 是线性的(一条路走到底),但有些问题需要探索和回溯。ToT 允许"走不通就换路"。

✅ 怎么做

生成 → 评估 → 选择 → 扩展,循环进行,直到找到满意答案。

CoT vs ToT 对比

维度Chain-of-ThoughtTree of Thoughts
结构线性(一条路径)树状(多条路径)
探索无法回溯可以评估和回溯
复杂度简单复杂,需多次调用
适用场景一般推理任务需要搜索的复杂问题(如 24 点、创意写作)
成本低高(指数级调用)
ℹ️ ToT 的核心循环

① 生成:为当前状态生成多个可能的下一步思考;② 评估:让模型评估每个思考的前景;③ 选择:选择最优的 1-2 个继续;④ 扩展:从选中节点继续生成,直到达到目标或放弃回溯。

对比:CoT(线性)vs ToT(树状探索)

❌ CoT(一条路走到底,无法回溯)
问题:用 1、3、4、6 四个数字,通过加减乘除
和括号,得到 24。

让我们一步步思考。
(如果第一步选错方向,后续推理全部浪费)
✅ ToT(生成多条路径,评估后选择)
问题:用 1、3、4、6 四个数字,通过加减乘除
和括号,得到 24。

请按以下步骤思考:

步骤1 - 生成 3 种可能的第一步计算:
  路径A:(写下第一个运算)
  路径B:(写下第二个运算)
  路径C:(写下第三个运算)

步骤2 - 评估每条路径:
  路径A评估:是否有前景?为什么?
  路径B评估:是否有前景?为什么?
  路径C评估:是否有前景?为什么?

步骤3 - 从最有前景的路径继续,直到得出 24。
  如果走不通,回溯到步骤1尝试其他路径。

答案:[最终表达式] = 24
第 17 章

检索增强生成 RAG

高级通用 让模型"查阅资料"再回答,减少幻觉的利器。

📌 是什么

Retrieval-Augmented Generation。先从外部知识库检索相关信息,再将检索结果注入提示,让模型基于检索内容生成回答。

💡 为什么

模型的知识有截止日期,且可能不了解你的私有数据。RAG 让模型"看到"最新、最相关的信息。

✅ 怎么做

用户提问 → 检索相关文档 → 文档 + 问题一起发给模型 → 生成回答。

用户提问
→
检索相关文档
→
文档 + 问题注入提示
→
模型生成回答

RAG 的提示结构

RAG 提示模板
<retrieved_context>
[从知识库检索到的相关文档内容]
</retrieved_context>

请基于以上检索到的上下文回答问题。
如果上下文中没有相关信息,请直接说
"根据现有资料无法回答",不要编造。

问题:[用户的实际问题]
✅ RAG 的三大价值

① 减少幻觉:模型基于检索到的真实文档回答,而非凭记忆编造。
② 获取最新信息:知识库可以实时更新,突破模型训练截止日期限制。
③ 访问私有数据:企业内部文档、产品手册等都可以通过 RAG 让模型"看到"。

⚠️ RAG 的关键:检索质量

RAG 的效果很大程度上取决于检索到的文档是否相关。如果检索质量差,模型会被无关信息误导。OpenAI 指出,可以通过向量数据库实现语义检索,或使用 OpenAI 内置的 file search 工具。

对比:无 RAG vs 有 RAG

❌ 无 RAG(凭记忆回答,可能过时或编造)
问题:我们公司 2026 年第二季度的
营收增长率是多少?

(模型不了解你的私有数据,
可能编造一个看似合理的数字)
✅ 有 RAG(基于检索文档回答)
<retrieved_context>
2026 Q2 财报摘要:
总营收 3.2 亿元,同比增长 15.3%。
毛利率 42.1%,较去年同期提升 2.3 个百分点。
海外市场营收占比首次超过 30%。
</retrieved_context>

请基于以上检索到的上下文回答问题。
重要规则:
1. 只使用上下文中的信息回答
2. 如果上下文中没有相关信息,请直接说
   "根据提供的资料无法回答"
3. 不要编造或推测

问题:2026 年第二季度的营收增长率是多少?
📚 权威参考

Prompt Engineering Guide RAG 检索增强生成 · OpenAI Cookbook Doing RAG on PDFs using File Search · OpenAI Cookbook Image Understanding with RAG

第 18 章

ReAct 推理与行动

高级通用 让模型边推理边行动,与外部环境交互。

📌 是什么

ReAct = Reasoning + Acting。模型交替进行推理思考(Thought)和执行行动(Action),并根据观察结果(Observation)继续推理。

💡 为什么

有些任务需要调用外部工具(搜索、计算器、数据库),纯推理无法完成。ReAct 让模型"动手"。

✅ 怎么做

Thought → Action → Observation 循环,直到得出最终答案。

ReAct 循环

ReAct 执行流程
# 问题:2024年诺贝尔文学奖得主写过哪些中文小说?

Thought 1: 我需要先查找 2024 年诺贝尔文学奖得主是谁。
Action 1: Search("2024 诺贝尔文学奖得主")
Observation 1: 2024 年诺贝尔文学奖得主是韩江。

Thought 2: 韩江是韩国作家,写的是韩语小说。
            但题目问的是中文小说,我需要确认她
            是否有作品被翻译成中文。
Action 2: Search("韩江 中文译本 小说")
Observation 2: 韩江的《素食者》《人类行为》
              等已被翻译成中文出版。

Thought 3: 我现在知道了韩江的中文译本小说。
Action 3: Finish("韩江的中文译本小说包括
            《素食者》《人类行为》等")
🔗 ReAct 与 AI Agent

ReAct 是现代AI Agent(智能体)的基础框架。Prompt Engineering Guide 的 AI Agents 章节详细介绍了如何将 ReAct 与工具调用、函数调用结合,构建能自主完成复杂任务的 AI 系统。

对比:纯推理 vs ReAct(推理+行动)

❌ 纯推理(无法获取最新信息)
问题:今天北京的空气质量指数是多少?

(模型知识有截止日期,
无法获取实时数据,只能编造或拒绝回答)
✅ ReAct(推理+搜索行动)
问题:今天北京的空气质量指数是多少?

请按 Thought → Action → Observation 循环思考:

Thought 1: 我需要查询今天北京的实时空气质量。
Action 1: Search("北京 今日空气质量指数")
Observation 1: [搜索引擎返回的结果]

Thought 2: 我已获取到实时数据,可以回答了。
Action 2: Finish("今天北京的空气质量指数为 [搜索结果],
           空气质量等级为 [搜索结果]。")

# 注意:Action 中的 Search() 需要配合函数调用/工具使用功能
# 模型本身无法搜索,需要通过 API 的 function calling 实现
第 19 章

自我批评与自我纠正

高级通用 让模型检查和改进自己的输出。

Learn Prompting 高级课程将这类技术归类为Self-Criticism Prompting(自我批评提示),包含多种具体方法。核心思想是:让模型生成答案后,再让模型审视和改进自己的答案。

四种自我批评技术

技术英文原理
自我评估Self-Evaluation (SE)让模型评估自己的回答质量
自我优化Self-Refine (SR)让模型基于反馈改进自己的回答
思维链验证Chain-of-Verification (COVE)让模型验证自己推理过程中的每一步
重述与回答Rephrase and Respond (RaR)先让模型重述问题再回答

实践案例:自我优化

Self-Refine 流程
# 步骤 1:生成初始回答
请回答:什么是量子计算?

# 步骤 2:让模型自我批评
请审查你刚才的回答,从以下角度评估:
1. 准确性:有没有事实错误?
2. 清晰度:普通读者能理解吗?
3. 完整性:有没有遗漏重要内容?
请指出需要改进的地方。

# 步骤 3:基于批评改进
请根据你刚才提出的改进建议,
重新写一个更好的回答。
✅ Anthropic 的自我检查技巧

Anthropic 指南推荐了一个简单有效的自我检查指令:"Before you finish, verify your answer against [test criteria]."(在完成前,请根据测试标准验证你的答案。)这对编程和数学任务尤其有效。

对比:直接回答 vs 自我批评后回答

❌ 直接回答(无自我检查)
请解释什么是量子纠缠。
✅ 自我批评流程(生成→审查→改进)
# 步骤1:生成初始回答
请解释什么是量子纠缠,面向普通读者。

# 步骤2:让模型自我批评(将步骤1输出粘贴到此处)
请审查你刚才的回答,从以下角度评估:
1. 准确性:有没有事实错误?
2. 清晰度:普通读者能理解吗?
3. 完整性:有没有遗漏重要内容?
4. 比喻是否恰当?
指出需要改进的地方。
你的回答:[步骤1的输出]

# 步骤3:基于批评改进(将步骤2输出粘贴到此处)
请根据你刚才提出的改进建议,
重新写一个更好的回答。
改进建议:[步骤2的输出]
📚 权威参考

Learn Prompting Self-Criticism Prompting(自我批评提示) · Anthropic Self-correction Chain(自我纠正链) · Prompt Engineering Guide Self-Refine

第 20 章

迭代式提示开发

没有完美的"第一次提示"——迭代是提示词工程的核心工作流。

DeepLearning.AI 课程的"Iterative"章节传达了一个核心理念:好的提示词不是一次写成的,而是迭代出来的。吴恩达将这个过程描述为一个循环:

① 想法 Idea
→
② 编写提示
→
③ 测试运行
→
④ 分析结果
→
⑤ 改进
↺

迭代的实际案例

假设你要让模型总结一篇技术文章的要点:

第 1 轮(初稿)
总结这篇文章。
[文章内容]
第 2 轮(改进)
请用 3 个要点总结这篇文章,
每个要点不超过 30 字。
[文章内容]
第 3 轮(发现问题)
结果太笼统,缺少具体数据。
第 4 轮(再改进)
请用 3 个要点总结这篇文章,
每个要点不超过 30 字,
必须包含文章中的关键数据。
如果文章没有数据,注明"无数据"。
[文章内容]

OpenAI 的生产级建议

OpenAI 指南针对生产环境提出了更系统的迭代管理建议:

  • 构建测试套件:建立一组代表性输入和期望输出,每次修改提示后跑一遍
  • 版本化管理:将提示存储在代码中,通过代码审查和部署流程管理变更
  • 固定模型快照:生产应用固定到特定模型版本(如 gpt-4.1-2025-04-14)以确保一致行为
  • 分阶段发布:使用功能标志逐步推送提示变更
⚠️ 常见的迭代陷阱

① 过度拟合:为了一个案例反复修改提示,导致其他案例变差;② 缺乏测试集:没有系统性测试,只凭感觉判断"好像好了";③ 一次改太多:同时修改多个地方,无法判断哪个改动有效。建议一次只改一个变量。

第 21 章

五大应用场景

DeepLearning.AI 课程的核心实践——掌握这五大场景,覆盖大部分日常需求。

场景一:文本摘要 Summarizing

📌 是什么

将长文本压缩为简短摘要,保留核心信息。

💡 为什么

信息过载时代,快速获取要点是核心需求。

✅ 怎么做

明确长度、聚焦角度、指定输出格式。

摘要提示
你的任务是生成一段简短的摘要。

请将以下用三重引号包裹的产品评论,
总结为一句话,聚焦于"产品质量"方面。

评论:"""
我买了这台搅拌机已经三个月了...
"""

场景二:信息推断 Inferring

📌 是什么

从文本中提取情感、主题、关键词等隐含信息。

💡 为什么

文本中很多信息没有直接写出,需要"读懂言外之意"。

✅ 怎么做

明确要提取什么,用结构化输出。

推断提示
请从以下评论中推断:
1. 情感倾向(正面/负面/中性)
2. 提到的产品特征列表
3. 是否包含购买建议

以 JSON 格式输出。

评论:"这款耳机的降噪效果一流,
戴久了也不夹耳朵,强烈推荐!"

场景三:文本转换 Transforming

📌 是什么

语言翻译、格式转换、语法纠错、语气调整等。

💡 为什么

文本"换一种形式"是高频需求,模型天然擅长。

✅ 怎么做

明确源格式和目标格式,提供转换规则。

转换提示
请将以下中文翻译为英文,
语气保持正式商务风格,
并纠正可能的语法错误:

原文:"我们希望能跟贵司进一步探讨
合作的可能性,期待您的回复。"

场景四:内容扩展 Expanding

📌 是什么

根据简短提示生成完整的长文本内容。

💡 为什么

从"一个想法"到"一篇文章",是创意工作的核心。

✅ 怎么做

设定角色、语气、长度、结构,给足上下文。

扩展提示
你是一位客户服务专员。
请根据以下客户反馈,
写一封回复邮件。

要求:
- 语气:专业、热情、有同理心
- 长度:150-200 字
- 结构:感谢反馈 → 回应问题 → 解决方案 → 表达期待
- 如果是投诉,先道歉再给方案

客户反馈:"收到的商品有破损,
客服电话一直打不通。"

场景五:聊天机器人 Chatbot

📌 是什么

构建能进行多轮对话的 AI 助手,维持角色和上下文。

💡 为什么

聊天是最高频的 AI 交互形式,也是最复杂的应用之一。

✅ 怎么做

系统提示设定角色和规则,管理对话历史。

聊天机器人系统提示
# 系统提示(设定角色和行为规则)
你是"OrderBot",一家披萨店的自动
接单机器人。你的职责是:

1. 热情问候顾客
2. 收集订单信息(披萨尺寸、配料、饮料)
3. 确认订单和配送地址
4. 回答关于菜单的问题
5. 始终保持礼貌和专业

如果顾客问了与点餐无关的问题,
委婉地将话题引回订单。

# 对话历史会自动维护
# 每轮将 system + history + new user message 一起发送
📚 权威参考

DeepLearning.AI 课程五大应用场景 · OpenAI Prompt Engineering 指南 · OpenAI Cookbook Structured Output & Function Calling

第 22 章

安全与伦理

Learn Prompting 课程特别强调的安全意识——负责任地使用提示词工程。

幻觉 Hallucination

📌 是什么

模型生成看似合理但实际错误或虚构的内容。Learn Prompting 入门课专设一章讲解。

💡 为什么

模型是"概率生成器",不确定时会生成"最可能"而非"最正确"的内容。

✅ 怎么做

提供准确上下文(RAG)、要求引用来源、明确"不确定时说不知道"。

减少幻觉的提示技巧
请基于以下提供的文档回答问题。

重要规则:
1. 只使用文档中的信息回答
2. 如果文档中没有相关信息,
   请直接说"根据提供的资料无法回答"
3. 不要编造或推测
4. 引用你使用的文档段落

文档:[相关文档]
问题:[用户问题]

偏见 Bias

📌 是什么

模型输出中存在对某些群体的不公平倾向或刻板印象。

💡 为什么

训练数据来自互联网,包含人类社会已有的偏见。

✅ 怎么做

审查输出、要求中性表述、避免引导性提示。

对抗性提示 Adversarial Prompting

Prompt Engineering Guide 专门设置了"风险和误用"章节,涵盖三类安全风险:

风险类型说明防御方法
提示注入
Prompt Injection
在输入中嵌入恶意指令,劫持模型行为分隔输入数据、限制模型权限
提示泄露
Prompt Leaking
诱导模型泄露系统提示中的机密信息不在提示中放敏感信息、添加防泄露指令
越狱
Jailbreaking
绕过模型的安全限制不依赖提示做安全防线、使用平台安全功能
🚨 安全第一原则

Learn Prompting 的 AI 安全课程强调:提示词不是安全防线。对于关键安全需求,应依赖模型提供商的安全机制(如 OpenAI 的 Moderation API、Anthropic 的 Constitutional AI),而非仅在提示中写"不要做坏事"。提示层面的防御是纵深防御的一层,而非唯一手段。

✅ 负责任使用清单

① 不利用提示词绕过安全限制;② 审查 AI 生成内容的准确性和偏见;③ 不在提示中放入敏感个人信息;④ 对 AI 生成的重要决策保持人工审核;⑤ 遵循所在组织的 AI 使用政策。

📚 权威参考

Learn Prompting 安全与伦理章节 · Prompt Engineering Guide Risks and Misuses(风险和误用) · OpenAI 安全最佳实践 · Anthropic Responsible AI

第 23 章

不同模型的差异化提示

OpenAI 和 Anthropic 各自的指南揭示了不同模型需要不同的提示策略。

GPT 模型 vs 推理模型

OpenAI 官方指南明确区分了两类模型的提示策略:

维度GPT 模型推理模型 (Reasoning Models)
特点快速、成本高效、高度智能生成内部思维链,擅长复杂任务
指令风格需要精确、明确的指令只需高层级指导即可
OpenAI 类比像初级同事——需要明确指令像高级同事——给目标即可
速度/成本快、便宜慢、贵
适用场景大多数日常任务复杂多步推理、规划

Claude 的独特之处

Anthropic 指南揭示了 Claude 模型的几个特点:

1. 对清晰度的极高要求

Claude 被比作"聪明但缺乏背景的新员工"——你解释得越精确,结果越好。模糊的指令效果会明显变差。

2. 自适应思考

Claude 新一代模型(Claude 3.5+)使用自适应思考,模型自动决定何时推理、推理多少。不需要手动加"Let's think step by step",模型会自行判断。通过 effort 参数控制思考力度。

3. 预填充技巧

预填充(Prefilling)是指在 assistant 消息中提供部分内容,让模型从该内容开始续写。这在旧版 Claude 中可用于控制输出格式(如强制以 JSON 开头)。新版 Claude 推荐改用 XML 格式指示器控制输出格式。详见 Anthropic Prefilling 指南。

4. 对"think"一词敏感

有趣的是,Anthropic 指出某些 Claude 模型对"think"一词特别敏感。当扩展思考禁用时,建议使用"consider""evaluate""reason through"等替代词。

ℹ️ 通用原则

尽管不同模型有差异,但核心原则是通用的:清晰具体、提供上下文、使用示例、给推理空间、迭代优化。掌握了这些通用方法,切换模型时只需微调,无需推倒重来。

格式控制技巧

Anthropic 提供了四种有效的格式控制方法:

格式控制技巧
# 1. 告诉做什么,而非不做什么
# ❌ "Do not use markdown"
# ✅ "Your response should be composed of
#     smoothly flowing prose paragraphs."

# 2. 使用 XML 格式指示器
Write the prose sections in
<smoothly_flowing_prose_paragraphs> tags.

# 3. 匹配提示风格到期望输出
# 提示中少用 markdown,输出中的 markdown 也会减少

# 4. 为特定格式使用详细提示
# 用大段指令精确描述格式要求
第 24 章

图像与视频生成提示词

进阶通用 从文本生成图像和视频的提示词写作方法——多模态 AI 时代的必备技能。

随着 DALL·E、GPT Image、Sora、Midjourney 等模型的发展,图像生成(Text-to-Image)和视频生成(Text-to-Video)已成为提示词工程的重要领域。与文本生成不同,图像和视频提示词需要描述视觉元素而非逻辑推理。本章综合 OpenAI 官方图像生成指南、Sora 视频生成指南和 OpenAI Cookbook 的最佳实践,提炼通用方法论。

一、图像生成提示词技巧

📌 是什么

通过文字描述让 AI 生成图像。提示词需要描述主体、风格、构图、光线、色调等视觉要素。

💡 为什么

图像生成模型不像文本模型那样理解抽象指令。越具体、越视觉化的描述,生成结果越精确。

✅ 怎么做

按"主体→风格→构图→光线→细节"的顺序描述,每个维度都给出明确信息。

图像提示词的五大要素

要素说明示例
主体(Subject)画面的核心对象"一只橘猫坐在窗台上"
风格(Style)艺术风格或视觉风格"水彩画风格 / 写实摄影 / 吉卜力动画风格"
构图(Composition)画面布局和视角"特写镜头 / 俯视图 / 三分法构图"
光线(Lighting)光照条件和氛围"黄金时刻阳光 / 柔和窗光 / 逆光剪影"
细节(Details)颜色、材质、背景等"暖色调 / 木纹桌面 / 虚化背景"

对比:模糊描述 vs 精确描述

❌ 模糊描述(结果不可控)
画一只猫在窗边。
✅ 精确描述(五大要素齐全)
一只橘色虎斑猫蜷缩在木质窗台上,
阳光从左侧窗户洒入形成温暖逆光。
水彩画风格,柔和色调,
特写构图,背景虚化的绿色植物。
📎 可复制 — 图像生成提示词模板
[主体描述], [风格], [构图], [光线], [细节/色调]

# 实例:
一只穿着围裙的熊猫厨师在厨房里拉面,
吉卜力动画风格,中景构图,
温暖的室内灯光,蒸汽缭绕,
暖色调,木质厨房背景。

图像生成的进阶技巧

  • 多轮迭代:先生成初版,再通过追加指令微调(如"把风格改为写实""去掉背景中的植物")
  • 参考图片:提供参考图让模型学习风格或内容(如"生成一个包含参考图中所有物品的礼篮")
  • 质量等级:草稿迭代用 low 质量(快速),最终成品用 high 质量
  • 遮罩编辑:用遮罩指定需要修改的区域,保持其余部分不变
  • 文字渲染:如需图中包含文字,在提示词中用引号明确标注(如标签上写着 "Relax & Unwind")
⚠️ 图像生成的局限

① 文字精度:图中的文字可能不够精确;② 一致性:多次生成难以保持角色/品牌完全一致;③ 构图控制:对结构化布局的精确控制仍有限;④ 处理时间:复杂提示可能需要长达 2 分钟。


二、视频生成提示词技巧

📌 是什么

通过文字描述让 AI 生成短视频。与图像相比,视频提示词还需要描述镜头运动和时间动态。

💡 为什么

视频是时间维度的艺术。缺少镜头和动作描述,模型会自行"发明"不必要的细节,导致结果不可控。

✅ 怎么做

按"镜头类型→主体→动作→场景→光线"五要素描述,每个要素都给出明确信息。

🔗 权威来源

OpenAI Sora 官方指南指出:"This level of specificity helps the model produce consistent results without inventing unwanted details."(这种具体化描述帮助模型产生一致的结果,避免生成不需要的细节。)

视频提示词的五大核心要素

要素英文说明示例
镜头类型Shot Type相机视角和运动方式广角镜头 / 特写 / 跟踪镜头 / 缓慢推轨
主体Subject视频中的主要对象"一个放风筝的孩子"
动作Action主体在做什么,如何运动"镜头缓慢向上摇,风筝越飞越高"
场景Setting发生的地点和环境"草地上,远处有山丘"
光线Lighting光照条件和氛围"黄金时刻阳光"

对比:缺少要素 vs 五要素齐全

❌ 缺少要素(模型自行发挥)
拍一个关于咖啡的视频。
✅ 五要素齐全(结果可控)
特写镜头:一杯冒着热气的咖啡放在木桌上,
晨光透过百叶窗洒下,柔和景深。
(Shot Type: Close-up | Subject: 咖啡杯 |
Action: 冒热气 | Setting: 木桌 |
Lighting: 百叶窗晨光)
📎 可复制 — 视频生成提示词模板
[镜头类型] of [主体], [动作], [场景], [光线].

# 实例 1(风景):
广角跟踪镜头:一辆青色跑车行驶在沙漠公路上,
热浪可见,头顶烈日。

# 实例 2(人物):
特写镜头:一个孩子在草地上放红色风筝,
黄金时刻阳光,镜头缓慢向上摇。

# 实例 3(微距):
缓慢推轨镜头:穿行于蓝色暮光下的微缩纸城市,
柔和雾气,窗户灯光闪烁亮起。

视频生成的进阶技巧

  • 角色引用:使用角色功能时,必须在提示词中逐字提及角色名称,仅传递角色 ID 不足以保持一致性
  • 视频扩展:扩展时描述场景如何继续发展(如"镜头升过屋顶,展现日出"),每次最多扩展 20 秒
  • 视频编辑:每次编辑仅做一个明确定义的改动(如"将怪物颜色改为橙色"),小步迭代比大改更可靠
  • 色调控制:可通过编辑指令调整整体色调(如"将色调转换为青色、沙色和锈色,带暖色背光")
  • 模型选择:快速迭代用 sora-2,高分辨率电影级素材用 sora-2-pro
✅ 通用心法:图像与视频提示词

① 具体胜于抽象:描述"橘色虎斑猫"而非"一只猫";② 结构化描述:按要素分步描述,不要堆砌;③ 迭代思维:先生成再微调,而非追求一次完美;④ 风格关键词:积累有效的风格词库(如"赛博朋克""极简主义""胶片质感");⑤ 参考图优先:有参考图时先提供,再描述修改需求。

第 25 章

OpenAI Cookbook 实践指南

OpenAI 官方示例与指南集合,覆盖提示工程、Agent 开发、RAG、函数调用、评估、多模态等 98 篇文章。提炼核心方法论与可直接运行的代码示例。

什么是 OpenAI Cookbook

定位:不是 API 文档,而是"实战经验手册"——每个示例都围绕一个具体场景,给出完整代码、关键参数和避坑指南。

核心理念:评估驱动开发(Eval-driven Development)。先建立评估基准,再写提示/构建 Agent,然后迭代优化。

🔗 官方入口

GitHub 仓库:github.com/openai/openai-cookbook · 网站:cookbook.openai.com

主题分类速览

按 2026 年 7 月内容整理,覆盖 11 大主题:

提示工程

各模型 Prompting Guide

GPT-5、GPT-4.1、Codex、图像/视频/实时模型的专用提示指南。

Agent

Agent 开发与编排

Agents SDK、多 Agent 协作、记忆、沙箱、治理与护栏。

RAG

检索增强生成

Responses API 的 File Search、PDF RAG、多模态 RAG。

工具调用

函数调用与结构化输出

Responses API、MCP 工具、Web Search、结构化输出。

评估

Evals 与评估飞轮

宏观评估、Promptfoo、图像/实时评估、评估驱动系统设计。

多模态

图像、音频、视频

图像生成提示、视觉文档理解、语音翻译、实时 API。

一、提示工程最佳实践

Cookbook 中提示工程内容最丰富,核心不是"背诵技巧",而是"按模型特性写提示"。

1. 不同模型,不同提示策略

模型/能力提示策略差异
GPT-5(推理模型)不需要"逐步思考"指令,给足上下文和明确目标,让它自行推理。
GPT-4.1(非推理模型)需要清晰指令、结构化格式、Few-shot 示例。
Codex(编程模型)用 AGENTS.md 和 PLANS.md 描述项目上下文,用 goal 描述任务。
GPT Image / Sora用"主体+细节+风格+光线+构图+镜头"的六要素描述。
Realtime(实时模型)用短句、明确指令、避免一次性塞太多信息。

2. 评估驱动的提示优化

不要凭感觉改提示。Cookbook 推荐的流程是:

  1. 建立可重复的评估集(输入+期望输出+评分标准)
  2. 用 baseline 提示跑一遍,得到初始分数
  3. 每次只改一个变量,对比分数变化
  4. 用 Codex 或优化器自动修复提示
💡 推荐文章

《Building resilient prompts using an evaluation flywheel》——用评估飞轮构建稳定提示,是 Cookbook 提示工程的核心方法论。

3. 提示迁移与缓存

从旧模型迁移到新模型时,模型行为会变化。Cookbook 建议:

  • 用 Prompt Migration Guide 系统迁移
  • 用 Prompt Caching 201 降低重复前缀的延迟和成本
  • 用 Prompt Personalities 统一品牌风格

二、Agent 开发

Agent 是 Cookbook 当前最活跃的领域,核心框架是 OpenAI Agents SDK。

1. Agent 改进闭环

Cookbook 推荐的 Agent 生产流程:

Agent 改进循环
Traces(追踪) → Evals(评估) → Codex(修复) → 重新部署 → 回到 Traces

Traces 记录 Agent 每一步思考、工具调用和输出;Evals 用量化指标评估效果;Codex 根据失败案例自动修复代码或提示。

2. 记忆与沙箱

可靠 Agent 需要两个基础:

  • 长期记忆:跨会话保留关键信息,支持只读/只生成/多轮分组模式。
  • 沙箱执行:在隔离环境(Docker、E2B、Daytona 等)中运行 Agent,避免直接操作生产环境。

3. 代码示例:最简文本 Agent

Python
from agents import Agent, Runner

agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant"
)

result = Runner.run_sync(agent, "Write a haiku about recursion.")
print(result.final_output)

三、RAG 与文件搜索

Cookbook 把 RAG 简化为"让模型能读取外部文档"。

1. 用 File Search 做 PDF RAG

Responses API 内置 File Search 工具,不需要自己搭建向量数据库:

Responses API + File Search
from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-5.5",
    input="这篇论文的核心贡献是什么?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": ["vs_xxx"]
    }]
)

2. 图像理解 + RAG

上传带图文 PDF 或图片,用 File Search + Vision 做跨模态检索。适合发票、说明书、设计稿等场景。

3. 自建 Embeddings 检索

对于需要完全控制的场景,用 text-embedding-3 模型生成向量,存入 Pinecone/Milvus/PostgreSQL 等向量库,再检索注入提示。

四、函数调用与结构化输出

把模型输出变成可编程数据,是落地应用的关键。

1. 结构化输出

强制输出 JSON
response = client.responses.create(
    input=[{"role": "user", "content": "提取订单信息"}],
    model="gpt-5.5",
    text={"format": {"type": "json_object"}}
)

更严格的做法是传 JSON Schema,让模型按 schema 生成字段。

2. 多工具编排

Responses API 可以在一次请求中协调多个工具:Web Search、File Search、自定义函数。模型会自动决定调用哪个工具、传递什么参数。

3. MCP 工具

MCP(Model Context Protocol)让 Agent 连接外部服务(GitHub、Slack、数据库等)。Cookbook 有专门指南讲解 Responses API 的 MCP Tool 用法。

五、评估(Evals)

评估是 Cookbook 反复强调的核心能力,没有评估就没有可靠系统。

1. 为什么需要评估

提示改了之后,"感觉更好"不可靠。必须量化:准确率、召回率、幻觉率、成本、延迟。Cookbook 推荐把评估做成 CI 的一部分。

2. 宏观评估(Macro Evals)

对 Agent 系统来说,单条用例评估不够,需要端到端场景评估:Agent 是否完成了用户目标?是否走了不必要的步骤?是否安全合规?

3. 推荐工具

  • OpenAI Evals:官方框架,适合结构化评估
  • Promptfoo:社区推荐,适合提示对比和回归测试
  • Langfuse:与 Agent 追踪结合,做在线评估

六、多模态:图像、音频、视频

Cookbook 的多模态内容越来越丰富,核心是把"文本提示技巧"扩展到其他模态。

1. 图像生成提示

核心要素:主体、细节、风格、光线、构图、镜头。Cookbook 推荐先写简短提示,再逐步添加细节,而不是一开始写大段。

2. 视觉理解

上传图片或 Base64,让模型回答图片内容。关键技巧:在提示中明确告诉模型要关注什么、按什么格式输出。

3. 语音与实时

Whisper 做转写和翻译,Realtime API 做低延迟语音对话。Cookbook 比较了不同语音转文字方法的优劣。

七、核心代码示例

示例 1:评估驱动提示优化

伪代码:评估飞轮
import json

# 1. 定义评估集
examples = [
    {"input": "...", "expected": "..."},
]

# 2. 定义评分函数
def score(output, expected):
    return output.strip() == expected.strip()

# 3. 循环:改提示 → 跑评估 → 看分数
for prompt_version in prompt_versions:
    total = sum(score(run(prompt_version, ex["input"]), ex["expected"]) for ex in examples)
    print(f"{prompt_version}: {total}/{len(examples)}")

示例 2:带工具调用的 Agent

Python
from agents import Agent, function_tool, Runner

@function_tool
def get_weather(city: str) -> str:
    return f"{city} 今天晴天,25°C"

agent = Agent(
    name="WeatherBot",
    instructions="你是天气助手,需要时调用 get_weather。",
    tools=[get_weather]
)

result = Runner.run_sync(agent, "杭州天气如何?")
print(result.final_output)

学习路径建议

目标推荐文章
写好提示GPT-5 Prompting Guide、GPT-4.1 Prompting Guide、Building resilient prompts using an evaluation flywheel
构建 AgentBuild an Agent Improvement Loop with Traces, Evals, and Codex、Parallel Agents with the OpenAI Agents SDK
让 Agent 读文档Doing RAG on PDFs using File Search、Image Understanding with RAG
落地生产Macro Evals for Agentic Systems、Building Governed AI Agents
📚 权威参考

OpenAI Cookbook github.com/openai/openai-cookbook · cookbook.openai.com

第 26 章

OpenAI 热门开源项目精选

按 GitHub Star 数量排序,精选 5 个 OpenAI 官方最热门的开源项目。每个项目分别标注适合初学者和进阶者的学习点。

📌 选择标准

以 GitHub Star 数量为初选条件,结合项目实际影响力筛选。Codex 和 Agents SDK 是 2025 年后爆发的新项目,星数增长迅速,代表了 OpenAI 当前重点方向。数据截至 2026 年 7 月。

1. Whisper — 通用语音识别模型

1
⭐ ~105k stars · Python · 语音识别/翻译

基于 Transformer 的序列到序列模型,通过特殊 token 统一语音识别、翻译、语言识别任务。单个模型替代传统多阶段语音处理流水线。

初学者 快速上手

  • 一行命令安装:pip install -U openai-whisper
  • 命令行直接转写音频:whisper audio.mp3 --model turbo
  • 了解模型选型:turbo(速度精度平衡)、medium/large(翻译任务)
  • 理解语音任务的基本流程:加载音频 → 生成 Mel 频谱 → 解码

进阶 深入价值

  • 学习多任务学习:用特殊 token 控制不同任务
  • 研究 30 秒滑动窗口自回归推理机制
  • 用底层 API 自定义语言检测和解码参数
  • 参考项目工程化:black/flake8/isort/pre-commit/pyproject.toml
Python 快速转写
import whisper

model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])

2. Codex — 终端编程 Agent

2
⭐ ~99k stars · Rust/TypeScript · 编程 Agent

OpenAI 官方终端编程助手,支持自然语言描述任务、自动修改代码、执行命令、运行测试。核心用 Rust 实现,CLI 用 TypeScript/Node.js。

初学者 快速上手

  • 安装:npm install -g @openai/codex
  • 用自然语言让 Agent 改代码:codex "给这个函数加单元测试"
  • 观察 AGENTS.md 如何给 Agent 提供项目上下文
  • 理解"终端原生 Agent"的交互模式

进阶 深入价值

  • 研究 Rust 核心与 JS CLI 的混合架构
  • 学习安全沙箱设计:Worktree、Docker、DevContainer
  • 理解 Hooks 系统:Pre/Post tool use 的 JSON Schema 驱动
  • 分析多平台 CI/CD 和供应链安全加固实践
Codex CLI 基本用法
# 安装
npm install -g @openai/codex

# 在终端中直接下达任务
codex "重构 utils.py 中的错误处理逻辑"

# 诊断安装状态
codex doctor

3. openai-cookbook — 官方示例与最佳实践

3
⭐ ~74k stars · Python/Jupyter · 示例指南

官方示例库,98 篇文章覆盖提示工程、Agent、RAG、函数调用、评估、多模态等。是学习 OpenAI 生态的最佳实践手册。

初学者 快速上手

  • 从 GPT-4.1 / GPT-5 Prompting Guide 开始学提示技巧
  • 跟着 Few-shot、系统消息、结构化输出 Notebook 跑代码
  • 理解 API Key 配置和环境变量管理
  • 把 cookbook 示例作为起点改写成自己的项目

进阶 深入价值

  • 研究评估飞轮和 Agent 改进闭环
  • 学习 RAG、MCP、多工具编排的完整实现
  • 参考 Realtime、图像生成、语音等高级示例
  • 理解如何从原型到生产的系统设计
推荐的入门路径
1. GPT-4.1 Prompting Guide
2. Introduction to Structured Outputs
3. Doing RAG on PDFs using File Search
4. Build an Agent Improvement Loop with Traces, Evals, and Codex

4. openai-python — 官方 Python SDK

4
⭐ ~31k stars · Python · 官方 SDK

OpenAI 官方 Python 库,提供同步/异步客户端、流式输出、工具调用、结构化输出、错误处理、Azure/Bedrock 适配等完整能力。

初学者 快速上手

  • 安装:pip install openai
  • 学会用环境变量管理 API Key
  • 掌握 Chat Completions 和 Responses API 两种调用方式
  • 理解流式输出、错误处理、重试机制

进阶 深入价值

  • 学习 AsyncOpenAI 异步客户端和并发优化
  • 研究 Realtime API 的 WebSocket 事件处理
  • 理解工作负载身份认证(K8s/Azure/GCP)
  • 参考 Pydantic 类型系统和 Stainless 自动生成的 SDK 设计
Responses API 基本调用
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5.5",
    input="用一句话总结递归。"
)
print(response.output_text)

5. openai-agents-python — 多智能体框架

5
⭐ ~28k stars · Python · Agent 框架

OpenAI 官方 Agents SDK,支持文本 Agent、沙箱 Agent、实时语音 Agent。核心概念包括 Agent、Tool、Handoff、Guardrail、Tracing、Session。

初学者 快速上手

  • 安装:pip install openai-agents
  • 4 行代码运行第一个 Agent
  • 理解 Agent、Tool、Handoff 三个核心概念
  • 跟着 examples/basic 跑官方示例

进阶 深入价值

  • 研究 Sandbox Agent 的隔离执行架构
  • 学习长期记忆和跨 Session 状态管理
  • 理解多 LLM 供应商支持(100+ 模型)的实现
  • 参考 Tracing 系统和 Guardrail 设计
最简 Agent 示例
from agents import Agent, Runner

agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant"
)

result = Runner.run_sync(agent, "写一首关于递归的俳句。")
print(result.final_output)

学习建议

你的目标推荐项目学习路径
快速调用 OpenAI APIopenai-python安装 → 同步调用 → 流式 → 异步 → 工具调用
写好提示词openai-cookbookPrompting Guide → 结构化输出 → 评估飞轮
做语音应用Whisper命令行转写 → Python API → 模型选型 → 底层 API
构建 AI Agentopenai-agents-python最简 Agent → Tool → Handoff → Sandbox → 记忆
让 AI 辅助编程Codex安装 CLI → 下达任务 → 研究 AGENTS.md → 沙箱安全
📚 权威参考

OpenAI GitHub 官方组织 github.com/openai · Star 数据截至 2026 年 7 月

第 27 章

工作流与智能体实践

高级通用 从提示词技术到系统架构——掌握工作流与智能体的设计模式,构建可生产的 AI 应用。

前面的章节(提示链、ReAct、RAG)教你的是提示词层面的技术。当任务复杂到需要多个步骤协同、多个模型分工、或让模型自主决策时,就需要从"提示词工程"升级到"系统架构设计"。本章整合八大权威知识来源,从概念选型到企业实战,构建完整的"概念→选型→设计→实战→生产化→学习路径"闭环。

🔗 八大权威知识来源

Anthropic Building effective agents · OpenAI Agents SDK 官方文档 · Prompt Engineering Guide LLM Agents · LangChain LangGraph 工作流编排 · 扣子 Coze 官方平台 · Dify 官方开发文档 · DeepLearning.AI Agent 课程 · LangSmith 可观测性平台

零、快速上手:5 分钟搭建第一个工作流

理论先放一边,动手感受一下。以下三条路径从零代码到代码框架,选择适合你的方式立即开始:

🟢 路径 A:用扣子 Coze 搭建文章生成工作流(零代码,5 分钟)

📋 操作步骤

① 打开 coze.cn → 登录 → 工作空间 → 资源库 → 点「+」→ 选「工作流」
② 画布上已有「开始」和「结束」节点。点「+」添加「大语言模型」节点,连线开始→大模型
③ 在开始节点添加输入参数 topic(String 类型)
④ 大模型节点提示词写:请根据主题「{{topic}}」写一篇800字的文章,结构清晰
⑤ 结束节点输出参数选大模型输出 → 点「试运行」→ 输入"人工智能的未来"→ 查看结果

✅ 进阶练习

在开始和大模型节点之间加入「搜索」插件节点,让 AI 先搜索最新资料再写文章——这就是最简单的 RAG 工作流。再添加「条件判断」节点做质量检查点——这就是提示链模式。
📖 参考教程:Coze 工作流零代码教程(CSDN) · 扣子工作流实战案例(今日头条) · 客户跟进自动化实战(今日头条)

🟡 路径 B:用 Dify 搭建知识库问答(Docker 部署,30 分钟)

📋 操作步骤

① Docker 部署:git clone https://github.com/langgenius/dify.git && cd dify/docker && docker compose up -d
② 访问 http://localhost:3000,完成管理员注册,在模型供应商页面配置 API Key
③ 创建「知识库」→ 上传 PDF/Markdown 文档 → 分段策略设为 512 tokens、64 重叠
④ 创建「Chatflow」应用 → 添加「知识库检索」节点 + 「LLM」节点 → 连线
⑤ LLM 节点提示词:基于以下知识回答用户问题:{{context}}\n用户问题:{{query}} → 测试 → 发布

✅ 进阶练习

在 Chatflow 中加入「问题分类器」节点,将投诉类问题路由到人工审核分支——这就是企业级客服的雏形。加入「迭代」节点实现评估者-优化者模式。
📖 参考教程:Dify 官方文档 · Dify 企业级 Agent 实战指南 · 基于 Dify 复刻吴恩达 Agent Workflow

🔴 路径 C:用 LangGraph 搭建带条件路由的状态图(Python,需编程基础)

pip install langgraph langchain-openai
pip install langgraph langchain-openai

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator

# 1. 定义状态(所有节点共享的数据结构)
class State(TypedDict):
    messages: Annotated[list, operator.add]

# 2. 定义节点函数(每个节点接收状态、返回状态更新)
def classify(state: State) -> State:
    # 实际项目中这里调用 LLM 做意图分类
    return {"messages": ["已分类"]}

def handle_refund(state: State) -> State:
    return {"messages": ["退款处理完成"]}

def handle_tech(state: State) -> State:
    return {"messages": ["技术支持完成"]}

# 3. 定义路由函数(决定下一步走向哪个节点)
def route(state: State) -> str:
    last = state["messages"][-1].lower()
    if "refund" in last: return "refund"
    if "tech" in last: return "tech"
    return END

# 4. 构建状态图:节点 + 边 + 条件路由
workflow = StateGraph(State)
workflow.add_node("classify", classify)
workflow.add_node("refund", handle_refund)
workflow.add_node("tech", handle_tech)
workflow.set_entry_point("classify")
workflow.add_conditional_edges("classify", route)
workflow.add_edge("refund", END)
workflow.add_edge("tech", END)

# 5. 编译并运行
app = workflow.compile()
result = app.invoke({"messages": ["我要退款"]})
print(result)  # {'messages': ['我要退款', '已分类', '退款处理完成']}
✅ 进阶练习

将 classify 节点替换为真正的 LLM 调用(使用 ChatOpenAI),让模型自动分类用户意图。加入 interrupt 实现人在回路审核——退款前暂停等待人工确认。
📖 参考教程:LangGraph 官方文档 · Dify+LangGraph 多智能体实战(CSDN)

⚠️ 三条路径的选择建议

非技术背景 / 快速验证想法 → 选 Coze(5 分钟出成果)
团队 / 企业级 / 需要私有化部署 → 选 Dify(开源可控,支持人工审核)
Python 开发者 / 需要精细控制 → 选 LangGraph(状态图 + 条件边 + 审计追踪)
三条路径学完后,回到下方第一节理解底层概念,再逐步深入。

一、核心概念:工作流 vs 智能体 🟢 入门

📌 是什么

工作流(Workflow):通过预定义代码路径编排 LLM 和工具的系统,执行路径由开发者设计。

智能体(Agent):LLM 动态控制自身流程和工具使用的系统,执行路径由模型自主决策。

💡 为什么

区分两者的核心在于控制权:工作流可控可预测,适合明确任务;智能体灵活但成本高,适合开放式问题。混淆两者会导致架构选型错误。

✅ 怎么做

从最简单方案开始:先尝试单次 LLM 调用 + 检索;不够再用工作流;工作流无法覆盖的灵活需求才用智能体。不要为了用 Agent 而用 Agent。

❌ 过度工程化(上来就用 Agent)
任务:将用户输入的邮件翻译成英文

# 错误做法:用自主 Agent 处理简单任务
# Agent 自主决策调用翻译工具、检查工具、修正工具...
# 成本高、延迟大、结果不可控

# 正确做法:单次 LLM 调用即可
请将以下邮件翻译成英文,保持商务语气:
[邮件内容]
✅ 合理架构(按需升级复杂度)
# 层级1:单次调用(90%的简单任务)
翻译邮件 → 直接调用 LLM

# 层级2:提示链工作流(需要分步的任务)
写文章 → 先生成大纲 → 检查大纲 → 写正文 → 审查

# 层级3:自主 Agent(开放式、不可预测步骤的任务)
"帮我研究竞品的定价策略并生成分析报告"
→ Agent 自主搜索、分析、判断是否需要更多信息
⚠️ 何时该用 / 不该用 Agent

该用 Agent:开放式问题、步骤不可预测、需要灵活工具调用、在可信环境中规模化执行。
不该用 Agent:任务步骤固定明确、延迟敏感、成本敏感、错误代价高昂(如医疗诊断直接输出)。Agent 的自主性意味着更高的成本和复合错误风险——每次自主决策都有出错概率,多步执行后错误会累积。

✅ 从简单开始:升级路径

Anthropic 建议的渐进式升级路径:① 单次 LLM 调用(90% 的简单任务)→ ② 单次调用 + 检索(RAG)(需要外部知识)→ ③ 工作流(需要多步编排)→ ④ 自主 Agent(开放式、不可预测步骤)。每一步只在前一步无法满足时才升级。不要为了用 Agent 而用 Agent——复杂度越高,成本和错误风险也越高。

二、平台工具全景图 🟢 入门

工作流与智能体的实现不限于一种方式——从零代码可视化平台到纯代码框架,各有适用场景。以下六大平台/工具覆盖从入门到生产全链路:

平台 / 工具定位适合人群核心能力学习成本
扣子 Coze
coze.cn
低代码可视化非技术 / 快速原型可拖拽工作流 + 插件市场 + 知识库 + 多 Agent 编排⭐
Dify
dify.ai
开源全栈平台团队 / 企业级Workflow + Chatflow + Agent 节点 + 人工审核 + 可观测性⭐⭐
LangGraph
官方文档
代码框架Python 开发者状态图 + 条件边 + 人在回路 + Checkpointer 审计⭐⭐⭐
OpenAI Agents SDK
GitHub
官方 SDKPython/TS 开发者Agent + Handoff + Guardrail + Tracing + 沙箱执行⭐⭐⭐
LangChain
官方文档
生态框架快速原型组件丰富 + RAG 全链路 + 多模型支持⭐⭐
纯代码
Responses API
无框架极致控制Responses API + Function Calling,零抽象开销⭐⭐⭐⭐
✅ 选型决策指引

非技术背景 → 选 Coze(零代码拖拽,最快出成果)
团队 / 企业级 → 选 Dify(开源可控,支持人工审核和可观测性)
需要审计 / 合规 → 选 LangGraph(状态图 + Checkpointer 全链路审计)
OpenAI 生态 → 选 Agents SDK(官方支持,Handoff/Guardrail/Tracing 一体化)
极致控制 → 选 纯代码(Responses API + Function Calling,零抽象开销)

三、工作流设计模式 🟡 进阶

Anthropic 从生产级项目中提炼出五种可组合的工作流模式,按复杂度递增排列。以下每种模式均增加适用场景、平台映射和生产注意事项,帮助你不仅理解概念,更能落地实施。

模式 1:提示链(Prompt Chaining)

将任务分解为顺序步骤,每步 LLM 调用处理前一步的输出。可在中间添加程序化检查点(gate)确保流程不跑偏。本指南第 15 章已介绍提示词层面的提示链,这里强调的是系统层面的编排——加入代码逻辑做检查和路由。

📎 提示链工作流 — 带检查点
# 系统层面提示链示例(伪代码)
# 步骤1:生成大纲
outline = llm("为'{topic}'生成文章大纲,5个部分")

# 检查点(gate):验证大纲质量
if not has_required_sections(outline):
    outline = llm("补充缺失部分到大纲: {outline}")

# 步骤2:基于大纲写正文
draft = llm("根据大纲写1000字文章: {outline}")

# 步骤3:审查
review = llm("审查文章,指出3个改进点: {draft}")

# 步骤4:修改定稿
    final = llm("根据审查建议修改: {draft} 建议: {review}")
平台实现方式
Coze工作流节点串联,条件节点做检查点(gate)
DifyLLM 节点 + 条件分支节点,支持错误分支兜底
LangGraph顺序边 + 条件边做 gate,Checkpointer 记录中间状态

📋 生产注意:检查点阈值需调优(太严导致频繁重试,太松导致质量下降);设置超时和最大重试次数;缓存中间结果以便故障恢复。

模式 2:路由分发(Routing)

对输入分类,导向专门的后续处理。实现关注点分离——为不同类型输入构建专用提示,避免"一个提示搞定所有"导致的性能下降。

📎 路由分发工作流 — 客服系统
# 路由分发工作流示例(伪代码)
# 步骤1:分类用户输入
category = llm("将用户查询分类为: general/refund/tech/support\n查询: {user_input}")

# 步骤2:根据分类路由到专用处理
if category == "refund":
    result = llm("你是退款专员,处理退款请求: {user_input}")
elif category == "tech":
    result = llm("你是技术支持,诊断技术问题: {user_input}")
elif category == "support":
    # 简单问题用小模型(成本低、速度快)
    result = llm_haiku("回答常见问题: {user_input}")
else:
    result = llm("通用客服回答: {user_input}")
平台实现方式
Coze条件判断节点 + 多工作流分支
Dify问题分类器节点 → 多个 LLM 节点并行处理
LangGraphadd_conditional_edges + 状态图路由

📋 生产注意:设置分类置信度阈值,低于阈值的走兜底路由;为新类别预留扩展入口;简单问题用小模型降低成本。

模式 3:并行化(Parallelization)

多个 LLM 同时处理任务,输出以程序化方式聚合。两种变体:分区(拆分为独立子任务并行)和投票(同一任务运行多次取多数/最优)。

📎 并行化工作流 — 多视角审查
# 并行化工作流示例(伪代码)
# 分区:同时从不同维度审查代码
security_review = llm("从安全角度审查代码: {code}")
performance_review = llm("从性能角度审查代码: {code}")
style_review = llm("从代码风格角度审查: {code}")

# 聚合结果
final_review = merge(security_review, performance_review, style_review)

# 投票变体:同一任务多次运行取多数
answers = [llm("解决数学问题: {problem}") for _ in range(5)]
final_answer = majority_vote(answers)
平台实现方式
Coze并行节点 + 结果聚合节点
Dify多个 LLM 节点并行执行 + 代码节点聚合
LangGraph并行分支 + join 操作符汇聚结果

📋 生产注意:控制并发数避免 API 限流;设置单个子任务超时;投票模式需奇数次调用避免平局。

模式 4:编排者-工作者(Orchestrator-Workers)

一个中央 LLM 动态分解任务,委派给工作者 LLM,再综合结果。与并行化的区别:子任务不是预定义的,而是编排者根据输入动态决定。

📎 编排者-工作者 — 多文件代码修改
# 编排者-工作者工作流示例(伪代码)
# 编排者:分析任务,动态决定需要修改哪些文件
plan = llm_orchestrator("""
任务:为项目添加用户登录功能
当前文件结构:{file_tree}
请决定需要修改哪些文件,以及每个文件的具体改动
""")

# 工作者:并行执行各文件的修改
changes = []
for file_task in plan.tasks:
    change = llm_worker(f"修改文件 {file_task.path}: {file_task.instruction}")
    changes.append(change)

# 编排者:综合所有修改
final_result = llm_orchestrator("综合以下修改: {changes}")
平台实现方式
Coze多 Agent 编排,主 Agent 分派子任务
DifyAgent 节点 + 工具调用,支持子工作流
LangGraphSupervisor 模式 + 子图(subgraph)委派

📋 生产注意:子任务错误隔离(一个失败不影响其他);部分失败时的合并策略;编排者需设定最大子任务数防止失控。

模式 5:评估者-优化者(Evaluator-Optimizer)

一个 LLM 生成响应,另一个 LLM 评估并反馈,循环迭代直到满足标准。类似人类作家反复打磨文档的过程。本指南第 19 章的"自我批评"是此模式的提示词层面实现。

📎 评估者-优化者 — 翻译迭代
# 评估者-优化者工作流示例(伪代码)
translation = llm("翻译这段文字为英文: {source_text}")

for iteration in range(max_iterations):
    # 评估者:审查翻译质量
    feedback = llm_evaluator("""
    审查翻译质量,从以下角度评估:
    1. 准确性:有无误译
    2. 流畅性:是否符合英文表达习惯
    3. 语气:是否保留了原文语气
    翻译: {translation}
    原文: {source_text}
    如果需要改进,指出具体问题。
    """)

    if feedback.is_satisfied:
        break  # 质量达标,退出循环

    # 优化者:根据反馈改进
    translation = llm("根据反馈改进翻译: {translation}\n反馈: {feedback}")
平台实现方式
Coze循环节点(如支持)或手动串联评估+修改节点
Dify迭代节点,支持条件退出和最大循环次数
LangGraph循环边 + 条件退出 + Checkpointer 记录每轮迭代

📋 生产注意:评估标准需量化(如"准确率≥95%"而非"足够好");设置最大迭代次数(通常 3-5 次);记录每轮迭代的改进幅度用于分析收益递减点。

✅ 五种模式选择指南

① 提示链:任务可分解为固定顺序步骤 → 交易延迟换准确率。② 路由分发:有明确输入类别,各类别需不同处理 → 关注点分离。③ 并行化:子任务独立可并行,或需要多视角/多次验证 → 加速 + 提升置信度。④ 编排者-工作者:子任务不可预测,需动态决定 → 灵活委派。⑤ 评估者-优化者:有明确评估标准,迭代能带来可衡量改进 → 质量打磨。

🔧 动手实验:用 Coze 实现五种模式

提示链:开始节点 → 大模型(生成大纲)→ 条件判断(检查大纲质量)→ 大模型(写正文)→ 结束
路由分发:开始 → 大模型(分类)→ 条件判断 → 多个大模型分支 → 结束
并行化:开始 → 并行多个大模型节点(不同视角审查)→ 代码节点(聚合)→ 结束
编排者-工作者:开始 → Agent 节点(动态分派)→ 多个子 Agent → Agent 节点(综合)→ 结束
评估者-优化者:开始 → 大模型(生成)→ 大模型(评估)→ 条件判断(是否达标)→ 循环回生成 → 结束
📖 参考教程:Coze 工作流教程实战指南

四、智能体设计模式 🟡 进阶

工作流模式解决的是"步骤可预测"的任务,而智能体(Agent)解决的是"步骤不可预测"的开放式任务。以下五种 Agent 设计模式覆盖从简单工具调用到复杂多 Agent 协作的完整谱系:

模式核心机制适用场景代表平台实现
ReActThink → Act → Observe 循环开放式研究、信息检索Dify Agent 节点、LangGraph
Function Calling模型决定调用哪个函数精确工具调用、结构化输出OpenAI Responses API
多 Agent 协作分工 + 交接(Handoff)复杂任务分解OpenAI Agents SDK、Coze 多 Agent
层级编排Supervisor 调度子 Agent企业级客服路由LangGraph Supervisor
记忆增强短期 + 长期记忆个性化助手、跨会话连续性LangMem、Dify Memory

模式 1:ReAct(推理 + 行动循环)

本指南第 18 章介绍了 ReAct 的提示词层面实现,这里是系统级升级——加入安全护栏、人类检查点和最大迭代限制。Agent 在循环中自主决定下一步行动,调用工具获取环境反馈,直到任务完成或达到限制。

📎 Agent 循环 — ReAct 模式升级
# 自主 Agent 循环示例(伪代码)
# 本指南第18章 ReAct 的系统级实现

max_iterations = 10
task = "研究竞品定价策略并生成分析报告"
context = ""

for i in range(max_iterations):
    # Agent 规划下一步行动
    action = llm(f"""
    任务: {task}
    已知信息: {context}
    可用工具: search(), analyze(), write_report()
    决定下一步行动(Thought + Action)
    """)

    if action.type == "finish":
        break  # Agent 认为任务完成

    # 执行工具调用,获取环境反馈
    observation = execute_tool(action.tool, action.params)

    # 更新上下文(环境反馈)
    context += f"\nAction: {action}\nObservation: {observation}"

    # 检查点:每3步请求人类确认(可选)
    if i > 0 and i % 3 == 0:
        if not human_confirm(f"Agent 计划继续: {action}"):
            break

# 安全护栏:达到最大迭代次数强制终止
if i == max_iterations - 1:
    log("Agent 达到最大迭代次数,强制终止")

模式 2:Function Calling(函数调用)

模型根据用户意图自主决定调用哪个预定义函数,并生成结构化参数。比 ReAct 更精确——函数签名约束了模型的输出格式,减少解析错误。OpenAI Responses API 原生支持。

📎 Function Calling — 查询订单(真实可运行 Python)
pip install openai

from openai import OpenAI

client = OpenAI()  # 自动读取 OPENAI_API_KEY 环境变量

# 1. 定义可用函数(工具)
tools = [
    {
        "type": "function",
        "function": {
            "name": "query_order",
            "description": "查询用户订单状态",
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {"type": "string", "description": "订单编号"}
                },
                "required": ["order_id"]
            }
        }
    }
]

# 2. 模型自主决定调用哪个函数
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "我的订单 #12345 到哪了?"}],
    tools=tools
)

# 3. 模型返回 tool_calls(不是直接回答,而是要求调用函数)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name)       # "query_order"
print(tool_call.function.arguments)  # '{"order_id": "12345"}'

# 4. 执行函数,将结果返回给模型生成最终回答
def query_order(order_id):
    # 实际项目中这里查询数据库
    return {"status": "已发货", "eta": "明天送达"}

result = query_order("12345")
final = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "我的订单 #12345 到哪了?"},
        response.choices[0].message,
        {"role": "tool", "tool_call_id": tool_call.id, "content": str(result)}
    ]
)
print(final.choices[0].message.content)
# "您的订单 #12345 已发货,预计明天送达。"

模式 3:多 Agent 协作(Handoff 交接)

多个专业 Agent 分工协作,通过 Handoff(交接)机制传递控制权。OpenAI Agents SDK 的核心特性——一个 Agent 可以将任务交接给另一个更专业的 Agent。

📎 多 Agent Handoff — 客服交接
# 多 Agent 协作示例(伪代码,基于 OpenAI Agents SDK)
from agents import Agent, Runner

# 定义三个专业 Agent
triage_agent = Agent(
    name="客服分诊",
    instructions="分析用户意图,决定交接给哪个专业 Agent",
    handoffs=["退款专员", "技术支持"]
)

refund_agent = Agent(
    name="退款专员",
    instructions="处理退款相关请求,查询订单状态,发起退款流程",
    tools=[query_order, refund_order]
)

tech_agent = Agent(
    name="技术支持",
    instructions="诊断技术问题,提供解决方案或创建工单",
    tools=[search_kb, create_ticket]
)

# 分诊 Agent 根据用户输入自动交接
result = Runner.run(triage_agent, "我的订单 #12345 想退款")
# 分诊 Agent → 交接给 退款 Agent → 退款 Agent 处理并返回结果

模式 4:层级编排(Supervisor)

一个 Supervisor Agent 统一调度多个子 Agent,子 Agent 完成任务后向 Supervisor 汇报。LangGraph 的经典模式——适合企业级客服路由、复杂任务分解。

📎 Supervisor 层级编排
# Supervisor 层级编排示例(伪代码,基于 LangGraph)
# Supervisor 决定下一步交给哪个子 Agent
def supervisor(state):
    messages = state["messages"]
    decision = llm("根据对话历史,决定下一步交给谁: researcher / coder / reviewer")
    return {"next": decision}

# 子 Agent 各自处理专业任务
def researcher(state):
    result = llm("搜索并整理相关信息: " + state["task"])
    return {"messages": [result]}

def coder(state):
    result = llm("编写代码实现: " + state["task"])
    return {"messages": [result]}

# 状态图编排:Supervisor → 子 Agent → 回到 Supervisor
graph = StateGraph()
graph.add_node("supervisor", supervisor)
graph.add_node("researcher", researcher)
graph.add_node("coder", coder)
graph.add_conditional_edges("supervisor", route_to_sub_agent)
graph.add_edge("researcher", "supervisor")  # 完成后回到 Supervisor
graph.add_edge("coder", "supervisor")

模式 5:记忆增强

为 Agent 添加短期记忆(当前对话上下文)和长期记忆(跨会话的用户偏好、历史交互),实现个性化服务。LangMem 和 Dify Memory 提供现成实现。

📎 记忆增强 Agent
# 记忆增强 Agent 示例(伪代码)
# 短期记忆:当前对话上下文(自动管理)
short_term = ConversationBuffer(max_tokens=4000)

# 长期记忆:用户偏好和历史(持久化存储)
long_term = MemoryStore(backend="vector_db")

# 每次对话前检索相关长期记忆
def agent_with_memory(user_input, user_id):
    # 检索与当前输入相关的历史记忆
    relevant_memories = long_term.search(
        query=user_input,
        filter={"user_id": user_id},
        top_k=3
    )

    # 将短期记忆 + 长期记忆 + 用户输入组合
    context = f"""
    用户偏好: {relevant_memories}
    对话历史: {short_term.get_history()}
    当前输入: {user_input}
    """

    response = llm(context)

    # 提取值得记住的信息存入长期记忆
    if has_new_preference(user_input, response):
        long_term.add(user_id, extract_preference(response))

    short_term.add(user_input, response)
    return response

五、企业实战场景 🔴 高级

以下四个场景来源于各平台官方文档和公开案例,覆盖客服、知识库、文档处理和合规审查四大企业高频需求。每个场景包含业务背景、架构设计和关键生产指标。

场景 1:智能客服系统

📌 业务背景

电商 / SaaS / 电信等行业的客服中心日均处理数千至数万条咨询,涉及售前咨询、售后退款、技术支持等多种意图。人工客服成本高、响应慢、质量不稳定。

💡 架构设计

Supervisor 路由 → 意图分类 → 专用 Agent → API 执行。Supervisor Agent 接收用户输入,分类后交接给退款 Agent / 技术 Agent / 通用 Agent,各 Agent 调用对应后端 API 完成操作。

✅ 关键节点

意图分类(置信度阈值兜底)→ 知识库 RAG 检索 → FAQ 匹配 → API 调用(订单查询 / 退款发起)→ 人工升级(无法解决时)→ 满意度回访。

📋 生产指标:首次解决率(FCR)> 60%、转人工率 < 20%、平均响应时间 < 3 秒、用户满意度 > 85%。推荐平台:快速验证用 Coze,企业部署用 Dify(支持人工审核节点),需审计用 LangGraph。

📖 案例参考与教程

Coze 客服工作流:客户跟进自动化实战(今日头条) — 5 步搭建客户信息自动整理+飞书表格写入+钉钉通知
Dify 客服 Chatflow:用 Dify 搭建企业级 AI 应用(华为云) — 知识库检索 + 条件分支 + 工单自动分派
LangGraph 客服路由:Dify+LangGraph 多智能体实战(CSDN) — Supervisor 路由 + 条件边 + 人工审核

场景 2:知识库检索智能体

📌 业务背景

金融 / 法律 / 医疗等行业的从业者需要快速检索海量专业文档(法规、案例、诊疗指南),传统搜索无法理解专业语义,关键词匹配召回率低。

💡 架构设计

RAG 检索 → 多 Agent 分工(检索 / 分析 / 合规检查)→ 人工审核。文档预处理(分块 + 向量化)→ 语义检索 → Agent 分析并生成回答 → 合规 Agent 检查是否违反监管要求 → 人工审核高风险回答。

✅ 关键节点

文档分块(chunk size 512-1024 token)→ Embedding 向量化 → 向量检索(top-k=5)→ Agent 生成回答(引用来源标注)→ 合规检查 → 人工审核。

📋 生产指标:回答准确率 > 90%、检索召回率 > 85%、合规通过率 100%、平均检索时间 < 2 秒。推荐平台:Dify(知识库 + Agent 节点 + 人工审核),LangGraph(条件边硬护栏 + Checkpointer 审计)。

📖 案例参考与教程

Dify 知识库问答:Dify 企业级 Agent 实战指南 — 多模态知识融合 + 混合检索优化 + 准确率 92%
Dify 复刻吴恩达 Workflow:基于 Dify 复刻 Agent Workflow(百度云) — 任务规划层 + 工具集成 + 循环修正

场景 3:文档处理流水线

📌 业务背景

财务 / HR / 法务部门每天处理大量结构化和非结构化文档(发票、合同、简历),人工录入成本高、错误率高、效率低。

💡 架构设计

分类 → 信息提取 → 验证 → 人工审核 → 归档。文档上传 → LLM 分类(发票 / 合同 / 简历)→ 提取关键字段 → 规则验证(金额校验 / 日期校验)→ 低置信度走人工审核 → 通过后自动归档。

✅ 关键节点

OCR 识别 → LLM 分类 → 字段提取(结构化输出)→ 规则验证 → 人工审核(Dify 人工介入节点)→ 归档存储。

📋 生产指标:字段完整率 > 95%、处理效率提升 5-10 倍、人工审核通过率 > 90%。推荐平台:Dify(Workflow + 人工介入节点 + 可观测性),Coze(工作流 + 插件)。

📖 案例参考与教程

Coze 文档自动化:Coze 工作流教程实战指南( tahou) — AI 视频自动化工作流(批处理+循环+剪映草稿)
Coze 资讯摘要:行业资讯自动摘要工作流(今日头条) — 搜索插件+大模型摘要+飞书推送

场景 4:合规审查 Agent

📌 业务背景

金融 / 医药 / 制造等受监管行业的产品和营销内容需通过合规审查,人工审查耗时长、标准不统一、审计追踪困难。

💡 架构设计

RAG 检索法规 → LLM 推理 → 条件边硬护栏 → 人工审批 → 审计日志。输入待审查内容 → 检索相关法规条款 → LLM 逐条比对 → 条件边判定(通过 / 警告 / 拒绝)→ 警告和拒绝走人工审批 → 全链路审计日志。

✅ 关键节点

法规库向量化 → 语义检索 → LLM 合规推理(引用法规条款)→ 条件边路由(LangGraph add_conditional_edges)→ 人工审批 → Checkpointer 审计日志。

📋 生产指标:合规率 100%、审计追踪完整性 100%、审查效率提升 3-5 倍。推荐平台:LangGraph(状态图 + 条件边 + Checkpointer 全链路审计),Dify(条件分支 + 人工审核)。

六、生产化工程要点 🔴 高级

从"能跑的 Demo"到"可靠的生产系统",需要关注以下六大工程要点。这些要点决定了 AI 应用能否真正在企业环境中稳定运行:

要点核心内容工具 / 平台
可观测性追踪每次运行、节点输出、Token 消耗、延迟分布Langfuse / LangSmith / Dify 内置 / Traces 仪表板
人工审核敏感操作前暂停,人工审批后继续执行Dify 人工介入节点 / LangGraph interrupt
版本管理回滚到任意版本、DSL 导出迁移、A/B 测试Dify 版本管理 / LangGraph Checkpointer
错误处理可控失败路径、默认值、恢复分支Dify 错误分支 / 代码 try-catch / 兜底路由
安全护栏输入验证、输出过滤、Guardrail 防越狱OpenAI Guardrails / LangGraph 条件边 / NeMo Guardrails
成本控制Token 预算、模型分级路由、结果缓存简单任务用小模型 / 相同查询缓存 / 用量监控告警
⚠️ 生产环境三大红线

① 不要让 Agent 直接执行不可逆操作(如删除数据、转账)——必须加人工审核节点。
② 不要让 Agent 无限循环——必须设置最大迭代次数和超时。
③ 不要忽视审计日志——合规场景必须记录每一步决策链,便于事后追溯。

七、工作流与智能体学习路线 📚 参考

从零开始掌握工作流与智能体,建议按以下 4 周进阶路径学习,每周一个平台,逐步深入:

阶段目标平台实践产出
第 1 周
入门
理解概念,搭建第一个工作流Coze(零代码)用 Coze 搭建一个"文章生成"工作流,体验节点串联和条件分支
第 2 周
进阶
掌握 Agent 节点和多 Agent 编排Dify用 Dify 搭建一个"知识库问答"Chatflow,体验 RAG + 人工审核
第 3 周
深入
代码控制、状态管理、人在回路LangGraph用 LangGraph 搭建一个"带人工审核的文档处理"流程,体验状态图和条件边
第 4 周
生产
沙箱、Guardrail、Tracing、部署OpenAI Agents SDK构建一个"多 Agent 协作"应用并部署,体验 Handoff 和 Tracing
✅ 学习建议

先视觉后代码:第 1-2 周用可视化平台建立直觉,第 3-4 周再用代码框架深入控制。
每个平台做一个完整项目:不要只看文档,动手搭建一个能跑的 demo。
关注生产化:从第 2 周开始就加入人工审核和可观测性,养成生产习惯。

八、权威资源汇总 📚 参考

📖 八大知识来源

① Anthropic Building effective agents:anthropic.com/research/building-effective-agents — 五种工作流模式与 Agent 循环的原始定义
② OpenAI Agents SDK:github.com/openai/openai-agents-python — 官方 Agent 框架,Handoff / Guardrail / Tracing
③ Prompt Engineering Guide AI Agents:promptingguide.ai/research/llm-agents — Agent 架构综述与工具调用
④ LangGraph 工作流编排:langchain-ai.github.io/langgraph — 状态图 / 条件边 / 人在回路
⑤ 扣子 Coze 官方平台:coze.cn — 低代码可视化工作流与多 Agent 编排
⑥ Dify 官方文档:docs.dify.ai — 开源全栈平台,Workflow / Chatflow / 人工审核
⑦ DeepLearning.AI:deeplearning.ai/short-courses — AI Agents 系列课程
⑧ LangSmith:docs.smith.langchain.com — Agent 可观测性与评估平台

九、ACI:智能体-计算机接口设计 📚 参考

Anthropic 提出的核心观点:像重视人机交互(HCI)一样重视 Agent 与计算机之间的接口(ACI)设计。工具定义的质量比提示词优化更重要——他们在构建 SWE-bench Agent 时,花在工具优化上的时间比提示词还多。

ACI 设计原则说明实践建议
换位思考站在模型角度——仅凭工具描述和参数,用法是否显而易见?工具定义包含使用示例、边界情况、输入格式要求
参数命名语义化像给初级开发者写 docstring 一样撰写参数描述使用清晰的参数名,添加详细说明和类型约束
实际测试在大量示例输入上运行,观察模型犯什么错误迭代改进工具定义,而非仅改提示词
防错设计(Poka-yoke)修改参数设计让模型更难犯错如:强制要求绝对路径而非相对路径
工具工程 ≥ 提示工程工具定义和规范应获得同等的 prompt engineering 关注投入时间优化工具接口,而非仅优化提示词
✅ Agent 开发三大核心原则

① 保持简单性:从最简单方案开始,只在必要时增加复杂度。多数应用用单次调用 + 检索就够了。
② 优先透明性:让 Agent 显式展示规划步骤,便于调试和人类监督。不要让 Agent 在"黑箱"中运行。
③ 精心打造 ACI:工具定义的质量决定 Agent 的可靠性。好的工具让模型更难犯错,差的工具让最强的模型也频频出错。

附录 A

术语表

学习中遇到的专业术语速查。

Prompt提示词
输入给 AI 模型的指令或文本,引导模型生成期望的输出。
LLM (Large Language Model)大语言模型
基于海量文本训练的大型 AI 模型,如 GPT、Claude、Gemini 等。
Token词元
模型处理文本的基本单位,约 3-4 个英文字符或 0.5-1 个中文字。
Context Window上下文窗口
模型一次能处理的最大 Token 数量,包含输入和输出。
Zero-shot零样本提示
不提供任何示例,直接给出指令让模型完成任务。
Few-shot少样本提示
在提示中提供少量示例(2-5个),引导模型理解任务模式。
CoT (Chain-of-Thought)思维链
引导模型在给出答案前,先逐步展开推理过程。
Self-Consistency自我一致性
对同一问题生成多条推理路径,通过多数投票选择最终答案。
ToT (Tree of Thoughts)思维树
将思维链扩展为树状结构,探索多条推理路径并评估选择。
RAG (Retrieval-Augmented Generation)检索增强生成
从外部知识库检索相关信息,注入提示后让模型生成回答。
ReAct推理与行动
Reasoning + Acting,模型交替进行推理思考和执行外部行动。
Prompt Chaining提示链
将复杂任务拆分为多个子任务,前一步输出作为后一步输入。
Hallucination幻觉
模型生成看似合理但实际错误或虚构的内容。
RLHF人类反馈强化学习
Reinforcement Learning from Human Feedback,用人类偏好数据优化模型。
Temperature温度参数
控制模型输出随机性的参数,0 为完全确定,越高越随机。
Prompt Injection提示注入
在输入中嵌入恶意指令,试图劫持模型行为的攻击方式。
Agent智能体
能自主感知环境、推理决策、执行行动的 AI 系统。
Function Calling函数调用
让模型调用外部函数/API 的能力,是构建 Agent 的基础。
Self-Refine自我优化
让模型基于自我批评的反馈改进自己的输出。
Adaptive Thinking自适应思考
Anthropic Claude 的功能,模型自动判断何时需要推理、推理多少。
Text-to-Image文生图
通过文字描述让 AI 生成图像,如 DALL·E、GPT Image、Midjourney 等。
Text-to-Video文生视频
通过文字描述让 AI 生成视频,如 Sora、Runway 等。
Shot Type镜头类型
视频生成提示词的核心要素之一,描述相机视角和运动方式(如特写、广角、跟踪镜头)。
Top P (Nucleus Sampling)核采样
控制输出确定性的参数,只从累积概率达到 P 的最小 Token 集合中采样。建议与 Temperature 只调其一。
Frequency Penalty频率惩罚
对重复出现的 Token 施加递增惩罚,减少模型响应中的词语重复。
Presence Penalty存在惩罚
对所有重复 Token 施加相同惩罚,防止模型过于频繁地重复短语。
Cue引导线索
Azure OpenAI 提出的提示组件,在提示末尾加入前缀来引导输出格式。
OpenAI CookbookOpenAI 实践手册
OpenAI 官方的开发者实践指南合集,包含 98+ 篇可运行的代码示例和提示工程指南。
附录 B

速查表与学习路径

快速参考与下一步学习建议。

提示词工程速查表

需求推荐技术难度
简单分类/翻译/摘要Zero-shot入门
需要特定格式或风格Few-shot入门
需要专业视角Role Prompting入门
需要参考文档Context Engineering进阶
数学/逻辑推理Chain-of-Thought进阶
多步骤复杂任务Prompt Chaining进阶
需要高准确率的推理Self-Consistency高级
需要搜索/回溯的复杂问题Tree of Thoughts高级
需要查阅外部知识RAG高级
需要调用外部工具ReAct高级
需要自我检查和改进Self-Refine / Self-Criticism高级
图像/视频生成多模态提示词(五要素法)进阶

推荐学习路径

第1周:基础概念
→
第2周:核心技术
→
第3周:应用实践
→
第4周:进阶探索
阶段学习内容推荐资源
第 1 周
基础概念
什么是提示词工程、LLM 原理、Token与参数、四大要素、两大原则、结构化设计本指南第 1-8 章 + DeepLearning.AI 课程 + Azure OpenAI 指南
第 2 周
核心技术
Zero-shot、Few-shot、角色设定、上下文工程、CoT本指南第 9-13 章 + Learn Prompting 入门课 + Prompt Engineering Guide
第 3 周
应用实践
五大应用场景、迭代开发、安全伦理、图像与视频生成本指南第 20-22, 24 章 + OpenAI/Anthropic 官方指南 + OpenAI Cookbook
第 4 周
进阶探索
ToT、RAG、ReAct、自我批评、模型差异化、图像/视频生成提示词本指南第 14-19, 23-24 章 + Prompt Engineering Guide + Learn Prompting 高级课 + OpenAI Cookbook
第 5 周
扩展资源
OpenAI Cookbook 实践指南、OpenAI 热门开源项目、工作流与智能体实践本指南第 25-27 章 + OpenAI GitHub 仓库 + Anthropic Agent 指南

权威学习资源链接

资源地址语言特点
DeepLearning.AI 课程deeplearning.ai英文(有中文字幕)入门首选,吴恩达主讲
Prompt Engineering Guidepromptingguide.ai英文/中文最全面的技术百科
Learn Promptinglearnprompting.org英文渐进式课程体系
OpenAI 官方指南platform.openai.com英文6 大策略 + 实操建议
Anthropic Claude 指南docs.anthropic.com英文Claude 专属最佳实践
OpenAI Cookbookcookbook.openai.com英文98+ 篇实践指南和代码示例
Azure OpenAI 提示工程learn.microsoft.com英文企业级实践 + 参数详解
📖 资源定位指南

零基础入门:DeepLearning.AI 课程 → 本指南第 1-8 章
系统学习技术:Prompt Engineering Guide → 本指南第 9-19 章
动手实践代码:OpenAI Cookbook → 提供可运行的 Python 示例
企业部署参考:Azure OpenAI 指南 → 提供合规与生产级建议
安全与进阶:Learn Prompting 高级课程 → 本指南第 22 章

🎯 学习心法

① 实践优先:每学一个技巧,立即动手试。光看不练等于没学。
② 迭代思维:不要追求"一次写对",接受"改了又改"是常态。
③ 通用优先:先掌握跨平台通用的方法论,再学特定模型的技巧。
④ 安全意识:始终关注幻觉、偏见和安全风险,负责任地使用 AI。
⑤ 多模态思维:图像和视频提示词需要"视觉化描述",与文本提示词思维不同。

📖 关于本指南

本指南融合了八大权威知识源精华(DeepLearning.AI、Prompt Engineering Guide、Learn Prompting、OpenAI 官方指南、Anthropic Claude 指南、OpenAI Cookbook、Azure OpenAI、扣子 Coze / Dify / LangGraph 工作流与智能体生态),提炼通用方法论而非单一平台技巧。内容由浅入深,每个知识点遵循"是什么→为什么→怎么做"的结构,配有可复制的对比提示词和实践案例。适合中文零基础学习者系统入门,也适合有经验者作为参考手册。

⚙️ Workflow Bot
检测到你在浏览提示词工程百科!
需要我帮你构建学习路径吗?
Workflow Bot · 在线
系统就绪 ✅

我是你的 Workflow Bot,一个工作流可视化助手。

我可以帮你:
🔗 构建路径 — 根据你的水平推荐学习路线
📊 节点解析 — 拆解每章的核心知识点
💬 社区讨论 — 跳转到评论区交流

当前章节已自动检测,点击下方按钮开始吧!