此文为本人笔记+AI调结构处理得来
本文 = 上篇·阅读笔记(菜鸟教程《提示词工程》个人总结)+ 下篇·实战检验(今天学完后两个应用会话的成果检查)。
前半是”学到的方法”,后半是”用得怎么样”。对照着看,理论立刻有了落点。
- 阅读笔记原文:https://www.runoob.com/ai-agent/prompt-engineering.html
- 实战对象:Hexo 运维助手初始化(15 轮)/ 长跑教练评估跑步数据(5 轮)
目录
- 上篇 · 阅读笔记(理论框架)
- 下篇 · 实战检验(今日应用成果)
上篇 · 阅读笔记(理论框架)
以下为个人观后总结,保留原文要点与个人批注。
一、核心目标:什么是提示词工程
使 ai 回复的质量高,准确率高,一次过。要求降低 ai 幻觉,降低歧义。
一句话记住它: 提示词工程 = 降低模糊性,提升你与 AI 之间的对齐度。
文章讲述的技巧如图:

二、三种消息角色
| 角色 | 比喻 | 作用 | 要求 |
|---|---|---|---|
| System(系统提示) | 幕后导演 | 此处进行角色设定、规则和行为准则,防幻觉,在对话开始前生效 | 需要精炼 |
| User(用户) | 演员搭档 | 你每次发出的消息,提出任务或具体问题 | 清晰直接,运用技巧 |
| Assistant(助手) | AI 演员 | AI 的回复;也可以预填内容,让 AI 从那里继续 |
三、System 端:系统提示词怎么用
3.1 为 AI 分配角色(角色设定)
为 AI 分配角色,包含核心立场,专业领域,行为方式。
💡 个人批注:有些笼统,核心立场其实类似于偏好,防幻觉。如:(只推荐有证据支持的方案)
- 行为方式:沟通风格,表达偏好
3.2 避免 AI 胡说八道(防幻觉)
- 明确允许 ai 说我不知道
- 限制 ai 只能用我提供的信息
- 先找证据再给结论
- 标注置信度
四、User 端:用户消息怎么写
4.1 清晰直接地表达
让指令更清晰的 4 个技巧:
- 明确受众和语气
- 加约束,正向约束和负面约束,比如说字数,要什么,不要什么
- 说明最终用途
- 把复杂任务拆成给定步骤
🔎 小提示:原文其实是 5 个技巧(明确受众语气 / 规定输出篇幅 / 同时给要与不要 / 说明最终用途 / 拆成步骤)。这里把”规定输出篇幅”合并进了”加约束”,可核对是否漏记。
4.2 用 XML 标签分离数据
用 XML 标签把数据包裹起来如 <article></article> 等,清晰,不出差错。
4.3 精准控制输出格式
相当于是一个填空题,给出格式让填空。
4.4 让 AI 逐步思考(思维链)
触发思维链方式(感觉 deepseek 中”深度思考”好像已经涵盖这部分了):
在
<thinking>中写下推理过程,<answer>中给出最终答案,其中<thinking>不需要完美,像草稿般思考按要求逐步来
这道题请一步一步地思考,展示每一步的推导过程。
此处适合数学题、逻辑推理。
先列论据再下结论
先给出理由再判断结果。
此处适合主观判断题,能有效减少 AI 的立场偏向。
4.5 用示例教会 AI(少样本)
分别在要求输出模式的每个类别给一个案例,并且格式完全统一。
五、元提示(Meta-Prompting)
写提示词让 ai 写提示词,不断优化迭代,提问题。
六、四要素框架(万能模板)
文章收尾处提炼的速查表框架,建议背下来——它是后面所有技巧的浓缩版:
| 要素 | 问自己 | 示例 |
|---|---|---|
| 角色 | AI 是什么身份? | 你是一位专业的…… |
| 指令 | 具体做什么? | 请分析 / 总结 / 生成…… |
| 背景 | 前提信息是什么? | 读者是……用途是…… |
| 限制 | 格式/长度/边界? | 不超…字,JSON,不要…… |
我的点评: 这四要素其实是”WHO + WHAT + WHY/CONTEXT + HOW”。写任何提示词前,先在脑子里过一遍这四个问题,覆盖率就已经超过 80% 的随手提问。
📌 待补充:原文有、笔记暂未记录
以下内容为菜鸟教程原文包含的章节,笔记目前未记录,可按需自行补上(不影响上面已有的内容)。
标注 ⭐ 的为你完全未涉及、建议优先补的核心章节。
- ⭐ 为什么提示词工程如此重要(对普通用户 / 对开发者)
- System Prompt 的价值(”工作手册”比喻、设定一次全程遵守)
- ⭐ 了解 Token 与上下文窗口
- 什么是 Token
- 上下文窗口:AI 的”工作记忆”
- Token 意识对提示词设计的影响(含”Lost in the Middle / 关键指令放头尾”)
- 为 AI 分配角色(已记三要素,原文另有:为什么有效 / 有无角色的差异 / 常用角色模板)
- 用 XML 标签分离数据与指令(已记基础用法,原文另有:为什么要分离 / 多文档处理示例 / 常用标签一览)
- 精准控制输出格式(已记”填空题”思路,原文分三法:①直接描述 ②提供模板 ③预填充进阶 / 常见场景表)
- 让 AI 逐步思考(已记触发方式,原文另有:为什么先思考更准确 / 对比示例 / 实战示例:邮件优先级分类)
- 用示例教会 AI(已记,原文另有:好示例的三个标准 / 示例 + 其他技巧组合)
- 避免 AI 胡说八道(已记四条,原文另有:为什么会幻觉 / 五种防幻觉策略 / 防幻觉 System Prompt 模板)
- ⭐ 构建完整的复杂提示词 → 五段式架构(角色目标 / 背景数据 / 行为规则 / 输出格式 / 示例;含法律合同审查案例)
- ⭐ 提示词链(Prompt Chaining)(超复杂任务拆分、简历筛选流水线示例)
- ⭐ 迭代优化工作流(写→测→改→再测循环 / 版本管理 / 测试关键问题)
- 速查表:各技巧适用场景一览
- ⭐ 发布前检查清单(上线前 11 项检查)
- ⭐ 总结(三行动建议:模仿改写 / 不断迭代 / 建立个人提示词工具箱)
下篇 · 实战检验(今日应用成果)
检查口径:把”补的要求”和”突发奇想”排除在失败列之外(它们是需求演进,不是提示词缺陷)。
数据安全:长跑会话 #2 原含明文 Garmin 账号与密码,下方记录中已脱敏,不留存任何真实凭证。
阅读方式:每轮的「原始输入」默认折叠,点标题即可展开。
记录规范:提示词里的 XML 标签一律用反引号包成行内代码(如<info>),整段提示词则放进代码块并标 ```xml(标签会被高亮着色)。这样标签既不会被浏览器当成 HTML 吞掉,也能和对话正文在视觉上分层。
逐轮记录与句评
Hexo 运维助手(15 轮)
【#1】System Prompt 初始化(五段式)
原始输入:五段式 System Prompt 全文
1 | # 角色 |
AI 操作:通读 546 行运维手册 → 输出「岗位就绪确认」(站点配置快照 + 行为约束)→ 待命。
句评:
- ✅ 优点:角色 / 背景 / 行为规则 / 输出格式四段齐全,且接上真实手册路径;零歧义、零补充,一次就位。
- ⚠️ 缺点:未显式写”知识边界”(只答 Hexo/Stellar 相关),靠背景段暗示。
- 🔧 可优化点:补第 5 段「示例」(贴一个改动方案样例);加一句边界声明防跑题。
【#2】需求 + XML 包裹参考方案
原始输入:需求一句话 + <eg1> 包裹的 AI 参考方案
“我的需求:想做一个功能,能在文章页面内运行 html 文件,运行框风格需要和博客风格一致。下面是一个 ai 给出的方案给你参考”
用到标签:<eg1>(包裹 AI 给的参考方案,与你的指令分离)
<eg1> 内包裹了一份约 600 字的 AI 参考方案,核心三步:① 手写 run_html 标签脚本放 scripts/;② 建 source/demos/ 并在 _config.yml 的 skip_render 登记;③ 文章里写 {% run_html demos/hello.html %}。
AI 操作:先只读核查环境(scripts 目录、skip_render、Stellar CSS 变量、标签名冲突)→ 再出「改动点/原因/影响/回滚」四方块方案。
句评:
- ✅ 优点:”需求 + 参考”分离写,用 XML 标签把参考方案隔离,对应文章”分离数据与指令”。
- ⚠️ 缺点:没明确要求”先核查我的实际环境再给方案”,这点靠 AI 自发完成。
- 🔧 可优化点:补一句”请先核查我的 Stellar 环境与已有脚本,再决定是否照搬”。
【#3】带判定标准的核查请求
原始输入
“规范要求一下,我在每篇文章(所有类型)中贴的 html 会放在同级同名文件夹下,有没有影响,没影响就不用再改了”
AI 操作:判断
_posts无影响、wiki/notebooks需补skip_render,并建临时文件实测验证。
句评:
- ✅ 优点:给了明确判定标准(”没影响就不改”),”所有类型”把范围也限定清楚。
- ⚠️ 缺点:结论里对
notebooks是类比推断,当时并未实测(留下隐患)。- 🔧 可优化点:加一句”每种类型都请实际构建验证后再下结论”。
【#4】模糊纠正(偏弱轮)
原始输入
“因为我文章图片是在广义文章的同级同名文件夹下的,这个保持一致。你再自检一下”
AI 操作:当轮未产出有效内容(指令指代模糊,无从下手)。
句评:
- ✅ 优点:意识到要自检,方向是对的。
- ⚠️ 缺点:”这个保持一致”指代不明(指图片约定还是 html 约定?),”再自检一下”也没有判定标准。
- 🔧 可优化点:指出具体对象 + 给出判定(下一轮 #5 就是标准示范)。
【#5】补明确对象 + 判定
原始输入
“因为我文章图片是在广义文章的同级同名文件夹下的,这个保持一致。你再自检一下,感觉你是错的。先看我每篇日记中的图片位置,你跟那个保持一致”
AI 操作:翻真实日记确认图片位置 → 做反证实验(临时去掉
skip_render重建看是否被渲染成页面)→ 坐实结论并还原配置。
句评:
- ✅ 优点:立刻把模糊纠正为具体指令——给了对象(”先看我每篇日记中的图片位置”)和判定(”感觉你是错的”)。
- ⚠️ 缺点:几乎挑不出问题,属教科书级纠错。
- 🔧 可优化点:可再补一句”把验证过程与产物路径贴给我”,便于复核。
【#6】明确操作指令
原始输入
“给我运行一次 hexoServer 试试”
AI 操作:还原配置 → 清理临时验证文件 →
clean全量重建 → 起本地 server(4000)。
句评:
- ✅ 优点:指令极短但对象明确(承接上一轮自检结论),无歧义。
- ⚠️ 缺点:未说明起完要什么反馈。
- 🔧 可优化点:加”起完把访问地址告诉我”。
【#8】上下文授权
原始输入
“好的你帮我搞”
AI 操作:选日记
days-260923→ 在其同名文件夹建交互 demo → 日记末尾插入{% run_html %}标签 → 实测通过。
句评:
- ✅ 优点:指代清楚(承接上一轮”嵌进真实日记”的提议),AI 准确接住。
- ⚠️ 缺点:单独看偏空,完全依赖上下文补全。
- 🔧 可优化点:脱离连续对话时,把对象写进句子里。
【#9】清晰修改需求
原始输入
“都挺不错,但是要修改一点,再不改原有功能的基础上,运行窗口周围要加圆角,符合我这个博客的圆角风格即可。”
AI 操作:改 CSS——iframe 内缩留白 +
border-radius: var(--block-radius),复用主题变量。
句评:
- ✅ 优点:约束(”不改原有功能”)+ 成功标准(”加圆角、符合博客圆角风格”)都给全。
- ⚠️ 缺点:基本无。
- 🔧 可优化点:可指定具体变量或数值,避免”符合风格”这种主观表述。
【#10】叠加功能 + 描述具体
原始输入
“都挺不错,但是要修改一点,再不改原有功能的基础上,运行窗口周围要加圆角,符合我这个博客的圆角风格 此外,加一个功能,在右上角增加一个功能,源码/样例 转换。按一下就可以显示源码,再按一下就可以进行运行”
AI 操作:标签输出加切换按钮 + 隐藏源码容器 → 新增外链 JS(事件委托 + fetch +
textContent转义)→ 经inject.head_end注入 → 重启 server 生效。
句评:
- ✅ 优点:新功能描述具体(位置:右上角;行为:按一下显示源码、再按运行),两个改动边界清晰。
- ⚠️ 缺点:两个需求挤在一条里,验收时要一起看。
- 🔧 可优化点:拆成两条分别下单,逐条验收。
【#11】诉求 + 约束
原始输入
“截图给我,或者用我能看到的方式,我在手机上运行不了”
AI 操作:装 Playwright + Chromium → 无头浏览器打开本地页 → 截 3 张高清图(运行态 / 源码态 / 带上下文)。
句评:
- ✅ 优点:诉求(”截图或我能看的方式”)+ 约束(”手机打不开 localhost”)都明说,AI 立刻找到可行路径。
- ⚠️ 缺点:基本无。
- 🔧 可优化点:可指定截哪几张、是否要 2x 高清。
【#14】清理指令
原始输入
“可以把示例清理掉了,谢谢”
AI 操作:先确认清理范围 → 备份 → 删两个示例 html + 移除日记演示段 → 清陈旧产物 → 重建验证 → 重启 server。
句评:
- ✅ 优点:指令清楚,AI 先确认范围再备份,符合你定的运维规则。
- ⚠️ 缺点:基本无。
- 🔧 可优化点:可一并说明”功能文件是否保留”,省一轮确认。
💬 #7 / #12 / #13 / #15:闲聊与确认轮(”在吗””好的,成功””好的””在干嘛。”),AI 无实质操作,不作句评。
长跑教练(5 轮)
【#1】教科书级开场:角色 + XML + 分步
原始输入:角色设定 + <info> 个人数据 + <method> 拉数方法 + 分步指令
用到标签:<info>(包裹个人身体数据)/<method>(指定拉数方法)
1 | 你是一名资深长跑教练员,熟读各种科学理论,请客观合理的评价下面这位同学,并给出建议 |
AI 操作:布环境 → 跑
garmin-exporter→ 拉到 22 次跑步 + 每公里分段 + 366 天健康数据 → 给初步分析后停下等指令。
句评:
- ✅ 优点:四要素齐全,XML 隔离用得标准,且把控制权交还给你(”等我下一步命令”)。
- ⚠️ 缺点:”简单分析”没规定输出格式,AI 自由发挥。
- 🔧 可优化点:给个”体测基线 / 问题 / 建议”三段式模板。
【#2】提供凭证(已脱敏)
原始输入(已脱敏)
1 | 186****6139 |
AI 操作:用临时文件喂凭证完成拉数 → 提醒你拉完改一次密码。
句评:
- ✅ 优点:四行把账号 / 区域 / MFA 说清,提示词本身没问题。
- ⚠️ 缺点:明文密码进了对话——这是安全习惯问题,不是提示词问题。
- 🔧 可优化点:改用弹窗 / 临时凭证,源头就别让明文进对话。
【#3】多诉求 + 会话级约束
原始输入
“我的想法是,我的心率太高了,比同龄人,周围的人的心率都高,就拿最近一次,五分20配速开跑,没一会就上180心率了,想降一下,发现八分配才能下到160配速。很奇怪,此外,我跟着网上说是要180步频不伤膝盖,请你客观论述 然后,我在12月20号想跑个半马,请你给我训练建议 请你以后的言论中根据切实的理论依据给出客观的建议,结合我的训练数据”
AI 操作:给心率偏高分析 + 180 步频客观论述 + 12/20 半马训练建议。
句评:
- ✅ 优点:三个诉求都具体,最后一句给整个会话加了 System 级规则(”理论依据 + 结合我的训练数据”)。
- ⚠️ 缺点:一句话塞三件事,略长。
- 🔧 可优化点:拆成三条分别问,并要求分点作答。
【#4】需求细化 + 授权
原始输入
“把计划细化成带具体日期的日历,针对”降心率”单独排 4 周基础期,教我现在适合我的呼吸节奏等等。你是教练,听你的”
AI 操作:产出带具体日期的训练日历 + 单独 4 周降心率基础期 + 呼吸节奏教法。
句评:
- ✅ 优点:需求具体且明确授权(”你是教练,听你的”),AI 不必反复确认。
- ⚠️ 缺点:基本无。
- 🔧 可优化点:可要求导出成可直接导入的格式(如 ICS/CSV)。
【#5】突发奇想但清楚
原始输入
“能否直接装到佳明日历中,我跟着训练计划跑”
AI 操作:查 Garmin workout API → 把训练计划推送到你的账户日历。
句评:
- ✅ 优点:做着做着冒出来的点子,但 prompt 依然清楚。
- ⚠️ 缺点:涉及写入你的账户,却没先确认授权范围。
- 🔧 可优化点:这类”会改动外部账户”的需求,先加一句”推送前先给我预览,确认后再写入”。
小结
两个会话把上篇的五段式、角色设定、XML 标签、清晰指令、会话级规则全部真实落地,零返工——真正的”提示词失败”列基本为空;”补的要求”和”突发奇想”是需求演进,不算失败。
唯一要改进的是安全习惯:凭证别明文进对话(本笔记已脱敏)。下一步可以补上篇标 ⭐ 的章节(五段式架构原文、提示词链、迭代优化、发布前检查清单),把今天零散的成功经验固化成可复用的模板。
