



















在与 AI 结对编程,或解决工作生活疑惑的过程中,优秀的 Prompt 设计是充分发挥 AI 能力的关键。本文将围绕「提示词」介绍它的基本写法以及高阶技巧。
章节内容偏长,可看网站右边目录定位到关键章节。如果单纯想快速掌握一份提示词的写法,只看「快速开始:提示词框架的编写与优化」一章即可。
AI Agent 可理解为「智能业务助理」,是一种能够感知环境、自主决策并执行任务以实现特定目标的智能系统。它以大型语言模型为核心(相当于 AI Agent 的大脑),赋予机器自主性、适应性和交互性,使其能在复杂多变的环境中独立运作。

在市场营销话术中,任何接入了 API 的聊天机器人都可能被称为 Agent,但在严谨的系统架构中,智能体与传统的工具或助手有着本质的区别。
| 特征维度 | 工具 (AI Tools) | 助手 (AI Assistants) | 智能体 (AI Agents) |
|---|---|---|---|
| 触发机制 | 被动:由人类明确调用 | 响应式:响应用户查询 | 主动/半主动:基于目标自主规划 |
| 决策权 | 无:仅执行预定义逻辑 | 低:建议行动,由人决策 | 高:自主决定步骤、工具选择与执行顺序 |
| 状态与记忆 | 无状态(Stateless) | 短期会话记忆 | 长期持久化状态,跨会话记忆 |
| 环境交互 | 单向输出 | 文本交互为主 | 感知环境 -> 推理 -> 行动 -> 观察结果 -> 循环 |
| 典型示例 | 图像识别 API、摘要生成器 | ChatGPT 网页版、客服机器人 | 自主软件工程师(Devin)、自动驾驶系统 |
2025 年也被称为 Agent 元年,标志着人工智能正式从「思考与对话」转向「自主决策与行动」。通用人工智能(AGI)是 AI 的终极形态。同样,构建智能体(Agent)则是 AI 工程应用当下的「终极形态」。
提示词(Prompt) 是对模型的提问。提示词工程(Prompt Engineering) 是一个过程,系统化地设计、测试、优化提示词的过程。
工程、软件工程
工程(Engineering):一项精心计划和设计以实现一个特定目标的单独进行或联合实施的工作。
软件工程(Software Engineering):研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
Prompt 与 AGI
Prompt 在人工智能,特别是 AGI 时代,扮演着至关重要的角色。它不仅是用户与 AI 模型如 ChatGPT 交互的桥梁,更是一种全新的「编程语言」,用于指导 AI 模型产生特定的输出。Prompt 工程成为了 AGI 时代的「软件工程」。
提示词工程目前还处于早期探索阶段,依赖于实践和试错来发现有效的提示词策略,属于经验科学的一种。提示词的效果因模型、版本而异。由于 LLM 对提示词的变化极为敏感,提示词的微小修改,会导致 LLM 大相径庭的输出。由于自然语言的复杂性,提示词往往是离散的,难以精确优化。因此提示工程通常需要大量实验的迭代。
经验科学
又称实征科学,源自经验主义,其建立在经验证据的基础上,能够由其他研究者在相同条件下检验其有效性。
上下文与上下文工程详见:站内文章上下文工程速查手册。
大模型生成文本的过程可以视为一个黑盒,同一模型下对于同一个场景,使用不同的 Prompt 会获得不同的结果。Prompt 作为大模型输入前的最后一关,在多种场景下都起到了至关重要的作用。
提示词分类:
大模型开发平台允许用户自主设置各种不同类型的提示词来进行调试。

设计提示词是一个迭代的过程,需要大量的实验才能获得最佳结果。
我们可以写一个提示词模板(对于大规模的应用软件,提示词模板是必要的),不断进行微调以对比模型的生成效果。我们可以在提示词中预设插槽:
1 | 你是一位专业的{{domain}}专家,请回答以下关于{{topic}}的问题:{{questions}}。 |
提示词的基本结构:指令 + 上下文 + 用户输入 + 输出要求。相应的,写一个好的 Prompt 公式为:立角色 + 述问题 + 定目标 + 补要求。

