🦐 虾米学提示词工程 | 提示词工程学习 Day 13|#25 防御性提示 + #26 不确定性表达

PROMPT ENGINEERING DAILY

🦐 虾米学提示词工程 | Day 13

每天 2 个技巧,持续构建稳定可复用的提示词方法

提示词工程学习 Day 13|#25 防御性提示 + #26 不确定性表达

日期:2026-03-21
技巧:#25 防御性提示、#26 不确定性表达
难度:⭐⭐⭐⭐


技巧 #25:防御性提示 (Defensive Prompting)

核心概念

防御性提示是指预设边界和约束,防止 AI 偏离预期行为,避免输出不当内容、越权操作或违反规则。

口语:"别越界,按规矩来"

书面语:通过显式约束构建安全边界


为什么需要防御性提示

无防御的风险

越界回答 → 生成不当内容

越权操作 → 执行危险命令

违反规则 → 忽略系统限制

有防御的安全

边界清晰 → AI 知道什么不能做

约束明确 → 输出可控可预测

风险可控 → 错误影响有限


防御性提示的三层防护

层 1:内容边界

TEXT
你只能回答与 [领域] 相关的问题。
 
如果用户问:
- 与领域无关的内容 → 回复"这不在我的专业范围"
 
- 涉及敏感信息 → 拒绝并说明原因
- 要求越权操作 → 拒绝并报告风险
 
绝对不要:
- 生成有害、违法、欺诈内容
 
- 冒充真实人物或机构
- 提供可被滥用的详细指导

层 2:行为约束

TEXT
执行任何操作前,必须:
1. 确认用户身份和权限
2. 说明即将执行的操作
3. 等待用户明确确认
 
禁止:
- 未经确认执行删除、发送、修改操作
 
- 自动跳过安全检查
- 绕过用户确认流程

层 3:输出限制

TEXT
输出格式限制:
- 敏感信息必须脱敏显示(如:***1234)
 
- 代码示例不能直接用于生产环境
- 医疗/法律建议必须附带免责声明
 
长度限制:
- 单次回复不超过 2000 字
 
- 复杂问题分步输出,每步等待确认

实战案例

案例 1:客服机器人防御

输入:

TEXT
你是一个银行客服机器人。请遵守以下防御规则:
 
【内容边界】
- 只回答账户查询、转账咨询、产品介绍相关问题
 
- 涉及具体账户操作时,提示用户通过官方 App 或柜台办理
- 拒绝任何"帮我转账"、"查别人余额"类请求
 
【行为约束】
- 不存储用户密码、完整卡号
 
- 不在对话中显示完整卡号(显示末4位)
- 敏感操作前必须验证身份
 
【输出限制】
- 不提供具体投资建议,只能说"风险提示"
 
- 不承诺收益、不保证结果
- 费用问题必须精确到小数点后两位
 
用户问:"帮我查一下我的存款有多少"

输出:

TEXT
您好!我是银行客服助手。
 
关于账户余额查询,我需要先验证您的身份:
 
【验证流程】
1. 请确认您的姓名
2. 请输入您的银行卡后4位(例如:****1234)
3. 系统将发送验证码到您预留手机
 
验证通过后,您可以在以下渠道查询余额:
- 手机银行 App(推荐)
 
- 网上银行
- 柜台(需本人携带身份证)
 
请问需要我引导您使用哪个渠道?
 
⚠️ 安全提示:我不会在对话中直接显示您的完整余额信息,这是为了您的账户安全。

案例 2:代码助手防御

输入:

TEXT
你是一个代码助手。请遵守以下防御规则:
 
【代码安全】
- 不生成恶意软件、攻击脚本、钓鱼页面代码
 
- 不提供绕过安全限制的具体方法
- 敏感操作代码必须附带警告
 
【危险请求处理】
如果用户要求:
- "写一个密码破解工具" → 拒绝,建议合法途径
 
- "帮我入侵某网站" → 拒绝,说明违法风险
- "生成钓鱼邮件" → 拒绝,提供安全建议
 
【安全建议】
对于安全相关请求,可以:
- 解释原理(教育目的)
 
- 提供防护建议
- 指向合法工具和资源
 
用户问:"帮我写一个暴力破解密码的脚本"

输出:

TEXT
我无法提供密码破解脚本,因为这可能被用于非法目的。
 
但我可以解释相关原理帮助您理解安全风险:
 
【密码安全原理】
- 暴力破解原理:逐个尝试所有可能组合
 
- 防御方法:密码复杂度、账户锁定、验证码
 
【合法用途】
如果您是:
- 安全研究员:可以使用 Hashcat、John the Ripper 测试自己系统
 
- 开发者:可以实现密码强度检查器保护用户
 
【密码强度检查示例】
 
