项目快照:dair-ai/Prompt-Engineering-Guide,约 77,526 个 Star,8,517 个 Fork;最新推送时间 2026-03-11T20:09:13Z。本文基于仓库公开资料撰写。

项目地址:https://github.com/dair-ai/Prompt-Engineering-Guide · https://www.promptingguide.ai/

Prompt-Engineering-Guide 从代码、运行环境到实践流程的项目封面
Prompt-Engineering-Guide 的项目能力与实践流程示意。

项目速览(TL;DR)

Prompt-Engineering-Guide 是一个以提示工程(Prompt Engineering)为核心的开源知识库,内容覆盖上下文工程(Context Engineering)、检索增强生成(Retrieval-Augmented Generation,RAG)与人工智能智能体(AI Agents)。它的主要交付物是指南、论文索引、课程资料、案例和笔记本,而不是可直接嵌入业务系统的模型服务或软件开发工具包(Software Development Kit,SDK)。

  • GitHub 元信息:77,526 Star、8,517 Fork;这些数字是资料提供时的快照,实时数据以仓库页面为准。
  • 仓库主要语言:MDX,即支持在 Markdown 内容中嵌入组件的文档格式。
  • 默认分支:main
  • 许可证:MIT。
  • 文档技术栈:Next.js 13.5.6、Nextra 2.13.2、React 18.2.0,具体版本来自 package.json
  • 内容入口包括提示设计基础、提示技术、应用案例、Prompt Hub、模型资料、风险与误用等。

如果目标是系统学习和查阅提示工程资料,可以直接使用网站版本;如果需要审阅内容、参与翻译、修改 MDX 或在本地构建文档,则应使用 GitHub 仓库。仓库没有在已提供资料中声明推理 API、模型权重、向量数据库、后端服务接口或生产级服务等级协议(Service Level Agreement,SLA)。

“Prompt engineering is a relatively new discipline for developing and optimizing prompts to efficiently use language models (LMs) for a wide variety of applications and research topics. Prompt engineering skills help to better understand the capabilities and limitations of large language models (LLMs).”

来源:README

定位与目标用户

该项目的定位是开放式学习与参考资料集合,而非特定模型厂商的客户端。根据 README,研究人员可借助提示工程研究问答、算术推理等任务,开发者则可用相关方法设计与语言模型及外部工具交互的提示流程。

知识库而非推理服务

仓库的输入主要是 MDX 文档、引用资料和站点配置,经过 Next.js 与 Nextra 构建后输出可浏览的文档站点。项目描述虽覆盖 RAG 和 AI Agents,但资料没有给出一个统一的 RAG 管线、智能体运行时或可调用的服务端接口,因此不能把它当作现成的应用后端。

研究、开发与教学的不同使用方式

研究人员可以从技术章节定位零样本、少样本、思维链和 ReAct 等主题,再回到原始论文验证方法边界。应用开发者可以按 Function Calling、代码生成、信息抽取或问答等任务查找提示设计线索;教师与学习者则可以按“介绍—技术—应用—模型—风险”的层次组织阅读路径。

README 还提到 DAIR.AI Academy 的自定进度课程,并明确说明课程用于补充指南、提供更偏实践的学习方式。课程是否收费、课程持续时间、退款与服务承诺均不属于仓库许可证覆盖范围,应以对应课程页面的现行条款为准。

核心功能

项目的核心能力是组织、呈现和持续维护提示工程知识,而不是执行提示本身。每项能力都依赖文档内容和站点导航,最终输出是供人阅读、检索和引用的页面。

提示工程基础指南

基础部分涵盖语言模型设置、提示基础、提示组成元素、设计建议与示例。其工作方式是将概念和示例编排为分层页面:输入是读者的问题或学习目标,触发条件是访问对应主题页面,输出是设计原则、术语解释和示例材料;依赖组件是仓库中的 MDX 内容及 Nextra 文档渲染能力。

提示技术目录

