代码语言

知识点思维导图

28 个知识节点

Prompt Engineering(04) - 提示词的结构化设计

读完后,你应能完成以下任务:

  • 绘制“Prompt Engineering(04) - 提示词的结构化设计 / 为什么需要一个「骨架」”的关键对象与数据流,解释“上一章我们学了三条原则:清晰具体、给足上下文、明确期望输出。”,并用源码位置、日志或 Trace 标注证据。
  • 为“Prompt Engineering(04) - 提示词的结构化设计 / 五个要素,逐个拆解”设计正常与异常输入,验证“✅ 给角色:「你是一名有 10 年经验的合同律师。”,输出首个偏差位置与回归测试结果。
  • 实现“Prompt Engineering(04) - 提示词的结构化设计 / 任务(Task)—— 你到底要它做什么”的最小代码或配置,检验“这是核心,一句话说清你要它干的那件事。”,输出命令、结果与 Diff,并说明不适用边界。

本章目标:掌握一套通用的提示词「骨架」——五要素框架:角色(Role) + 任务(Task) + 上下文(Context) + 输出格式(Format) + 约束(Constraints),从此写任何专业提示词都有章可循。


一、为什么需要一个「骨架」

上一章我们学了三条原则:清晰具体、给足上下文、明确期望输出。它们很管用,但有个问题——全靠你临场发挥,容易漏。 今天记得给上下文,明天忘了说格式;这个需求想到了约束,那个需求又忘了定角色。

解决办法是给提示词一个固定的骨架:每次照着填,就不会漏掉关键部分。就像填一张表格,比起对着白纸干想,又快又全。

这个骨架就是 五要素框架

角色(Role) + 任务(Task) + 上下文(Context) + 输出格式(Format) + 约束(Constraints)

这是本书后面所有进阶技巧的地基。不管以后你学思维链、学少样本、学多智能体,最底层的提示词,都是在这五个要素上做文章。先把它焊死在脑子里。


二、五个要素,逐个拆解

2.1 角色(Role)—— 你希望它「以谁的身份」回答

给模型一个身份,相当于一次性激活它在这个领域的「专业模式」。

  • ❌ 不给角色:「帮我看看这段合同有没有问题。」
  • ✅ 给角色:「你是一名有 10 年经验的合同律师。帮我看看这段合同有没有问题。」

加了角色后,它会自动调动更专业的视角、用词和关注点。

写法:「你是一名 + 形容词(资深 / 经验丰富)+ 职业 / 专家」。越具体越好,必要时加上它的风格倾向,比如「说话直接、不绕弯子的产品经理」。

角色不是必须,但对专业任务几乎总是加分。它本质上就是我们在第 02 章说的 System 人设。

2.2 任务(Task)—— 你到底要它做什么

这是核心,一句话说清你要它干的那件事。用明确的动词开头:写、总结、翻译、分析、对比、改写、生成……

  • ❌ 模糊:「关于这个产品。」
  • ✅ 明确:「为这个产品写一段 100 字的卖点文案。」

写法:一个动词 + 对象 + 关键要求。一次只聚焦一个主任务,别把五件事塞进一句话。

2.3 上下文(Context)—— 它需要知道的背景

把它不知道、但完成任务必须知道的信息给它:你是谁、给谁看、什么场景、相关材料、已有的尝试。

  • 比如:「背景:我们是一款面向老年人的健康监测手环,主打操作简单。这次文案要发在子女常看的社交平台,目的是让子女买给父母。」

写法:用「背景:」开头,分条列出关键信息。相关材料(原文、数据)也放这里。

2.4 输出格式(Format)—— 你要的结果长什么样

明确结果的形式、结构、长度。这一步最容易被忘,但它直接决定结果能不能「拿来即用」。

  • 比如:「用表格输出,三列:方案名 | 优点 | 风险」「分三段,每段配一个小标题」「输出 JSON,字段为 title 和 summary」。

写法:直接描述你要的形态——列表 / 表格 / JSON / 分段,以及数量、长度、要不要标题。

2.5 约束(Constraints)—— 边界和禁忌

告诉它不能做什么、必须遵守什么。这是给结果「划红线」。

  • 比如:「不超过 200 字」「不要用专业术语」「不要寒暄,直接给结果」「只能基于我提供的资料,不要自行编造数据」「语气要正式」。