| 好提示词 | 解释 | 示例 |
|---|---|---|
| 立角色 | 安上一个专家的头衔 | - 你现在是一个小红书的运营 - 你现在是专业软件需求分析师与应用架构师 |
| 述问题 | 告诉它你的问题、背景、要完成的任务和实际情况 | - 请帮 XX 公司汽车体验撰写 5 个问题 |
| 定目标 | 告诉它你希望它为你做什么,让大模型理解意图和目标 | - 输出一份需求文档大纲 |
| 补要求 | 有什么需要它特别注意的 | - 要求用法语输出 |
如果你是调用 LLM 接口的程序员,可以在系统提示词 System 中就立好角色(这也是系统提示词最合适的用法),其他内容放到 User 中。当然,用户提示词中也是可以立角色的。
尝试使用不同的角色
对于相同的数据,数据科学家可能会看到与营销策略师不同的见解。而专门为世界 500 强公司进行客户洞察分析的数据科学家可能会产生又一种不同的结果。
注意单一职责原则,一个 AI 助手只做一件事情。注意避免角色冲突,一个试图既做程序员又做产品经理的 Prompt,往往两样都做不好。

在指令和上下文部分,越具体说明、表达直接,效果越好。不要出现不明确的描述。

测试你的问题是否足够具体和清晰的方法
让一个对任务了解很少的人展示你的提示词,并尝试让他们按照指示操作。如果它们感到困惑,那么说明你的提示词不够清晰。
我们可以使用表格、列表等结构化方式组织上下文信息。
通常大模型都能较为准确的给出我们想要的答案,但是我们不能想当然的认为大模型真能准确理解我们的需求,了解我们说话的「常识」。当我们对大模型的输出有严格的结构化要求时,性格啰嗦的大模型会尽可能为你输出更多的无用信息。如:
1 | 好的,我来帮你分析这个句子的主谓宾结构,以下是按你要求输出的JSON |
这时,我们需要在提示词中添加一些约束条件。技巧:

少样本 Few-Shot
使用 3-5 个多样化、相关的示例提示 LLM。对于复杂任务,示例越多,模型回答越好。使用示例能保证模型的准确性、一致性以及性能。
为了获得最大的效果,请确保示例是相关的、多样的(包含边缘情况和潜在挑战)、清晰的(使用一定的标签或分隔符以保持清醒的结构)。
我们可以采用双轨制示例,即用固定示例(人工编写典型 Case)+ 动态示例(向量检索相似问题)编写提示词。输出的格式示例要完整。
当你有一个涉及许多不同子任务的大任务时,可以尝试将任务分解为更简单的子任务,并随着结果的改善逐步构建。这避免了在提示设计过程中一开始就添加过多的复杂性。
不同类型的提示词
一些字段建议语义化,尽可能使用自然语言描述。比如编号类「类型 1」这样的词,应该改写为「问题类型 A」。
掌握好上述章节提到的提示词的结构化编写方法后,我们可以综合运用这些技巧,用另外的打开方式使用提示词。
1 | 假设我们的 React 应用首屏加载时间超过 3 秒,请: |
1 | 技术选型对比:GraphQL vs REST API |
1 | 我准备这样实现用户权限系统:[描述方案] |
1 | 你是一个 Prompt 工程专家。我将给你一个需求,请你: |
1 | 场景:个人中心页面优化评审会议 |
1 | 任务:优化这段 React 代码的性能 |
1 | 请从以下维度评估前端动画框架的选择(Framer Motion vs GSAP vs Lottie): |
1 | 目标:将页面加载时间从 5 秒优化到 2 秒以内 |
没有完美的 Prompt,只有不断迭代的 Agent。
如何优化一个 Prompt。若一次 Prompt 难以得到最佳效果的时候,需要迭代和优化。三步走:
迭代过程
迭代过程中我们要注意提示词的版本管理,保存有效的 Prompt 模板,建立自己的提示词模板库。
我们可以使用 A/B 测试对比不同 Prompt 的效果。针对特定技术栈或领域,进行针对性的 Prompt 优化,实现领域专精。
图像模型生成提示词要素总结:正向提示词 + 负向提示词(不希望画面出现的内容)
正向提示词:
更多内容详见:Prompt Engineering Guide
程序员在调用模型接口时,我们可以通过预填充 Assistant 消息来引导其回复。这种技术可以直接指导 LLM 使用特定的格式(JSON、XML)回答,甚至帮助 LLM 在进行角色扮演时保证角色的一致性。
比如:
{ 强制 LLM 跳过恼人的智能助手的开场白并直接输出 JSON 对象。这样更简洁、更清晰,也更容易被程序解析而无需额外处理。
大模型本质就是个在和你玩文字接龙游戏。既然这样,我们可以提前说 AI 的话,让 AI 自圆其说。
| Role | 内容 |
|---|---|
| User | 从这段产品描述中提取名称、尺寸、价格和颜色,并以 JSON 对象的形式呈现:
|
| Assistant (预填充) | { |
| Assistant(来自大模型的回答) | "name": "SmartHome Mini","size": "5 inches wide","price": "$49.99","colors": ["black","white"]} |
我们可以使用预填充使 LLM 保持角色。比如,通过预填充角色提示,以避免在福尔摩斯角色扮演过程中 LLM 突然蹦出一句「作为 AI 助手,我很高兴为您解决以下问题…」。
| Role | 内容 |
|---|---|
| User (与 AI 扮演的夏洛克·福尔摩斯的第 50 轮对话) | 你从这只鞋能推断出它的主人是怎样的人吗?<image>muddy_shoe.jpg</image> |
| Assistant (预填充) | [夏洛克·福尔摩斯] |
| Assistant(来自大模型的回答) | 哈!瞧瞧我们发现了什么?华生,这可是个稀罕物件!让我们用专业的眼光来审视这只鞋。你看这泥,并非伦敦常见的黏土,而是那种独特的红褐色——这种富含铁质的土壤,只有在汉普斯特德荒野一带才能找到。然而,鞋底的磨损痕迹却表明,它的主人走路的步伐……步态嘛,更像是惯于踩在白教堂区的鹅卵石上,而非荒野那平缓的坡地…… |
我们可以通过引入中间推理步骤实现复杂推理能力。
1 | 任务:设计一个实时聊天系统 |
使用思维链,可以:
在以下情况不建议使用思维链:
对于人类需要思考的任务,如复杂数学、多步骤分析、编写复杂文档或涉及多个因素的决策,请使用思维链。
关于思维链模式叙述详见 站内文章书摘《Agent 设计模式》-思维链模式。
将思维与少样本提示结合,可以达到很好的效果。

我们可以通过将 「让我们逐步思考 Let’s think step by step」 等特殊词汇添加到原始提示词中,实现零样本思维链。当我们确实没有太多示例提供时,就可以用这种方法。

这种方式可以减少上下文窗口的使用空间,但是功能较弱。它缺乏关于「如何思考」的指导。如果你的任务属于特定领域的特殊任务,这种方法可能不太理想。
我们可以在提示词中概述 LLM 在思考过程中要遵循的具体步骤。
1 | 起草个性化邮件,向捐赠者请求为今年的关爱儿童计划捐款。 |
这种方法缺乏结构化,难以剥离和分离答案与思考过程。
使用像 <thinking> 和 <answer> 这样的 XML 标签来分离推理和最终答案。
1 | 起草个性化邮件,向捐赠者请求为今年的关爱儿童计划捐款。 |
通过少样本思维链采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高思维链在涉及算术和常识推理的任务中的性能。
1 | Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树? |
模型可能输出了多个答案:
1 | 当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70-3 = 67岁。答案是67。 |
我们可以看到大多数回答均为 67,可以认为 67 就是最终的答案。
为了提高大语言模型的性能使其更可靠,我们可以将任务分解为许多子任务。确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分,这就是链式提示。
链式提示可以完成很复杂的任务。LLM 可能无法仅用一个非常详细的提示完成这些任务。在链式提示中,提示链对生成的回应执行转换或其他处理,直到达到期望结果,避免遗漏或错误处理步骤。
除了提高性能,链式提示还有助于提高 LLM 应用的透明度,增加控制性和可靠性。这意味着您可以更容易地定位模型中的问题,分析并改进需要提高的不同阶段的性能。
链式提示的调试
如果 LLM 遗漏了某个步骤或表现不佳,将该步骤单独放在一个提示中。这样你可以微调有问题的步骤,而无需重做整个任务。
链式提示方法:
链式工作流示例
提示链可以用于不同的场景,这些场景可能涉及多个操作或转换。例如,LLM 的一个常见用途是根据大型文本文档回答问题。想要更好阅读大文本文档,可以设计两个不同的提示,第一个提示负责提取相关引文以回答问题,第二个提示则以引文和原始文档为输入来回答给定的问题。换句话说,可以创建两个不同的提示来执行根据文档回答问题的任务。
提示 1:
1 | 你是一个很有帮助的助手。你的任务是根据文档回答问题。第一步是从文档中提取与问题相关的引文,由####分隔。请使用<quotes></quotes>输出引文列表。如果没有找到相关引文,请回应「未找到相关引文!」。 |
输出 1:
1 | <quotes> |
在第一个提示中返回的引文现在可以用作下面第二个提示的输入。您可以对这些引文进行清理,比如移除引用标志。可以在提示链中新建另一个提示来移除或使用这些引用标志。
接下来,第二个提示接收由第一个提示提取的相关引文,并根据文档和这些提取的引文生成一个有帮助的回答。第二个提示可以是以下内容:
提示 2:
1 | 根据从文档中提取的相关引文(由<quotes></quotes>分隔)和原始文档(由####分隔),请构建对问题的回答。请确保答案准确、语气友好且有帮助。 |
输出 2:
1 | 文档中提到的提示技术包括: |
ToT 维护着一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,LM 能够自己对严谨推理过程的中间思维进行评估。LM 将生成及评估思维的能力与搜索算法(如广度优先搜索和深度优先搜索)相结合,在系统性探索思维的时候可以向前验证和回溯。

关于思维书的模式叙述详见 站内文章书摘《Agent 设计模式》-思维树模式。
通用语言模型通过微调就可以完成几类常见任务,比如分析情绪和识别命名实体。这些任务不需要额外的背景知识就可以完成。要完成更复杂和知识密集型的任务,可以基于语言模型构建一个系统,访问外部知识源来做到。这样的实现与事实更加一性,生成的答案更可靠,还有助于缓解「幻觉」问题。
RAG 把一个信息检索组件和文本生成模型结合在一起。RAG 可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。RAG 会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样 RAG 更加适应事实会随时间变化的情况。这非常有用,因为 LLM 的参数化知识是静态的。RAG 让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。
具体可参考:站内文章RAG 模式。
在 ReAct 框架(Reason + Act)中,LLMs 以交错的方式生成推理轨迹和任务操作步骤 。生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况;任务操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。
ReAct 框架允许 LLMs 与外部工具交互来获取额外信息,从而给出更可靠和实际的回应。结果表明,ReAct 可以在语言和决策任务上的表现要高于几个最先进水准要求的的基线。ReAct 还提高了 LLMs 的人类可解释性和可信度。
思维链显示了 LLMs 执行推理轨迹以生成涉及算术和常识推理的问题的答案的能力,但它因缺乏和外部世界的接触或无法更新自己的知识,而导致事实幻觉和错误传播等问题。ReAct 是一个将推理和行为与 LLMs 相结合通用的范例。ReAct 提示 LLMs 为任务生成口头推理轨迹和操作。这使得系统执行动态推理来创建、维护和调整操作计划,同时还支持与外部环境(例如,Wikipedia)的交互,以将额外信息合并到推理中。下图展示了 ReAct 的一个示例以及执行问题回答所涉及的不同步骤。

我们可以看到,该模型生成了「任务解决轨迹」(思考 Thought,行动 Act)。Obs 对应与之交互的环境的观察(例如搜索引擎)。从本质上讲,ReAct 可以检索信息来支持推理,而推理则有助于确定下一步检索的目标。
1 | 问题 科罗拉多造山带东部区域延伸到的区域的海拔范围是多少? |
首先让模型重写提示词,然后把重写后的提示词再发给模型,以期提升回答效果。
1 | 给定一位用户的以下文字,提取其中不带偏见且不代表其观点的部分,以便仅使用该文字就能为问题部分提供不带偏见的答案。 |
如果提示包含有关两个人的信息,我们可以要求模型从其中一个人的角度回答我们的问题。这通常分两步实现:
让模型重新表述问题。
1 | {question} |
两步式 RaR:使用两个不同的模型,一个用于重述问题,然后把原始问题和重述后的问题一并给另一个用于回答大模型。可配合 CoT 使用。
1 | (original) {question} |
在用户问题后加上一句「Read the question again」并重复一遍问题。要求模型重新阅读问题来提高其回答质量的技术,在复杂问题上的效果更为明显。且和多种提示词技术可以共同使用。
1 | Q: {Input Query} |
标准模式和深度思考模式的适用场景:
| 标准模式 | 深度思考模式 |
|---|---|
| - 一般内容生成 - 基本编程辅助 - 常规代理任务 - 计算机使用指导 - 大多数对话应用 |
- 复杂分析:涉及多个参数和因素的金融、法律或数据分析 - 高级 STEM 问题:数学、物理、研究与开发 - 长上下文处理:处理和综合来自大量输入的信息 - 约束优化:具有多个相互竞争需求的问题 - 详细数据生成:创建全面的表格或结构化信息集 - 复杂指令遵循:具有复杂系统提示和需要考虑多种因素的聊天机器人 - 结构化创意任务:需要详细规划、大纲或管理多个叙事元素的创意写作 |
使用深度思考模式将会消耗大量 Token,如果超出了预算,我们在通用模型上使用带有 XML 标签的传统思维链(CoT)提示技巧达到一定的效果。
从 Deepseek(RLM)看推理模型对 Prompt 要求的变化:
对于深度思考,我们可以先使用一般指令,然后用更详细的步骤指令进行故障排除。与其规定思考模式,不如先观察 LLM 的自然思考过程,然后根据您所看到的调整提示。如果您想提供思考指导,可以在提示中以自然语言包含指导,推理模型将能够将这些指令泛化到自己的思考中。
1 | 我将向您展示如何解决一个数学问题,然后我希望您解决一个类似的问题。 |
注意:
对于详细内容生成等用例,您可能希望生成更长的延展思考块和更详细的响应,请尝试以下技巧:
案例:
| 示例 | 说明 | 标准提示 | 增强提示 |
|---|---|---|---|
| 复杂的 STEM 问题 | 复杂的 STEM 问题需要推理模型建立心智模型、应用专业知识并通过连续的逻辑步骤工作——这些过程受益于更长的推理时间。 示例中的复杂的 4D 可视化挑战充分利用了长时间的延展思考,因为推理模型需要处理数学和编程的复杂性。 |
编写一个 Python 脚本,实现一个在正方形内弹跳的黄色球, 确保正确处理碰撞检测。 让正方形缓慢旋转。 |
编写一个 Python 脚本,实现一个在 四维超立方体(tesseract) 内弹跳的黄色球, 确保正确处理碰撞检测。 让四维超立方体缓慢旋转。 确保球始终保持在四维超立方体内。 |
| 约束优化问题 | 约束优化挑战要求推理模型同时满足多个相互竞争的要求,这在允许长时间延展思考时效果最佳,使模型能够有条不紊地解决每个约束。 有多个约束需要平衡,当给予更多空间来思考如何最佳地满足所有要求时,推理模型自然会表现得最好。 |
计划一个为期一周的日本度假。 | 计划一个 7 天的日本之旅,满足以下约束条件: - 预算 2,500 美元 - 必须包括东京和京都 - 需要适应素食饮食 - 偏好文化体验而非购物 - 必须包括一天徒步旅行 - 每天在不同地点之间的旅行时间不超过 2 小时 - 每天下午需要空闲时间打电话回家 - 必须尽可能避开人群 |
| 思考框架 | 结构化思考框架为推理模型提供了一种明确的方法论,当推理模型有足够的延展思考空间来遵循每个步骤时,这种方法可能效果最佳。 通过指定必须按顺序应用的多个分析框架,思考时间自然会增加,因为推理模型需要有条不紊地处理每个框架。 |
为微软在 2027 年前进入个性化医疗市场制定一个全面战略。 | 为微软在 2027 年前进入个性化医疗市场制定一个全面战略。 首先进行: 接下来,基于监管和技术变量进行四种不同未来的情景规划练习。 对于每个情景: 最后,应用三地平线框架来: |
您可以使用简单的自然语言提示来提高一致性并减少错误:
1 | 编写一个计算数字阶乘的函数。 |
系统提示词、用户提示词和大模型输出的内容都是消耗成本的,因此我们可以对其进行优化:
基本技巧:
<document> 标签包装每个文档,并使用 <document_content> 和 <source>(以及其他元数据)子标签以提高清晰度。1 | 您是一位AI医生助手。您的任务是帮助医生诊断可能的患者疾病。 |
表现:1000+ 行超长 Prompt,模型经常忘记关键指令。
原因:模型注意力机制的限制,过长的 Prompt 导致关键信息被淹没。
解决方案:
实战案例:将超长 Prompt 拆分为多个聚焦的小 Prompt,每个控制在 300-500 行以内
表现:相似意图经常混淆,如「为什么限制我的支付?」被误判为其他意图
原因:边界规则描述不清晰,缺少边界 case 的示例
解决方案:
表现:LLM 有时输出 JSON,有时输出自然语言,导致程序解析报错。
原因:格式约束不够强,示例不够多
解决方案:
实战案例:在每个 Agent 的 Prompt 中添加 ## 输出格式 部分,提供 6-7 个示例。
大模型生成与给定上下文不符或事实不正确的文本的现象叫做「幻觉」。
基本的幻觉最小化策略:
使用其他技术:
越狱和提示注入发生在用户精心设计提示以利用模型漏洞,旨在生成不适当内容的情况。虽然一些模型对这些工具有一定的抵抗能力,但我们还可以使用一些额外的防护步骤。
方法:
提示工程设计示例:
1 | 你是道德AI助手。你的回应必须符合我们的价值观: |
链式保障:
1 | 你是AcmeFinBot,AcmeTrade Inc.的金融顾问。你的主要指令是保护客户利益并保持监管合规。 |
提示词泄露可能会暴露您期望在提示词中”隐藏”的敏感信息。虽然没有任何方法是万无一失的,但以下策略可以显著降低风险。
建议仅在绝对必要时才使用防泄露的提示词工程策略。试图使提示词防泄露可能会增加复杂性,由于增加了 LLM 整体任务的复杂性,可能会降低任务其他部分的性能。我们可以先尝试监控技术,如输出筛查和后处理,以试图捕获提示词泄露的实例。
策略 :
User 轮次中强调关键指令,然后通过预填充 Assistant 轮次来重新强调这些指令。Agent 场景下,提示词设计的一些原则:
表现:Agent 忘记用户之前的诉求,重复提问,用户体验差
原因:依赖 LLM 从历史对话中推断状态,但 LLM 不擅长状态管理
解决方案:
## 当前状态 部分通过上述章节的内容我们可以感知到,写好一份提示词并不容易。甚至在一些情况下,特殊写法的提示词发挥很大的魔力。
提示词是一种重要的资产,有不少专门收集高质量提示词的网站:
分享优质提示词模板的文章:
在大语言模型刚被引入实际应用时,提示词工程发挥了极其关键的作用。通过对输入内容进行精心设计,可以在不改动模型本身的前提下,显著改善输出质量。这种方式成本低、见效快,很快成为开发者最常用的调优手段。只要任务本身相对简单,提示词往往就足以支撑一个可用的应用。因此,在相当长的一段时间内,人们会把模型能力的提升,与提示词写得好不好直接画上等号。
当任务开始涉及多步骤推理和持续决策时,提示词工程的局限逐渐显现出来。提示词本质上是一种静态描述,它擅长表达规则,却不擅长反映变化。随着任务流程拉长,模型需要参考的信息越来越多,单一提示往往会被新的上下文内容不断稀释,最终失去控制力。
提示词效果往往高度依赖具体模型版本和参数设置。当模型升级或环境发生变化时,原本表现良好的提示词,可能会突然失效。这种不确定性,使得提示词难以作为长期稳定的工程方案。
随着 Agent 系统逐渐成熟,人们开始意识到,单靠提示词已经无法承担全部控制职责。模型的行为不只受到提示内容的影响,还与上下文中呈现的信息结构密切相关。即使提示词本身保持不变,只要上下文发生变化,模型的决策结果也可能出现明显差异。这促使工程实践开始向更系统化的方向发展,提示词逐渐退居为其中的一个组成部分,而不再是唯一的调控工具。
我最初接触到「提示词工程」这个词时其实是有些匪夷所思的。我想,既然连提示词都需要「工程化」,那我们还要 AI 来干嘛?隐隐约约觉得这不应该是我们未来发展的方向,也不会存在多久,更不可能成为学科。
这个问题的提出原因在于那时的我没有分清楚 LLM 和 AGI 的区别。LLM 是一块煎好的油饼,提示词是上下的其他配料。我们所幻想要到达的 AGI 是汉堡。提示词工程要求我们要自己配好配料。不同的厂商也许提供了不同口味的汉堡成品或半成品,但我们可以通过添加自己的配料制作符合自己口味的汉堡。
那为什么不直接训出一个 AGI?只能说目前还不能做到。毕竟直接煎出一个完整汉堡是不太现实的,也不符合做菜的逻辑。
搞 Prompt 如同巫术,也许上帝不会回应你,但 AI 之神会。
代码按照既定的白盒逻辑有序运行,对于一个程序员来说,这应该基本的常识个直觉。所以我对提示词的另一点困惑在于它有点反直觉了。提示词工程像是在用一个不确定的东西约束一个不确定的东西。我们做的努力并不总是 99% 有效;对于不同模型,同样的提示词下作用效果却不同。感觉自己像是一个读了一点古籍的法师,符咒压不压得住魔丸灵珠,既看功力,也看造化。
从「确定性编程」到「概率系统工程」
如今,LLM 的工程生态已经完成了一次蜕变,但更大的挑战在于「人」的思维转型。对于算法研究员和应用开发者而言,全面拥抱 AI 和 LLM 新时代,意味着必须完成从传统软件思维到智能体思维(Agentic Thinking)的深刻跨越……
开发者习惯了 if-else 的确定性逻辑,但 LLM 本质上是概率性的。新的挑战在于如何在一个不确定的核心(LLM)之上构建可靠的系统。这要求我们掌握提示词工程(Prompt Engineering)来引导模型,利用评估驱动开发(Evaluation-Driven Development)来量化效果,并设计鲁棒的容错与回退机制。代码不再只是指令的集合,而是对模型思考过程的编排。
——微信公众号 @腾讯云开发者 《大模型狂飙2025:一篇文理清从模型到智能体的架构演进》
本文中由 AI 图片提示词嵌于 ALT 属性中。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。