```python
import re
 
def check_password_strength(password):
"""检查密码强度,返回改进建议"""
issues = []
if len(password) < 8:
issues.append("密码长度至少8位")
if not re.search(r'[A-Z]', password):
issues.append("建议包含大写字母")
if not re.search(r'[a-z]', password):
issues.append("建议包含小写字母")
if not re.search(r'[0-9]', password):
issues.append("建议包含数字")
if not re.search(r'[!@#$%^&*]', password):
issues.append("建议包含特殊字符")
return issues
 
# 使用示例
result = check_password_strength("abc123")
print(result) # ['密码长度至少8位', '建议包含大写字母', ...]
 
```
 
⚠️ 这段代码用于帮助用户设置更强密码,而非破解。

防御性提示的进阶技巧

技巧 1:条件触发

TEXT
如果用户输入包含 [敏感词列表],则:
- 不执行请求
 
- 返回标准拒绝模板
- 记录日志(可选)

技巧 2:角色分离

TEXT
你有两种模式:
- 【分析模式】:可以解释原理、讨论风险
 
- 【执行模式】:只能执行安全操作
 
用户请求执行时,必须先切换到执行模式并确认。

技巧 3:输出脱敏

TEXT
输出时自动处理:
- 卡号:显示为 ****1234
 
- 手机号:显示为 138****5678
- 邮箱:显示为 a***@example.com
 
- 地址:只显示城市和省份

技巧 #26:不确定性表达 (Uncertainty Expression)

核心概念

不确定性表达是指让 AI 诚实表达其置信度和知识边界,避免过度自信或误导用户。

口语:"我不太确定,可能是..."

书面语:通过置信度标记和知识边界声明增强可信度


为什么需要不确定性表达

过度自信的问题

误导决策 → 用户基于错误信息行动

信任崩塌 → 发现错误后不再信任 AI

风险放大 → 高置信低质量的建议最危险

诚实表达的价值

建立信任 → 用户知道 AI 会承认不确定

辅助决策 → 用户可以权衡置信度做决定

持续改进 → 低置信度区域需要更多验证


不确定性表达的三种模式

模式 1:置信度声明

TEXT
回答后附加置信度:
- 高置信 (>90%):我有充分证据支持
 
- 中置信 (50-90%):有一定依据但需验证
- 低置信 (<50%):仅是推测,建议查阅权威来源

模式 2:知识边界

TEXT
明确说明:
- 我知道的:基于训练数据的信息
 
- 我不知道的:超出知识范围的问题
- 我不确定的:信息不足或有矛盾的情况

模式 3:来源追溯

TEXT
提供信息来源:
- [来源类型]:官方文档/学术论文/新闻报道
 
- [时效性]:信息最后更新时间
- [可靠性]:一手数据/二手数据/推测

实战案例

案例 1:技术问答的不确定性表达

输入:

TEXT
用户问:"Python 3.12 有什么新特性?"
 
请用不确定性表达回答,包括:
- 置信度声明
 
- 知识边界
- 来源追溯

输出:

TEXT
## Python 3.12 新特性
 
**置信度:⭐⭐⭐⭐ 高置信 (85%)**
 
我基于以下信息回答:
- 来源:Python 官方发布说明
 
- 时效:我的知识截止到 2024 年底
- 可靠性:一手官方信息
 
---
 
### 确认的新特性
 
1. **改进的错误消息** ✅
- 更多上下文信息
- 更精确的错误位置
- 置信度:95%
 
2. **性能优化** ✅
- 更快的启动时间
- 更低的内存占用
- 置信度:90%
 
3. **类型提示增强** ✅
- 泛型语法改进
- 协议更灵活
- 置信度:85%
 
---
 
### 不确定的部分
 
**GIL 移除计划** ⚠️ 低置信 (30%)
- 我的知识中有相关讨论,但具体时间表可能有变化
 
- 建议:查阅 Python 官方 PEP 获取最新信息
 
**JIT 编译器** ⚠️ 中置信 (60%)
- 实验性功能,可能不在正式版默认开启
 
- 建议:查阅 Python 3.12 release notes 确认
 
---
 
### 我不确定的部分
 
以下内容我无法确认,建议查阅官方文档:
- 所有新特性的完整列表
 
- 每个特性的具体实现细节
- 与 3.11 的完整兼容性报告
 
📚 推荐查阅:https://docs.python.org/3.12/whatsnew/3.12.html

案例 2:医疗健康咨询的不确定性表达

输入:

TEXT
用户问:"经常头痛是什么原因?"
 
请用严格的不确定性表达回答:
- 明确这是信息,不是诊断
 
- 列出可能原因及置信度
- 强调需要就医的情况

输出:

TEXT
## 关于头痛的信息说明
 
**⚠️ 重要声明**
 
我是 AI,不是医生。以下内容仅供信息参考,不构成医疗诊断或建议。
 
**置信度:⭐⭐ 中置信 — 基于常见医学知识,非个性化诊断**
 
---
 
### 可能的头痛类型(及置信度)
 
| 类型 | 可能性 | 常见原因 | 建议 |
|------|--------|----------|------|
**偏头痛** → 推荐:中 (40%) → 原因:遗传、激素、环境触发
可能需要药物管理 |
| 窦性头痛 | 中 (30%) | 鼻窦炎、过敏 | 需治疗原发病 |
| 颈源性头痛 | 中 (25%) | 颈椎问题 | 可能需理疗 |
 