写法:分条列出「不要 / 必须 / 限制」。尤其针对模型爱犯的毛病(啰嗦、编造、跑题),提前用约束堵住。


三、一个可填空的万能模板

把五要素做成一张「填空表」,以后照着填就行:

【角色】你是一名 ______(资深/专业身份),擅长 ______。

【任务】请帮我 ______(一个明确的动词 + 要做的事)。

【上下文】
- 背景:______(我是谁 / 做什么的)
- 受众:______(给谁看)
- 场景:______(用在哪里)
- 材料:______(相关原文 / 数据,如果有)

【输出格式】
- 形式:______(列表 / 表格 / 分段 / JSON…)
- 长度:______(多少字 / 几条)
- 结构:______(要不要小标题 / 先结论后展开)

【约束】
- ______(不超过 X 字 / 不要术语 / 不要编造 / 语气要求…)
- ______

不是每个空都必须填,但每次都对着它过一遍,能确保你不漏掉关键部分。任务越重要,填得越全。


四、完整示例:从零搭一个「客服回复」提示词

光看模板没感觉,我们用它从零搭一个真实场景的专业提示词——电商客服自动回复

4.1 需求

我开了个网店,顾客经常在收到货后发来各种问题(物流慢、商品有瑕疵、想退换……)。我想要一个提示词,喂进顾客的消息,就能生成一条得体的回复。

4.2 第一步:对着模板,一个个填

【角色】

你是一名经验丰富的电商金牌客服,态度耐心、共情能力强,
擅长安抚情绪并高效解决问题。

【任务】

请根据顾客发来的消息,生成一条客服回复。

【上下文】

- 背景:我们是一家卖手工烘焙饼干的网店,客单价不高,主打口碑和回头客。
- 受众:刚收到货、可能带着情绪的顾客。
- 我们的政策:商品质量问题包退换并补偿一张 5 元优惠券;物流问题可帮忙催单但无法改变时效。

【输出格式】

- 直接输出一条可以发给顾客的回复,不要任何额外解释。
- 100 字以内。
- 结构:先共情安抚 → 再给出具体解决方案 → 结尾留一句暖心话。

【约束】

- 语气真诚、口语化,像朋友,不要机械的官腔。
- 不要承诺我们政策之外的事(比如不能随便答应全额退款 + 退货免邮)。
- 如果顾客情绪激动,先道歉安抚,不要急着讲道理。
- 不要使用「亲」这种过度营销的称呼。

4.3 第二步:拼成完整提示词

把五块拼起来,再留一个放顾客消息的位置:

你是一名经验丰富的电商金牌客服,态度耐心、共情能力强,
擅长安抚情绪并高效解决问题。

请根据顾客发来的消息,生成一条客服回复。

背景信息:
- 我们是一家卖手工烘焙饼干的网店,主打口碑和回头客。
- 政策:商品质量问题包退换并补偿一张 5 元优惠券;
  物流问题可帮忙催单但无法改变时效。

输出要求:
- 直接输出一条可发给顾客的回复,不要额外解释。
- 100 字以内。
- 结构:先共情安抚 → 再给具体解决方案 → 结尾一句暖心话。

约束:
- 语气真诚、口语化,像朋友,不要官腔,不要用「亲」。
- 不要承诺政策之外的事。
- 顾客情绪激动时,先道歉安抚再说方案。

顾客消息如下:
"""
{在这里粘贴顾客发来的消息}
"""

4.4 第三步:试一条

把顾客消息填进去:「我买的饼干到的时候碎了一大半,太失望了!」

模型会给出类似这样的回复:

实在太抱歉了,饼干碎了肯定特别影响心情,是我们包装没做好。
这单我帮您安排重新补发一份,另外送您一张 5 元券作为补偿。
下次一定让它们完完整整到您手上,谢谢您的包容!

先共情、给了政策内的方案、结尾暖心,语气也不官腔——完全符合我们在五要素里定的所有要求。这就是结构化设计的威力:你把要求拆进框架,结果就稳稳落在你的预期里。

注意:这个提示词是可复用的。换任何一条顾客消息进去,都能拿到风格一致、合规得体的回复。一次设计,反复使用——这正是把提示词「工程化」的开始。