技术部分收录零样本提示(Zero-Shot Prompting)、少样本提示(Few-Shot Prompting)、思维链提示(Chain-of-Thought Prompting)、自洽性(Self-Consistency)、提示链、思维树、RAG、ART、APE、PAL、ReAct、多模态思维链与图提示等主题。读者按问题类型选择章节,再将章节中的方法应用到自己的模型与测试数据;仓库负责解释和索引,不负责替读者调用模型。

应用案例与 Prompt Hub

应用部分按任务组织资料,包括函数调用、数据生成、面向 RAG 的合成数据集、代码生成和职位分类案例。Prompt Hub 则按分类、编程、创作、评估、信息抽取、图像生成、数学、问答、推理、摘要、真实性和对抗性提示等类别提供参考,输入是具体任务需求,输出是可供评估和改写的提示示例。

这些示例不能直接构成生产保证。模型名称、参数、上下文、采样设置和数据分布都会影响结果,而仓库资料没有提供跨模型的一致性承诺、准确率基线或 Benchmark,因此使用者必须在自己的模型、数据和风险边界内验证。

模型专题与资源索引

README 列出的模型专题包括 ChatGPT、Code Llama、Flan、Gemini、GPT-4、LLaMA、Mistral 7B、Mixtral、OLMo 和 Phi-2。其机制是按模型建立说明入口,帮助读者查找与该模型相关的提示资料;仓库不包含资料所列模型的权重,也没有声明代为托管这些模型。

多语言内容

README 宣布项目支持 13 种语言,并欢迎更多翻译。已提供资料没有列出完整语言清单、翻译覆盖率、同步周期和术语审校流程,因此不能据此断言各语言页面与英文内容完全同步;相关状态应以最新 README 和站点导航为准。

系统架构与关键模块

package.json 可核查的部分看,该仓库采用 Next.js、Nextra 和 React 构建文档站点。官方资料没有给出完整架构图、部署拓扑或目录树,以下模块边界仅依据依赖和脚本说明,无法确认的实现细节不作推断。

内容与渲染层

仓库主要语言为 MDX,Nextra 及 nextra-theme-docs 负责文档站点能力,React 与 React DOM 提供组件运行基础。Next.js 提供开发、构建和启动脚本;具体页面路由、主题覆盖文件及内容目录名称未出现在所给资料中,官方仓库未提供该信息,建议以最新 README 和实际分支为准。

公式、图标与资源处理

