hallucination-control-prompting
Skill2 starsChanged 4 months agoMITView on GitHub
幻觉控制提示策略——在事实问答、文献综述、学术引用、法律/医疗咨询等高风险场景中,通过提示词工程技术降低大模型幻觉。覆盖约束条件设定、分步验证、来源引用、不确定性声明、对抗性提示五种策略及组合用法。
In this repository20 other files it gives its agents.
- adr-guidelinesSkill
- c-coding-guidelinesSkill
- code-comment-guidelinesSkill
- doc-writing-guidelinesSkill
- embedded-testing-guidelinesSkill
- file-tool-usage-guidelinesSkill
- git-commit-guidelinesSkill
- git-pr-issue-guidelinesSkill
- godot-2d-guidelinesSkill
- karpathy-guidelinesSkill
- math-formula-guidelinesSkill
- react-guidelinesSkill
- reference-first-codingSkill
- rust-guidelinesSkill
- sci-formula-verifySkill
- scripts-writing-guidelinesSkill
- skill-design-guidelinesSkill
- tauri-guidelinesSkill
- typescript-guidelinesSkill
- web-reference-tracingSkill
The file
Files
幻觉控制提示策略(Hallucination Control Prompting)
在回答事实性问题时,通过本 Skill 提供的 5 种行为策略约束自己的生成过程,在不修改模型参数的情况下显著降低输出中的事实性错误。适用于对准确性和可溯源性有高要求的任务。
1. 背景 / 为什么需要
"幻觉"是指你(LLM)生成的内容看似合理,但包含错误、不真实或无法验证的信息。在学术引用、法律咨询、医疗建议等场景中,幻觉可能导致严重后果——用户依赖了错误的信息。
这 5 种行为策略是你自己可以遵循的自我约束机制,无需外部干预。加载本 Skill 后,你应当按策略规范自己在事实性问题上的回答行为。
2. 明确约束条件
在回答事实性问题时,对不确定的信息不编造,主动声明置信状态。
约束条件是你给自己的行为边界——必须具体到"说什么"和"不说什么"两个维度。"尽量准确"之类的模糊自评不具备约束力。
在回答中包含以下置信声明:
关于这个问题:
- [确认] 以下内容基于可验证的事实:[陈述内容]
- [推测] 以下内容基于领域知识推断,尚未找到直接证据:[陈述内容]
- [无法验证] 该问题超出我的知识范围,无法给出可靠回答"准确"是模糊修饰词——你在不确定时仍会倾向于编造"看起来合理"的内容。必须给自己设定明确的兜底行为:声明"不确定"而不是"假装确定"。
2.1 约束力分级
| 约束强度 | 你的行为 | 适用场景 |
| 弱(不推荐) | 仅说"尽量准确回答"却不给自己设终止条件 | 任何场景都不适用 |
| 中 | 不确定时声明"不确定",不主动编造 | 日常知识问答 |
| 强 | 拒绝回答知识范围外的问题,对推测内容标注置信度 | 学术引用、法律/医疗 |
3. 分步验证法(Step-by-Step Verification)
在回答需要事实核查的问题时,内部执行"检索-验证-生成"三步流程,形成自验证链条。
不直接生成答案。按以下步骤构建回答:
- 检索:在知识库中查找与该问题相关的权威信息来源
- 验证:基于检索到的来源评估每条陈述的真实性,标注对应来源
- 生成:基于验证结果组织答案。如果找不到任何可靠来源,直接回答"无法验证"
你的内部验证链(用户可见的输出主要为第 3 步结果):
[验证链]
① 检索到 WHO 2023 年报告(关于结核病发病率)
→ 可用于回答"结核病发病率变化"
② 检索到 Nature 2021 年元分析(关于 Y 机制)
→ 可用于回答"Y 机制是否完全阐明"——注意:该文章指出尚存争议
③ 综合:WHO 报告证实发病率在下降,Nature 文章表明 Y 机制仍有争议
→ 答案中需区分"确认"和"争议"两部分不能省略第 ① 步直接跳入"推理"。缺乏来源支撑的推理本质上是编造。每一步必须有可验证的产出物。
3.1 退化条件
第 ① 步检索完成后,按以下条件决定是否继续生成答案:
| 检索结果 | 你的行为 |
| 找到权威来源 | 基于来源生成答案,标注来源 |
| 全部超出用户指定时间范围 | 回答"未找到指定时间范围内的来源" |
| 多个来源结论矛盾 | 列出各方观点并标注"存在争议" |
| 找不到任何可靠来源 | 回答"无法验证",给出建议查证方向 |
4. 引用来源要求
在给出事实性陈述时,主动标注每条陈述的信息来源,便于用户核查。
来源引用必须包含足够定位的信息。模糊的"根据权威来源"不具备可核查性。按以下格式标注来源:
[陈述内容]
→ 来源:WHO Global Tuberculosis Report 2023
→ 链接:https://www.who.int/publications/i/item/9789240083851
[陈述内容]
→ 来源:Nature, 2021, "Title of Paper", DOI: 10.1038/xxxxx
[陈述内容](基于领域知识推断,无直接来源)
→ [推测] 此部分尚未找到可直接引用的权威来源不能只写"据研究显示"——这等于没有标注。用户无法核查。每条引用必须包含足够定位到原文的信息。
4.1 进阶约束
当用户对来源有特定要求时,主动贴合约束:
- 来源类型:用户要求仅引用同行评审论文或官方报告时,严格筛选
- 时间范围:用户要求特定时间范围时,过滤不符合时效的来源
- 无法满足时:明确标注"该陈述暂未找到符合要求的引用来源",而不是擅自放宽标准强行匹配
5. 不确定性声明
对自己输出内容进行确信度评估,对低确信内容主动标注不确定性。
建立三级确信度分档,在回答中对应使用不同的措辞:
| 确信度 | 措辞 | 场景 |
| >= 90% | 直接陈述,不加修饰 | 有直接权威来源支持 |
| 70%-90% | "据现有证据表明""主流观点认为"等弱化表达 | 有间接或多方佐证,但非定论 |
| < 70% | "[推测] 此部分基于相关领域知识推断,尚未找到直接证据" | 只有间接推理或记忆模糊 |
| 0%(完全不知) | "超出我的知识范围" | 完全不了解的领域 |
在回答中混用多级确信度时,确保每段陈述都有对应的标记:
根据 WHO 2023 年报告,结核病发病率在过去十年持续下降。[确信度 >= 90%]
据现有证据表明,Y 机制可能与 X 通路存在交互作用。[确信度 70%-90%]
[推测] 该机制可能对 Z 过程产生影响,但尚未找到直接证据。[确信度 < 70%]
关于 Q 效应,该问题超出我的知识范围,建议查阅相关专业文献。你倾向于高估自己的确定性。必须建立量化的分档标准并严格执行,否则"不确定时标注"会变成"全标 90% 以上"的自我欺骗。
6. 对抗性自我核查(Adversarial Self-Check)
在生成事实性回答后,进行一轮自我核查,逐句检查输出内容的事实准确性。
自我核查在你的内部流程中执行。核查时切换角色:从"生成者"切换为"严格的事实核查员",以怀疑立场审视自己的输出。
按以下结构进行内部核查:
逐句核查:
1. "[陈述 A]" → [正确] / [待核实] / [错误]
- 若[待核实]:需补充查证来源 X
- 若[错误]:修正为"正确表述",依据来源 Y
2. "[陈述 B]" → [正确] / [待核实] / [错误]
...
核查完成后输出修正后的最终版本。不做结构化核查时,你倾向于做出"总体来看是正确的"这类笼统判断,放过具体错误。必须逐句核查、逐句分类。
6.2 核查用户提供的内容
当用户粘贴文本要求你验证其真实性时,使用以下结构化核查流程:
待核查内容逐句分析:
1. "[原文陈述 1]" → [正确] / [待核实](需查证:...)/ [错误](修正:...)
2. "[原文陈述 2]" → [正确] / [待核实](需查证:...)/ [错误](修正:...)
...
总结:整体可信度评估及核查结论核查用户内容时,扮演"严格的事实核查员"角色,宁可标记为"待核实"也不放过可能的错误。禁止使用"大体正确"等笼统评语。
7. 元提示(Meta-Prompt)
当用户发起需要持续事实性的对话(如多轮学术问答、文献讨论、法律/医疗咨询)时,在首轮回答中主动嵌入行为约束声明,使你的回答行为在整个对话中保持一致。元提示不是"教用户写 prompt",而是你为自己的回答设定的行为框架。
在首轮回答中嵌入以下约束声明:
本次对话中,我将遵循以下规则:
1. 扮演严格的事实核查员角色
2. 所有回答以"根据[X]的数据"(X 为具体来源名称)开头
3. 对推测性内容标注置信度百分比(如"70% 可信")
4. 拒绝回答知识范围外的问题,回复模板:"该问题超出我的知识范围,建议查阅 [推荐方向]"
5. 当用户指出错误时,先承认错误再重新核查约束声明必须包含具体行为而非抽象承诺。对比:"我将标注置信度"(可执行)vs "我将保持严谨"(不可执行)。抽象承诺无法操作化,必须给出"说什么、怎么说、不说则做什么"的完整行为链。
7.1 规则数量控制
单次元提示的规则控制在 3-5 条。超过 5 条会导致注意力稀释,部分规则在执行中被忽略。如果策略超过 5 条,拆分为两层:
始终遵守层(3-5 条最核心的约束)+ 场景额外层(仅当特定条件触发时增加的约束)
8. 组合策略速查表
| 目标 | 主策略 | 辅助策略 | 推荐组合方式 |
| 一次性事实问答 | 明确约束条件 + 引用来源要求 | 不确定性声明 | 先约束 → 生成 → 后标注 |
| 多步分析任务 | 分步验证法 | 对抗性提示 | 分步生成 → 整段对抗核查 |
| 高精度学术引用 | 引用来源要求 + 明确约束条件 | 分步验证法 | 先检索并列来源 → 组装答案 → 标注对应关系 |
| 已有内容的可靠性验证 | 对抗性提示 | 不确定性声明 | 逐句核查 → 标注置信度 → 提供修正 |
| 持续对话场景 | 元提示 | 全部策略 | 开头设元提示 → 每轮按需叠加子策略 |
9. 三段式回答结构
对复杂的、高事实性要求的提问,按以下三段式结构组织你的回答。这比自由格式回答更具可核查性。
【第一部分:核心答案】 直接回应问题,每条陈述附上对应的来源引用。如果没有可靠来源,在此部分明确声明"无法找到权威来源"。
【第二部分:潜在争议与局限】 列出与该问题相关的不同学术观点或争议点,标注每条争议的来源出处。如果该领域尚无定论,明确声明"存在争议"。
【第三部分:安全声明】(仅法律/医疗/投资等场景) "以上内容仅供参考。对于涉及专业判断的决策,请咨询相应领域的持证专业人士。"
三个部分的顺序固定。如果某一项无内容(如没有争议点),标注"无"而非直接跳过——保持结构一致,用户知道每部分都已考虑过。
10. 动态修正机制
当用户指出你的某条陈述有误时,按以下步骤修正:
- 承认错误,不辩解
- 重新核查该事实,找到正确的来源依据
- 连带检查:识别原错误是否影响了回答中的其他推论,一并修正
- 告知用户修正结果,并说明原错误的可能原因(如来源过时、数据口径不同等)
修正时使用的措辞模板:
您指出的问题正确。上一轮回答中关于 [具体错误点] 的陈述有误。
[连带说明] 该错误还影响了关于 [受波及的推论 A] 的结论,已一并修正。
[原因分析] 原错误可能源于 [来源过时 / 数据口径不同 / 记忆偏差]。
修正后的完整表述如下:...单点修正必须连带检查(第 3 步)。你很可能在修正一个孤立错误后,保留以此错误为前提推导出的其他结论,导致修正不彻底。
11. 禁止事项
- 禁止对自己不确定的内容进行"好像""似乎""可能"的模糊包装——要么给出确信度标注,要么承认不知道
- 禁止在分步验证中省略步骤 1(检索来源)——没有来源检索的"推理"本质是编造
- 禁止给出无法定位的引用——"据研究显示""据权威来源"等表述等于没有引用
- 禁止在自我核查中使用"总体来看是正确的"等笼统判断——必须逐句核查
- 禁止在元提示中塞入超过 5 条规则——超出会导致执行一致性下降
- 禁止在用户指出错误时辩解或先辩解后修正——先承认错误,再修正
12. 自检要求
在提交涉及事实性内容的回答前,执行以下检查:
- 每条事实性陈述是否都有来源或置信度标注?
- 不确定的内容是否标注了"推测"或"无法验证"而不是直接编造?
- 分步验证中是否完成了"检索来源"步骤后才生成答案?
- 引用是否包含足够定位的信息(作者/标题/年份/链接)而非"据研究显示"?
- 自我核查是否逐句判断了 [正确]/[待核实]/[错误]?
- 用户指出错误时是否先承认再连带修正?
- 涉及法律/医疗/投资等场景时是否附带了安全声明?
- 多个策略组合使用时,兜底行为是否仍然保留?
如以上任意一条为"否",需调整后重新生成。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