五、常见错误(新手最容易踩的坑)

  1. 只有任务,没有其他要素。 「写条客服回复」——没角色、没背景、没格式、没约束,结果只能是通用废话。
  2. 要素混在一起、糊成一团。 背景、要求、约束全挤在一段里,模型抓不住重点。分块、分条写,它更好理解。
  3. 漏掉约束。 不划红线,模型就容易啰嗦、编造、跑偏。约束是专门用来堵这些坑的。
  4. 格式说得太含糊。 「给我整理一下」——整理成啥样?表格还是列表?说清楚。
  5. 死板地非要凑满五个。 简单任务用不上角色就别硬加。框架是帮你「不漏」,不是逼你「凑数」。

六、最佳实践(可落地的心法)

  • 把五要素当成 checklist,每次过一遍。 哪个相关填哪个,确保不漏关键部分。
  • 分块、分条写,别糊成一段。 用「角色 / 任务 / 背景 / 输出 / 约束」这样的标题或分隔,模型读得更准。
  • 约束专门用来治模型的毛病。 它爱啰嗦就限字数,爱编造就要求「只基于给定材料」,爱寒暄就「直接给结果」。
  • 把好用的提示词模板化、存起来。 像上面的客服回复,设计一次,以后换内容反复用。
  • 复杂任务填满,简单任务精简。 框架是工具,不是教条。

七、本章小结

  • 五要素框架 = 角色 + 任务 + 上下文 + 输出格式 + 约束,是写专业提示词的通用骨架。
  • 角色激活专业模式,任务说清要做什么,上下文补背景,格式定结果形态,约束划红线。
  • 用一张「填空模板」对着填,就不会漏掉关键部分。
  • 结构化设计能让结果稳定落在预期内,而且提示词可复用、可工程化。
  • 这是本书后续所有进阶技巧的地基,务必练熟。

至此,你已经掌握了写好提示词的全套基础功:理解模型(02)、三条原则(03)、五要素框架(04)。从下一章开始,我们会在这个地基上叠加更强的技巧,让你的提示词更上一层楼。


八、配套 Demo

提示词工程-demo/04-demo/:提供一份「五要素填空模板」(markdown),可直接复制使用;另外附 2~3 个用该模板填好的真实范例(客服回复、产品文案、技术文章大纲),让你看到框架在不同场景下怎么落地。README 里说明了如何用模板从零搭一个自己的提示词。

九、动手实践:demo:五要素提示词模板与范例

这个 Demo 配合小册 04 章,给你一套可直接复制使用的「五要素提示词模板」,外加 3 个填好的真实范例,让你看到框架在不同场景怎么落地。

9.1 目录内容

  • 五要素填空模板.md
    • 一份空白填空模板(复制走直接填)。
    • 3 个填好的范例:电商客服回复、产品卖点文案、技术文章大纲。

9.2 五要素是哪五个

角色(Role) + 任务(Task) + 上下文(Context) + 输出格式(Format) + 约束(Constraints)

  • 角色:让它以什么身份回答(激活专业模式)。
  • 任务:你到底要它做什么(一个明确动词开头)。
  • 上下文:它需要知道的背景(你是谁、给谁看、什么场景、相关材料)。
  • 输出格式:结果长什么样(列表/表格/JSON、长度、结构)。
  • 约束:不能做什么、必须遵守什么(划红线,专治模型爱啰嗦、爱编造的毛病)。

9.3 怎么用

  1. 打开 五要素填空模板.md,复制最上面的「空白模板」。
  2. 对着五个要素,一个个填空。相关的就填,用不上的(比如简单任务不需要角色)可以删掉。
  3. 把填好的提示词粘到任意 AI 工具里运行。
  4. 结果不满意?大概率是某个要素没说清——回去补「约束」或「输出格式」往往最见效。

9.4 一个小提醒

框架是帮你**「不漏」,不是逼你「凑满」**。

  • 重要、要反复用的任务(比如客服回复模板),五要素尽量填全。
  • 随手一问的小任务,填关键的两三个就够。

9.5 动手练习

挑一个你常做的任务(写周报、回邮件、整理资料),用模板搭一个属于你自己的提示词,存下来反复用。一次设计、反复使用,这就是把提示词「工程化」的第一步。

9.6 配套实践材料

以下材料已并入正文,便于阅读时直接对照和练习。

五要素填空模板.md