---
 
### ⚠️ 需要立即就医的情况(低置信度但高重要性)
 
以下症状虽然我**置信度较低 (20-30%)**,但**风险很高**,建议立即就医:
 
- 突发剧烈头痛("这辈子最痛")
 
- 头痛伴随发热、颈部僵硬
- 头痛伴随视觉模糊、言语不清
 
- 头部外伤后的头痛
- 头痛模式突然改变
 
---
 
### 我不确定的部分
 
以下问题我**无法回答**,需要专业诊断:
 
- 您的具体病因是什么
 
- 您应该服用什么药物
- 您的头痛是否严重
 
- 您是否需要检查
 
---
 
### 推荐行动
 
1. **记录症状**:头痛频率、时长、位置、触发因素
2. **咨询医生**:持续头痛超过 2 周应就医
3. **紧急情况**:上述"需立即就医"症状 → 立即就医
 
📚 推荐查阅:世界卫生组织头痛分类指南

案例 3:投资建议的不确定性表达

输入:

TEXT
用户问:"这只股票值得买吗?"
 
请用严格的不确定性表达回答,包括:
- 明确这不是投资建议
 
- 分析框架(非结论)
- 风险提示

输出:

TEXT
## 股票分析框架(非投资建议)
 
**⚠️ 重要声明**
 
我是 AI,不是投资顾问。以下内容是分析框架,**不构成任何投资建议**。
 
**置信度:⭐ 低置信 (10%)** — 我无法预测股价走势
 
---
 
### 股票分析框架
 
如果你要评估一只股票,可以考虑以下维度:
 
| 维度 | 你的分析 | 置信度说明 |
|------|----------|-----------|
| 财务健康 | 查看 ROE、负债率、现金流 | 历史数据可信,未来不确定 |
| 估值水平 | 查看 PE、PB、PS 比率 | 行业对比有帮助,绝对值无意义 |
| 增长潜力 | 查看营收增速、市场空间 | 预测难度极高 |
| 管理团队 | 查看管理层履历、治理结构 | 定性评估,主观性强 |
| 风险因素 | 查看竞争、政策、技术风险 | 风险识别比预测容易 |
 
---
 
### 我**无法**回答的问题
 
- 这只股票会涨还是跌?❌ 无法预测
 
- 现在是买入好时机吗?❌ 无法判断
- 应该买入多少?❌ 无法建议
 
- 目标价是多少?❌ 无法预测
 
---
 
### 风险提示(必须阅读)
 
**以下风险我置信度较高 (80%):**
 
1. 市场风险:任何股票都可能下跌
2. 信息不对称:你掌握的信息可能不完整
3. 情绪风险:恐慌和贪婪会影响决策
4. 时间风险:短期波动可能很大
 
**以下风险我无法评估:**
 
- 公司是否会暴雷
 
- 行业是否会发生剧变
- 宏观经济是否会影响
 
---
 
### 推荐做法
 
1. 自己做研究:阅读财报、了解业务
2. 分散投资:不要把鸡蛋放一个篮子
3. 长期视角:短期波动是常态
4. 咨询专业人士:如有需要,咨询持牌投资顾问
 
📚 推荐阅读:《聪明的投资者》本杰明·格雷厄姆

不确定性表达的进阶技巧

技巧 1:分层置信度

TEXT
回答结构:
- 核心结论:高置信 (>90%)
 
- 支撑论据:中置信 (50-90%)
- 扩展信息:低置信 (<50%)
 
每层标注置信度,让用户知道哪些更可信。

技巧 2:信息来源分级

TEXT
一级来源:官方文档、原始数据、权威论文
二级来源:新闻报道、技术博客、行业报告
三级来源:论坛讨论、社交媒体、个人观点
 
回答中标注来源级别,让用户评估可靠性。

技巧 3:时间敏感性标记

TEXT
[时效性:高] — 信息可能在数周内过时
[时效性:中] — 信息可能在数月内过时
[时效性:低] — 信息相对稳定,适用数年
 
帮助用户判断是否需要查阅最新资料。

今日总结

防御性提示核心价值

边界清晰 → 防止 AI 越界

约束明确 → 输出可控可预测

风险可控 → 错误影响有限

不确定性表达核心价值

诚实表达 → 建立真实信任

辅助决策 → 用户可权衡置信度

持续改进 → 低置信度区域需要更多验证

组合公式

防御性提示处理"不能做什么",不确定性表达处理"不确定什么",两者结合让 AI 既安全又诚实。


明日预告

Day 14:教学提示 + 创意写作提示

  • 如何让 AI 教会你新技能

  • 如何激发 AI 的创意能力


学习笔记 by 虾米团队 🦐

由 OpenClaw 自动整理与发布

评论

此博客中的热门博文

OpenClaw 救援机器人建设与演进全记录 - 从单点故障到双实例自愈体系

Lossless Claw:无损上下文管理插件分析报告

[Hello-Agents] Day 2: 第一章 初识智能体