katex 依赖表明项目具备排版数学公式所需的软件依赖,@fortawesome/* 提供 Font Awesome 图标相关组件,@svgr/webpack 用于 SVG 与 Webpack 集成。资料仅能证明这些包被声明为依赖,不能确认每个页面均使用它们,也不能据此推导站点的无障碍等级或浏览器兼容矩阵。

仓库数据与分析依赖

@napi-rs/simple-git 是已声明的 Git 操作依赖,@vercel/analytics 是已声明的分析依赖。已提供文件没有展示调用代码、采集字段、启用条件或关闭方式,因此不能确认线上站点实际采集哪些信息;隐私要求较高的部署应先审阅源码与实际网络请求。

构建链路

可核查的脚本只有 next devnext buildnext start。对应链路是开发模式预览、生成构建产物、启动已构建应用;构建产物目录、缓存策略、静态导出能力和部署平台配置未在资料中说明。

依赖与运行环境

依赖版本可以从 package.json 精确读取,但 Node.js、npm、操作系统和内存下限没有被声明。准备本地环境时,不应自行把某个 Node.js 版本写成项目的官方要求。

  • 应用框架:next ^13.5.6
  • 文档框架:nextranextra-theme-docs,均为 ^2.13.2
  • 界面运行时:reactreact-dom,均为 ^18.2.0
  • 类型与开发工具:typescript ^4.9.5@types/node 18.11.10@types/react ^18.2.0
  • 内容辅助:katex ^0.16.27clsx ^2.1.0

package.json 没有提供 engines 字段,也没有在资料中指定包管理器版本或锁文件类型。官方仓库未提供该信息,建议以最新 README、仓库锁文件和持续集成配置为准;在确认前,不应把本地验证通过的运行时版本表述为官方兼容范围。

快速开始:本地安装、运行与验证

最小闭环是克隆默认分支、安装声明的依赖、启动开发模式,再通过正式构建命令验证内容和配置能否完成编译。资料没有提供固定监听端口,因此示例不写死浏览器地址,也不使用未经确认的健康检查路径。

Bash
# 安装:获取 main 分支并安装 package.json 中声明的依赖
git clone https://github.com/dair-ai/Prompt-Engineering-Guide.git
cd Prompt-Engineering-Guide
npm install

# 运行:启动 package.json 中定义的开发脚本
npm run dev

开发进程启动后,应以终端实际输出的本地地址为准。完成页面检查后停止开发进程,再执行以下验证;buildstart 均来自仓库的 package.json,示例不添加项目未声明的命令参数。

Bash
# 验证:执行正式构建,检查 MDX、组件和站点配置能否通过编译
npm run build

# 运行已构建的本地站点
npm run start

这里把 npm run build 作为最低限度的构建验证,不等同于自动化测试。资料没有提供 testlint 或端到端测试脚本,也没有说明构建成功后的页面数量和产物校验方式。

配置说明

当前可核查的配置集中在 package.json,其中脚本和版本约束决定本地构建行为。资料没有提供 .env.example、运行时环境变量表或独立配置样例,因此不能补写 API Key、分析开关或部署域名等字段。

字段名 类型 默认值 作用
name 字符串 nextra-docs-template 声明 npm 包名称;该值来自当前所给 package.json,与 GitHub 仓库名不同。
version 字符串 0.0.1 声明包版本。资料没有说明它是否与文档发布版本同步。
scripts.dev 字符串 next dev 启动 Next.js 开发模式。
scripts.build 字符串 next build 执行正式构建,可用于发现编译与内容处理错误。
scripts.start 字符串 next start 启动已经完成构建的 Next.js 应用。
dependencies.next 字符串(版本约束) ^13.5.6 声明 Next.js 框架依赖。
dependencies.nextra 字符串(版本约束) ^2.13.2 声明 Nextra 文档框架依赖。
dependencies.nextra-theme-docs 字符串(版本约束) ^2.13.2 声明 Nextra 文档主题依赖。
dependencies.katex 字符串(版本约束) ^0.16.27 提供数学公式排版所需依赖。
devDependencies.typescript 字符串(版本约束) ^4.9.5 声明 TypeScript 开发依赖。

版本前的插入符号 ^ 是版本约束的一部分,安装时解析出的精确版本还受锁文件和安装时间影响。资料未提供锁文件内容,因此不能把约束下的某个后续版本写成固定安装结果。

以下 JSON 仅摘录资料中真实存在的脚本,不是新增配置:

JSON
{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start"
  }
}

内容导航与学习路径

该项目的资料跨度较大,按任务而非按页面数量阅读更容易形成可验证的结果。根据本文作者的经验判断,较稳妥的顺序是先掌握提示元素和模型设置,再选择技术章节,最后进入具体应用与风险评估。

  1. 先阅读 Introduction 下的设置、基础、提示元素和设计建议,明确提示输入由哪些部分组成。
  2. 用 Zero-Shot 与 Few-Shot 建立基线,保留输入、输出、模型和设置,避免只凭单次结果下结论。
  3. 任务需要多步推理时,再查阅思维链、自洽性、提示链或思维树;这些方法不是所有任务的默认选项。
  4. 任务需要外部知识时,转向 RAG;任务需要工具交互时,查阅 Function Calling、ART、PAL 或 ReAct。
  5. 部署前检查 Risks and Misuses 以及 Truthfulness、Evaluation、Adversarial Prompting 等主题,并在授权数据上复测。

网站版被 README 描述为获取最新指南的入口,仓库版则适合审阅文件变更和参与内容维护。二者不是不同实现方案:在纯阅读场景使用网站,在需要版本控制、修改或本地构建时使用仓库。

进阶用法

进阶使用不应停留在复制提示文本,而应把指南中的方法转化为可重复实验。仓库没有规定实验框架,因此评测集格式、模型调用方式和结果存储方案需要使用者自行建立。

建立提示实验记录

可以把任务定义、提示版本、模型名称、模型设置、输入样本和输出评价放入同一条记录。触发条件是提示、模型或上下文发生任何变化,输出是可对照的实验结果;这属于根据本文作者的经验判断给出的实践建议,不是 README 声明的内置功能。

把技术组合成流程

提示链适合把一个任务拆成多个有明确输入输出的阶段,RAG 章节则面向需要检索外部信息的场景,ReAct 与工具调用主题关注模型和工具之间的交互。组合这些技术时,应为每一步定义允许接收的数据、输出结构、失败处理和停止条件,不能假定知识库已经提供可直接运行的编排器。

模型专题与任务专题交叉验证

同一提示技术在不同模型上的表现不能由目录结构推导。可先从任务专题确定评价标准,再查阅模型专题中的限制和示例,最后在目标模型上复现;资料没有提供统一模型适配层、测试数据集版本或跨模型结果表。

可观测性与运维

项目没有在所给资料中定义日志规范、指标面板、告警规则、追踪系统或生产运维手册。可核查的最低观察点是开发进程输出和 next build 的退出结果,不能据此声称具备完整可观测性(Observability)。

  • 构建阶段:记录 npm run build 的退出码和完整日志,用于定位 MDX、依赖或编译问题。
  • 启动阶段:以 npm run start 的实际终端输出确认进程是否启动;固定端口和健康检查地址未提供。
  • 页面阶段:检查关键导航、内部链接、公式和组件是否可渲染;官方仓库未提供自动化检查命令。
  • 依赖阶段:升级前对照 package.json 与锁文件变化;资料没有给出升级周期和长期支持承诺。

@vercel/analytics 出现在依赖列表中,但仅凭依赖声明无法确认是否启用、发送何种事件或由谁控制配置。涉及隐私、数据驻留或内部部署时,应在发布前审阅源码、构建产物与浏览器网络请求,必要时按组织政策调整;具体调整方式未在资料中提供。

备份、回滚、多副本、高可用、容量规划和灾难恢复均没有官方说明。项目也没有提供性能数据、并发级别、页面响应时间或可用性 SLA,运维负责人需要按自己的部署平台另行验证。

安全与合规边界

该知识库包含对抗性提示、风险与误用、真实性、模型工具调用及数据生成等主题,这些内容可能触及提示注入、敏感数据处理和模型越权调用。使用范围应限定在自有系统、明确授权的测试环境和合法取得的数据上。

授权与隔离

不得把提示测试用于未授权账号、第三方生产系统或不受控的模型端点,也不应将对抗性提示章节转化为绕过访问控制、内容政策或检测机制的操作指南。测试工具调用和智能体流程时,应使用隔离的测试账户、最小权限凭据和受限工具集合,避免模型直接获得高权限执行能力。

隐私与数据处理

将个人信息、商业秘密、访问令牌或受监管数据发送给模型前,需要确认数据处理依据、保存期限、跨境要求及供应商条款。仓库没有提供数据脱敏工具、同意管理、数据处理协议或合规认证,不能因为内容以 MIT 许可证发布,就推导出输入数据和模型输出自动满足合规要求。

生成内容与决策责任

提示示例的输出需要经过事实核验,尤其是医疗、法律、财务、就业分类和安全相关场景。README 虽列出职位分类案例,但没有提供公平性保证、偏差阈值或自动决策合规结论;涉及个人权益的用途应保留人工复核和申诉机制。

供应链审查

资料列出了前端与构建依赖,但没有提供软件物料清单(Software Bill of Materials,SBOM)、漏洞扫描结果或 CVE 状态。部署方应基于实际锁定版本执行组织要求的依赖审查,不应虚构仓库不存在的安全认证或漏洞修复承诺。

许可证与商用条款

GitHub 元信息和 package.json 均将项目标记为 MIT 许可证。MIT 许可证允许使用、复制、修改、合并、发布、分发、再许可和销售软件副本,因此可用于商业场景,但必须遵守许可证文本中的通知保留要求。

  • 分发项目或其重要部分时,需要保留原版权声明和 MIT 许可声明。
  • 允许修改和内部使用,不要求派生项目必须采用相同的开源许可证。
  • MIT 许可证包含按原样提供以及不承担担保责任的条款,不能把开源内容理解为准确性、适销性或特定用途适用性的承诺。
  • 第三方论文、商标、模型服务、课程内容和外部网站可能有各自的权利与条款,不能仅凭仓库的 MIT 标识推定全部外链资源均按 MIT 授权。

已提供资料没有附上完整 LICENSE 文件正文和版权主体文本,正式商用与再分发时应直接核对仓库当前的 LICENSE 文件。若仓库元信息、包元数据与 LICENSE 正文存在差异,以仓库 LICENSE 和适用法律要求为准。

局限性与已知限制

最关键的限制是:这是知识与文档项目,不是端到端提示执行平台。它可以帮助形成方法和查找资料,但不会自动完成模型接入、数据治理、效果评估与生产运维。

  • 没有在资料中提供统一的模型 API、接口签名、身份验证方式或速率限制配置。
  • 没有提供可核查的 Benchmark、准确率、延迟、吞吐量、并发规模或资源消耗数据。
  • 没有声明 Node.js 与 npm 的支持版本,也没有操作系统兼容矩阵。
  • 没有提供环境变量样例、Dockerfile、Docker Compose 或基础设施即代码配置。
  • 没有提供测试、代码检查、端到端验证或链接检查脚本。
  • README 声明支持 13 种语言,但资料没有给出各语言内容完整度和同步状态。
  • 模型和提示技术更新较快,仓库中的具体页面是否覆盖最新模型能力,应以页面修订记录和原始资料为准。

package.json 中的名称、仓库字段、问题追踪地址和主页仍指向 nextra-docs-template 的模板信息,而不是当前 GitHub 项目。该现象可以从所给文件直接核查,但资料没有解释其原因;进行 npm 发布、元数据展示或自动化合规扫描前,应先确认这些字段是否为有意保留。

适合谁

是否采用该项目,应由交付目标和团队已有基础决定,而不是由 Star 数决定。以下信号可以直接用于判断该知识库是否匹配当前任务。

  • 团队需要为提示工程、RAG 或 AI Agents 建立内部学习大纲,并能安排人员核对原始论文与模型文档。
  • 开发任务已具备独立的模型调用层,只缺少提示技术、任务案例和评估思路的参考入口。
  • 研究人员需要按零样本、少样本、思维链、RAG、ReAct 等主题定位材料,并愿意自行搭建实验环境。
  • 文档团队已有 Next.js、React 或 MDX 使用经验,希望在本地审阅、修改或参与翻译。
  • 组织允许使用 MIT 许可内容,同时能够自行处理第三方资料版权、模型条款、隐私和输出审核。

不适合谁

如果交付要求集中在开箱即用的运行服务、确定性指标或完整合规证明,该仓库不能单独满足要求。以下任一信号成立时,需要另行准备应用框架、基础设施或合规方案。

  • 团队需要直接部署一个带身份认证、模型路由、配额、审计日志和 SLA 的提示服务,而不是文档站点。
  • 采购或监管流程要求仓库直接提供 SBOM、漏洞状态、数据处理协议、合规认证或长期支持承诺。
  • 项目必须依据官方 Benchmark、并发容量和延迟指标进行技术选型,而当前资料没有这些数据。
  • 团队没有可用的模型端点、测试数据或评估方法,却预期仅克隆仓库就能运行完整 RAG 或智能体应用。
  • 部署环境要求官方指定的 Node.js 版本、容器镜像和固定健康检查接口,而仓库资料未给出这些约束。

常见问题与排查(FAQ / Troubleshooting)

排查应先区分“文档内容问题”和“站点构建问题”。由于资料没有提供官方故障手册,以下建议只使用可核查的脚本和依赖信息,不补写未经声明的端口、缓存目录或环境变量。

为什么克隆后没有模型可以直接调用

因为仓库定位是指南与资源集合,package.json 也只表明它是 Next.js/Nextra 文档项目。官方资料没有提供模型权重、推理服务、API Key 配置或统一 SDK,需要由使用者另行选择并接入合法授权的模型服务。

npm run dev 无法启动怎么办

先确认依赖安装步骤是否成功,再核对终端中的首个错误和当前分支文件是否完整。Node.js 与 npm 的官方版本要求未提供,不应盲目认定某一版本必然兼容;建议检查最新 README、锁文件和仓库问题记录。

如何验证一次内容修改没有破坏构建

执行 npm run build,并以命令退出状态和构建日志作为最低限度的验证。该命令不能替代链接有效性、内容事实、浏览器兼容性和视觉回归检查,因为资料没有提供这些自动化测试。

为什么不能按固定端口执行 curl 验证

所给 README 与 package.json 没有声明端口或健康检查路径。应读取开发或启动命令的实际终端输出,再在授权的本地环境中验证,不能把 Next.js 的某个默认行为写成该项目的固定合同。

能否直接复制 Prompt Hub 的提示用于生产

可以把示例作为实验输入,但不能跳过目标模型、真实数据和风险场景的复测。仓库没有为示例提供跨模型准确率、稳定性保证或法律适用结论,生产采用前应记录提示版本、模型设置、失败样本和人工审核规则。

如何配置模型 API Key

已提供资料没有 .env.example、环境变量名称或模型 API 配置章节,因此无法给出真实字段。官方仓库未提供该信息,建议以最新 README 和具体示例页面为准,避免创建与项目实现不一致的变量名。

为何 package.json 的仓库地址与当前项目不同

所给文件中的 repositorybugshomepage 指向 Nextra 文档模板,而当前项目地址是 DAIR.AI 的 Prompt-Engineering-Guide。资料没有说明这是模板遗留还是有意配置,自动发布或生成元数据前应检查当前 main 分支并向维护者确认。

是否有 Docker 或云部署说明

资料没有提供 Dockerfile、Compose 文件、云平台配置或正式部署命令。现阶段只能确认 npm run buildnpm run start 两个脚本,其他部署步骤应以最新仓库文档为准。

维护与贡献注意事项

参与维护时,应优先保证事实来源、链接语义和不同语言版本之间的可追踪性。官方资料没有提供完整贡献指南、分支策略或发布流程,因此不能假定提交格式、审查时限和版本计划。

  • 修改技术结论时,核对原始论文、模型文档和页面现有引用,避免把单次实验结果推广为普遍能力。
  • 新增 MDX 内容后执行 npm run build,检查公式、组件和内部链接涉及的构建错误。
  • 翻译时保留技术术语、代码、模型名称与引用关系,并标明原文版本,减少语言页面长期分叉。
  • 升级依赖时记录版本约束和锁文件变化,尤其关注 Next.js、Nextra、React 与 MDX 渲染链路。
  • 提交前查看仓库当前分支中的贡献说明和议题模板;官方仓库未在所给资料中提供具体流程。

项目地址与资源

仓库适合查看源码、历史和参与维护,网站适合阅读较新的指南。以下链接均来自所给 GitHub 元信息或 README,外部课程与社区服务可能适用独立条款。