# 五要素提示词填空模板

把下面的模板复制走,按需填空,就能搭出一个结构清晰的专业提示词。
不是每个空都必须填,但每次都对着过一遍,确保不漏关键部分。

---

## 空白模板(复制这个去填)

```
【角色】你是一名 ______(资深/专业身份),擅长 ______。

【任务】请帮我 ______(一个明确的动词 + 要做的事)。

【上下文】
- 背景:______(我是谁 / 做什么的)
- 受众:______(给谁看)
- 场景:______(用在哪里)
- 材料:______(相关原文 / 数据,如果有)

【输出格式】
- 形式:______(列表 / 表格 / 分段 / JSON…)
- 长度:______(多少字 / 几条)
- 结构:______(要不要小标题 / 先结论后展开)

【约束】
- ______(不超过 X 字 / 不要术语 / 不要编造 / 语气要求…)
- ______
```text

---

## 范例一:电商客服回复

```
【角色】你是一名经验丰富的电商金牌客服,耐心、共情能力强,擅长安抚情绪并高效解决问题。

【任务】请根据顾客发来的消息,生成一条客服回复。

【上下文】
- 背景:我们是一家卖手工烘焙饼干的网店,主打口碑和回头客。
- 受众:刚收到货、可能带着情绪的顾客。
- 材料(政策):质量问题包退换并补一张 5 元券;物流问题可催单但无法改变时效。

【输出格式】
- 形式:直接输出一条可发给顾客的回复,不要额外解释。
- 长度:100 字以内。
- 结构:先共情安抚 → 再给具体解决方案 → 结尾一句暖心话。

【约束】
- 语气真诚口语化,像朋友,不要官腔,不要用「亲」。
- 不要承诺政策之外的事。
- 顾客情绪激动时,先道歉安抚再说方案。

顾客消息:
"""
{在这里粘贴顾客消息}
"""
```text

---

## 范例二:产品卖点文案

```
【角色】你是一名擅长写转化文案的资深营销文案,文字简洁有力、直击痛点。

【任务】请帮我为下面这款产品写一段卖点文案。

【上下文】
- 背景:一款面向老年人的健康监测手环,主打「操作极简、一键呼救」。
- 受众:给父母选礼物的子女(不是老人本人)。
- 场景:电商详情页顶部的核心卖点区。

【输出格式】
- 形式:一句主标题 + 3 条卖点,每条卖点一句话。
- 长度:总共 120 字以内。
- 结构:主标题要有情感冲击,卖点要具体可感。

【约束】
- 站在子女「想尽孝、又怕父母不会用」的心理写。
- 不要堆砌参数,说人话。
- 不要用「最」「第一」等绝对化用词。
```text

---

## 范例三:技术文章大纲

```
【角色】你是一名资深技术博主,擅长把复杂概念讲得通俗易懂。

【任务】请帮我列一篇技术科普文章的大纲。

【上下文】
- 背景:文章主题是「什么是缓存,以及为什么它能让网站变快」。
- 受众:刚入行、没什么后端经验的初级开发者。
- 场景:发布在公司技术博客,用于科普引流。

【输出格式】
- 形式:分层级的大纲(一级标题 + 每节要点)。
- 长度:3~5 个一级标题,每个标题下 2~3 个要点。
- 结构:从「是什么」到「为什么」再到「举个例子」。

【约束】
- 每个一级标题都要能用一个生活类比来讲。
- 不要写正文,只要大纲。
- 避免一上来就堆术语。
```typescript

十、总结

  • 为什么需要一个「骨架」:上一章我们学了三条原则:清晰具体、给足上下文、明确期望输出。
  • 五个要素,逐个拆解:✅ 给角色:「你是一名有 10 年经验的合同律师。
  • 一个可填空的万能模板:不是每个空都必须填,但每次都对着它过一遍,能确保你不漏掉关键部分。
  • 完整示例:从零搭一个「客服回复」提示词:这就是结构化设计的威力:你把要求拆进框架,结果就稳稳落在你的预期里。
  • 常见错误(新手最容易踩的坑):只有任务,没有其他要素。 「写条客服回复」——没角色、没背景、没格式、没约束,结果只能是通用废话。 -> 要素混在一起、糊成一团。 背景、要求、约束全挤在一段里,模型抓不住重点。分块、分条写,它更好理解。 -> 漏掉约束。 不划红线,模型就容易啰嗦、编造、跑偏。约束是专门用来堵这些坑的。 -> 格式说得太含糊。 「给我整理一下」——整理成啥样?表格还是列表?说清楚。
  • 最佳实践(可落地的心法):用「角色 / 任务 / 背景 / 输出 / 约束」这样的标题或分隔,模型读得更准。

