type
Post
status
Published
date
Feb 15, 2025
slug
summary
本文系统梳理Prompt Engineering的起源、核心原理(Token机制、温度参数、注意力衰减)、四大主流框架(RICE/RICECO/CRISPE/CO-STAR)横评对比,以及Zero-shot、Few-shot、Chain-of-Thought等实战技巧与避雷指南,最后探讨Multi-Agent协同中的Prompt设计原则与未来演进方向。
tags
AI Agent
category
AI
icon
password
wordCount
4510
你有没有发现,同样一个 AI 模型,有人用它写出惊艳的技术方案,有人只能得到一堆正确的废话?差距往往不在模型本身,而在于你怎么“问”。Prompt Engineering(提示词工程)就是这门“问”的艺术与科学。本文将从原理出发,拆解 RICE、CRISPE、CO-STAR 等主流框架,配合 Zero-shot、Few-shot、Chain-of-Thought 等实战技巧,带你从“能用 AI”进化到“会用 AI”。
什么是Prompt Engineering
定义与起源
你有没有过这种经历——跟AI说"帮我写个方案",结果它给你一坨不知所云的废话?然后你加了一句"你是一个资深产品经理,请用结构化的方式输出",瞬间输出质量飙升三个档次?
这个"加戏"的过程,就是 Prompt Engineering(提示词工程) 的雏形。
Prompt 直译就是"提示",在AI语境下指的是你输入给语言模型的那段文字。Prompt Engineering 则是一门系统化设计、优化这些输入的技术,目标是让AI更精准、更稳定地输出你想要的结果。
一句话定义: Prompt Engineering 是通过精心设计输入文本,引导大语言模型产出高质量输出的工程化方法。
这个概念的起源可以追溯到 2020年 GPT-3 发布。当时 OpenAI 发现,同一个模型在不同提示词下表现天差地别——不需要重新训练模型,只需要换个问法,就能解锁完全不同的能力。这个发现直接催生了一个新领域。
到了 2022-2023年,随着 ChatGPT 爆火,Prompt Engineering 从学术圈走入大众视野。Google、Anthropic、Meta 等大厂纷纷发布自己的 Prompt 最佳实践指南,"提示词工程师"甚至一度成为硅谷最热门的岗位之一。
为什么需要Prompt Engineering
你可能会想:AI不是很聪明吗?我随便说一句它不就懂了?
还真不是。大语言模型本质上是一个概率预测机器——它在猜你"下一个最可能想看到的词"是什么。你的输入越模糊,它猜的方向就越发散;你的输入越精准,它的输出就越聚焦。
举个例子:
提示词 | 输出质量 | 问题 |
帮我写篇文章 | ⭐ | 主题不明、风格不定、长度随缘 |
写一篇关于K8s的技术博客 | ⭐⭐⭐ | 有方向了,但深度和结构不可控 |
你是资深DevOps工程师,写一篇面向初学者的K8s入门博客,包含核心概念、架构图和实战案例,风格幽默易懂,2000字左右 | ⭐⭐⭐⭐⭐ | 精准命中需求 |
同一个模型,三种问法,三种人生。
Prompt Engineering 的核心价值在于:
- 降低沟通成本 — 一次写对,不用反复"调教"
- 提升输出稳定性 — 减少AI的"幻觉"和跑偏
- 解锁隐藏能力 — 很多模型能力只有通过特定Prompt才能触发
- 节约Token费用 — 精准的Prompt = 更少的来回 = 更低的API调用成本
Prompt Engineering的核心原理
语言模型如何理解提示词
要写好Prompt,你得先搞清楚对面坐的"这位同事"是怎么工作的。
大语言模型(LLM)并不"理解"语言——它做的事情本质上是统计学上的模式匹配。当你输入一段文字,模型会:
- 分词(Tokenization) — 把你的文字拆成一个个Token
- 编码(Encoding) — 将Token转换为高维向量
- 注意力计算(Attention) — 通过Transformer架构分析Token之间的关系
- 概率预测(Prediction) — 计算下一个Token出现的概率分布
- 采样输出(Sampling) — 根据概率分布选择下一个Token
关键洞察: 模型并不是在"思考你的问题",而是在"预测你最可能想看到的回答"。所以Prompt的核心技巧就是——让模型的预测方向和你的期望方向对齐。
这就解释了为什么"你是一个资深工程师"这种角色设定有效——它激活了模型在训练数据中学到的"资深工程师的语言模式",让后续输出更符合这个角色的风格和深度。
上下文窗口与Token机制
上下文窗口(Context Window) 是模型一次能"看到"的文本长度上限,以Token为单位。
模型 | 上下文窗口 | 约等于 |
GPT-3.5 | 4K / 16K tokens | 约 3,000 / 12,000 中文字 |
GPT-4o | 128K tokens | 约 96,000 中文字 |
Claude 3.5 | 200K tokens | 约 150,000 中文字 |
Gemini 1.5 Pro | 1M tokens | 约 750,000 中文字 |
几个实用要点:
- 中文比英文更"贵" — 一个中文字通常需要 1.5-2 个Token,英文单词约 1-1.5 个Token
- 输入+输出共享窗口 — 你的Prompt越长,留给模型回答的空间就越小
- 注意力衰减 — 虽然窗口很大,但模型对中间部分的"注意力"往往弱于开头和结尾(Lost in the Middle 现象)
实战建议: 把最关键的指令放在Prompt的开头和结尾,中间放补充上下文。这能最大化模型对关键信息的注意力。
温度参数与输出控制
Temperature(温度) 是控制模型输出"创造力"的关键参数,取值范围通常在 0-2 之间。
- Temperature = 0 — 输出最确定、最保守,每次运行结果几乎一致。适合写代码、做数据分析
- Temperature = 0.7 — 平衡模式,兼顾创意和准确性。适合写文章、做翻译
- Temperature = 1.5+ — 脑洞大开模式,输出更随机、更有创意。适合头脑风暴、创意写作
除了温度,还有两个常用参数:
- Top-P(核采样) — 只从概率最高的前P%的Token中采样。Top-P = 0.9 意味着排除掉概率最低的10%选项
- Max Tokens — 限制输出的最大长度
参数搭配速查:
代码生成 → Temperature: 0, Top-P: 0.95
技术文档 → Temperature: 0.3, Top-P: 0.9
博客文章 → Temperature: 0.7, Top-P: 0.95
创意写作 → Temperature: 1.0, Top-P: 1.0
Prompt的黄金结构
写Prompt和写代码一样——没有框架的代码能跑,但有框架的代码更好维护、更可复用。下面介绍几个主流的Prompt结构框架。
RICE / RICECO 框架
RICE 是最简洁实用的入门框架,四个字母代表四个核心要素:
- R — Role(角色) :定义AI扮演的身份
- I — Instruction(指令) :明确具体任务
- C — Context(上下文) :提供背景信息
- E — Examples(示例) :给出期望的输出样例
扩展版 RICECO 在此基础上增加了两个维度:
- C — Constraints(约束) :限制条件,比如"不超过500字"、"不要使用专业术语"
- O — Output Format(输出格式) :指定输出结构,比如"用Markdown表格"、"用JSON格式"
实战示例:
CRISPE 框架
CRISPE 更适合需要深度输出的复杂场景:
- C — Capacity(能力) :AI应具备的专业能力
- R — Role(角色) :扮演的身份
- I — Insight(洞察) :你掌握的背景知识或数据
- S — Statement(声明) :具体要完成的任务
- P — Personality(个性) :输出的风格和语气
- E — Experiment(实验) :要求多个方案供选择
实战示例:
CO-STAR 框架
CO-STAR 由新加坡GovTech团队提出,在结构化程度上更胜一筹:
- C — Context(背景) :任务的背景信息
- O — Objective(目标) :你希望AI完成什么
- S — Style(风格) :写作风格或参考对象
- T — Tone(语气) :正式/轻松/幽默等
- A — Audience(受众) :目标读者是谁
- R — Response Format(响应格式) :输出的格式要求
实战示例:
框架横评对比
框架 | 核心要素 | 适用场景 | 复杂度 | 特点 |
RICE | 角色+指令+上下文+示例 | 日常对话、快速任务 | ⭐⭐ | 简洁万能,入门首选 |
RICECO | RICE+约束+输出格式 | 需要精确控制输出的任务 | ⭐⭐⭐ | RICE的增强版,更可控 |
CRISPE | 能力+角色+洞察+声明+个性+实验 | 复杂技术方案、深度分析 | ⭐⭐⭐⭐ | 强调多方案对比 |
CO-STAR | 背景+目标+风格+语气+受众+格式 | 内容创作、文档写作 | ⭐⭐⭐⭐ | 对受众和风格拆分最细 |
选择建议: 没必要死记硬背所有框架。日常用 RICE 就够了,写长文或做技术方案时切换到 CO-STAR 或 CRISPE。框架是工具,不是枷锁。
Prompt Engineering实战技巧
Zero-shot vs Few-shot
这是Prompt Engineering中最基础也最重要的两个策略。
Zero-shot(零样本) — 不给任何示例,直接让模型完成任务:
Few-shot(少样本) — 先给几个输入输出的示例,再让模型处理新输入:
Few-shot 的输出质量通常更高,因为示例帮模型"校准"了输出风格和格式。
策略 | 优点 | 缺点 | 适用场景 |
Zero-shot | 省Token、快速 | 输出格式不可控 | 简单任务、模型能力足够时 |
Few-shot | 输出更稳定、格式可控 | 消耗更多Token | 格式要求严格、风格需统一 |
Chain-of-Thought(思维链)
CoT(Chain-of-Thought) 是2022年Google提出的技术,核心思路是:让模型"说出"推理过程,而不是直接给答案。
普通Prompt:
CoT Prompt:
仅仅加了一句"请一步步推理",模型就会展开中间步骤:
第一步:计算苹果费用 = 3 × 5 = 15元
第二步:计算橙子费用 = 8 × 2 = 16元
第三步:总费用 = 15 + 16 = 31元
这个技巧在数学推理、逻辑分析、代码调试等需要多步骤推理的场景中效果显著。
CoT 的变体还有:
- Zero-shot CoT — 只加"Let's think step by step"就能激活推理能力
- Self-Consistency — 让模型用CoT生成多个推理路径,取多数一致的答案
- Tree-of-Thought(ToT) — 多分支探索+回溯评估,适合复杂决策问题
提示词迭代优化流程
写Prompt不是一次性的事,而是一个迭代优化的过程。推荐以下工作流:
每一步的关键动作:
- 明确目标 — 在写Prompt之前,先用一句话说清楚"我到底要什么"
- 初版Prompt — 用RICE框架快速搭建第一版
- 测试输出 — 运行3-5次,观察输出的稳定性
- 分析问题 — 输出跑偏了?格式不对?太浅了?太长了?
- 调整Prompt — 针对性修改:加约束、加示例、换角色、调温度
- 固化模板 — 效果稳定后,存为可复用的Prompt模板
迭代核心原则: 每次只改一个变量。如果同时改了角色、加了示例、又调了温度,你就无法判断是哪个改动起了作用。
常见坑点与避雷指南
踩过的坑比读过的论文多,这里总结几个最常见的翻车现场:
❌ 坑1:指令太模糊
❌ 坑2:上下文过载
把整个项目文档丢给AI,期望它自动提炼重点。结果?模型被淹没在信息海洋里,输出反而更差。
✅ 解法: 只提供与当前任务直接相关的上下文,其他信息用一句话概括。
❌ 坑3:否定式指令
模型对"不要做什么"的理解远不如"要做什么"精准。
❌ 坑4:期望模型有实时信息
模型的训练数据有截止日期。问它"今天天气怎么样"或"最新的K8s版本是什么",大概率得到过时信息。需要实时信息时,应该结合搜索工具或RAG架构。
进阶应用场景
日常工作中的Prompt实战
代码生成与Review
技术文档撰写
数据分析与报表
Multi-Agent协同中的Prompt设计
在Multi-Agent架构中,Prompt的作用从"指导一个模型"升级为"协调多个Agent"。每个Agent都需要精心设计的System Prompt来定义它的职责边界。
Agent角色定义示例
关键设计原则
Multi-Agent Prompt 设计四原则:
1. 职责单一 — 每个Agent只做一件事,避免"全能Agent"
2. 边界清晰 — 明确定义什么该做、什么不该做
3. 通信协议 — 统一Agent之间的输入输出格式(推荐JSON)
4. 失败回退 — 定义异常情况下的处理策略
这部分和 ReAct、DAG工作流等Agent编排范式密切相关,更深入的讨论可以参考 为什么AI框架这么多?拆解Agent编排的五种流派。
总结与展望
Prompt Engineering 是当下与AI协作最核心的技能。回顾全文要点:
- 核心原理 — 模型在做概率预测,Prompt的本质是引导预测方向
- 结构框架 — RICE入门够用,CO-STAR/CRISPE应对复杂场景
- 实战技巧 — Few-shot提升稳定性,CoT激活推理能力,迭代优化是关键
- 进阶应用 — 从单模型Prompt到Multi-Agent协同,Prompt设计的复杂度在升级
展望未来,Prompt Engineering 正在经历一个有趣的悖论:
一方面,模型越来越智能,"理解能力"越来越强,简单的自然语言就能完成复杂任务。另一方面,Agent、RAG、Tool Use等新范式的涌现,让Prompt的设计空间反而在扩大——你不再只是写一段话给模型,而是在设计一整套"AI协作系统"的通信协议。
所以,Prompt Engineering不会消失,它只是在进化。从"写好一句话"进化到"设计好一个系统"。
掌握这门技能,就是掌握了与AI时代对话的语言。
📎 参考文章
- Prompt Engineering Guide — 最全面的Prompt工程指南
- OpenAI Prompt Engineering Best Practices — OpenAI官方最佳实践
- CO-STAR Framework(GovTech Singapore) — CO-STAR框架详解
- RICECO Prompting Framework — RICECO框架指南
欢迎您在底部评论区留言,一起交流~