10.1 可运行实验:Prompt 结构与回归对比器

<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>AC-01 在线实验</title>
  <style>
    :root{color-scheme:dark;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#0f1211;color:#e7ece9;font-size:13px}.shell{padding:16px}.top{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px}h1{margin:3px 0;font-size:18px}.id,.value{color:#68e0b5;font-family:ui-monospace,monospace}.summary{margin:4px 0;color:#a5afa9}.run{border:0;border-radius:6px;background:#68e0b5;color:#07110d;padding:8px 14px;font-weight:700}.grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.8fr);gap:12px}.panel{border:1px solid #29322e;background:#141817;padding:12px}.control{display:grid;gap:5px;margin-bottom:11px}.head{display:flex;justify-content:space-between;gap:8px}select,input{width:100%;accent-color:#68e0b5;background:#0d100f;color:#e7ece9}.toggle{display:flex;justify-content:space-between;border-top:1px solid #29322e;padding-top:9px}.toggle input{width:18px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.metric{border:1px solid #29322e;padding:8px}.metric b{display:block;color:#68e0b5;font-size:16px}.stages{display:flex;gap:6px;overflow:auto;margin:10px 0}.stage{border:1px solid #8a6230;padding:7px;min-width:90px}.stage.ok{border-color:#367a61}.stage.fail{border-color:#8b4545}table{width:100%;border-collapse:collapse}td{border-top:1px solid #29322e;padding:7px}.diagnosis{margin-top:9px;border-left:3px solid #68e0b5;background:#101412;padding:9px;line-height:1.5}.danger{border-color:#ef7f7f}@media(max-width:680px){.top,.grid{display:grid;grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}
  </style>
</head>
<body>
  <main class="shell">
    <header class="top"><div><div class="id">AC-01 · DETERMINISTIC LAB</div><h1 id="title"></h1><p class="summary" id="summary"></p></div><button class="run" id="run">运行实验</button></header>
    <section class="grid"><div class="panel"><div id="controls"></div><label class="toggle"><span>注入典型故障</span><input id="failure" type="checkbox"></label></div><div class="panel"><div class="metrics" id="metrics"></div><div class="stages" id="stages"></div><table><tbody id="rows"></tbody></table><div class="diagnosis" id="diagnosis"></div></div></section>
  </main>
  <script>
    const scenario = { title: 'Prompt 结构与回归对比器', summary: '把 Prompt 当作输入契约,观察完整度、冲突和版本回归。', controls: [
        { key: 'sections', label: '已配置结构块', type: 'range', min: 1, max: 5, value: 4, suffix: '/5' },
        { key: 'examples', label: 'Few-shot 示例数', type: 'range', min: 0, max: 4, value: 2, suffix: ' 个' },
        { key: 'schema', label: '输出契约', type: 'select', value: 'json', options: [['none', '无约束'], ['markdown', 'Markdown'], ['json', 'JSON Schema']] }
      ] };
    const controls = document.querySelector('#controls');
    const failure = document.querySelector('#failure');
    document.querySelector('#title').textContent = scenario.title;
    document.querySelector('#summary').textContent = scenario.summary;
    function renderControl(control) {
      const label = document.createElement('label'); label.className = 'control';
      const head = document.createElement('span'); head.className = 'head'; head.innerHTML = '<span>' + control.label + '</span><span class="value" data-value="' + control.key + '"></span>'; label.appendChild(head);
      const input = document.createElement(control.type === 'select' ? 'select' : 'input'); input.dataset.key = control.key;
      if (control.type === 'select') control.options.forEach(option => { const item = document.createElement('option'); item.value = option[0]; item.textContent = option[1]; item.selected = option[0] === control.value; input.appendChild(item); });
      else { input.type = 'range'; input.min = control.min; input.max = control.max; input.step = control.step || 1; input.value = control.value; }
      input.addEventListener('input', updateValues); label.appendChild(input); return label;
    }
    function updateValues() { scenario.controls.forEach(control => { const input = controls.querySelector('[data-key="' + control.key + '"]'); document.querySelector('[data-value="' + control.key + '"]').textContent = control.type === 'select' ? input.options[input.selectedIndex].text : input.value + (control.suffix || ''); }); }
    function readValues() { const values = {}; scenario.controls.forEach(control => { const input = controls.querySelector('[data-key="' + control.key + '"]'); values[control.key] = control.type === 'range' ? Number(input.value) : input.value; }); values.failure = failure.checked; return values; }
    function stage(name, state, detail) { return { name, state, detail }; }
    const aiStage = stage;
    function clamp(value, minimum, maximum) { return Math.min(maximum, Math.max(minimum, value)); }
    function simulate(values) { const fail = values.failure;
          /** Prompt 结构、示例和输出契约形成的完整度。 */
          const score = Math.min(100, values.sections * 14 + values.examples * 6 + (values.schema === 'json' ? 20 : values.schema === 'markdown' ? 10 : 0) - (fail ? 22 : 0));
          return { metrics: [[score + '%', '契约完整度'], [Math.max(0, 5 - values.sections), '缺失结构块'], [fail ? 2 : 0, '约束冲突'], [values.examples, '回归样例']], stages: [stage('Role', values.sections >= 1 ? 'ok' : 'fail', '职责'), stage('Context', values.sections >= 2 ? 'ok' : 'warn', '边界'), stage('Constraints', fail ? 'fail' : values.sections >= 3 ? 'ok' : 'warn', '约束'), stage('Examples', values.examples ? 'ok' : 'warn', '样例'), stage('Schema', values.schema === 'none' ? 'warn' : 'ok', '输出')], rows: [['输出稳定性', values.schema === 'json' ? '可做 Schema 校验并自动重试' : '可能混入解释文本'], ['版本差异', fail ? '新约束与旧示例冲突,必须阻断发布' : '未发现阻断性回归'], ['建议', score >= 85 ? '进入固定样例回归' : '先补齐缺失结构再评测']], diagnosis: fail ? '失败路径:互相冲突的约束会让格式合规率下降,不能只看单次输出。' : '正常路径:结构和输出契约齐全,Prompt 可以作为可测试资产管理。', danger: fail };
         }
    function render() { const result = simulate(readValues()); document.querySelector('#metrics').innerHTML = result.metrics.map(item => '<div class="metric"><b>' + item[0] + '</b><span>' + item[1] + '</span></div>').join(''); document.querySelector('#stages').innerHTML = result.stages.map(item => '<div class="stage ' + item.state + '"><b>' + item.name + '</b><div>' + item.detail + '</div></div>').join(''); document.querySelector('#rows').innerHTML = result.rows.map(item => '<tr><td>' + item[0] + '</td><td>' + item[1] + '</td></tr>').join(''); const diagnosis = document.querySelector('#diagnosis'); diagnosis.textContent = result.diagnosis; diagnosis.className = 'diagnosis' + (result.danger ? ' danger' : ''); }
    scenario.controls.forEach(control => controls.appendChild(renderControl(control))); updateValues(); document.querySelector('#run').addEventListener('click', render); render();
  </script>
</body>
</html>

学完自测

选择所有正确答案;提交后逐项核对判断依据。

1在“提示词的结构化设计”中,需要同时满足“为什么需要一个「骨架」”与“角色(Role)—— 你希望它「以谁的身份」回答”。给定正文约束“它们很管用,但有个问题——全靠你临场发挥,容易漏。”,哪些判断保持了原有处理机制?多选
2“提示词的结构化设计”出现偏差:“在“提示词的结构化设计 / 任务(Task)—— 你到底要它做什么”中,即使不满足“这是核心,一句话说清你要它干的那件事”,结果与副作用仍会保持不变。”已成为实际行为。围绕“任务(Task)—— 你到底要它做什么”与“上下文(Context)—— 它需要知道的背景”,哪些判断能定位被改变的职责或边界?多选
3评审“提示词的结构化设计”方案时,验收条件包含“这一步最容易被忘,但它直接决定结果能不能「拿来即用」。”。关于“输出格式(Format)—— 你要的结果长什么样”与“约束(Constraints)—— 边界和禁忌”的哪些决策符合正文机制?多选