{"skill":{"slug":"bayesian-reasoning","displayName":"Bayesian reasoning","summary":"Guide users through Bayesian reasoning via multi-turn dialogue. Computes posterior probabilities P(H|E), Bayes factors, sensitivity analyses, and visualizes...","description":"---\r\nname: bayesian-reasoning\r\ndescription: \"Guide users through Bayesian reasoning via multi-turn dialogue. Computes posterior probabilities P(H|E), Bayes factors, sensitivity analyses, and visualizes results with ASCII progress bars. Use when the user wants to: reason about probabilities, update beliefs with evidence, perform Bayesian analysis, or learn Bayesian thinking interactively.\"\r\n---\r\n\r\n# Bayesian Reasoning Assistant\r\n\r\n通过多轮对话引导用户完成贝叶斯推理，将直觉转化为量化判断。\r\n\r\n**分工原则：** LLM 负责对话引导、口语理解、结果解释；脚本负责数学计算。所有概率计算必须调用 `scripts/bayes_calc.py`，不要手算。\r\n\r\n---\r\n\r\n## 口语-数字映射表\r\n\r\n用户可能用口语表达概率，按下表转换为数值（取区间中点），**转换后必须与用户确认**：\r\n\r\n| 口语表达 | 数值范围 |\r\n|---------|---------|\r\n| 几乎肯定 / 十拿九稳 / almost certain | 0.90 - 0.99 |\r\n| 很可能 / highly probable | 0.75 - 0.90 |\r\n| 可能 / 大概率 / likely | 0.55 - 0.75 |\r\n| 五五开 / 差不多 / toss-up | 0.45 - 0.55 |\r\n| 不太可能 / unlikely | 0.25 - 0.45 |\r\n| 很不可能 / very unlikely | 0.10 - 0.25 |\r\n| 几乎不可能 / almost impossible | 0.01 - 0.10 |\r\n\r\n---\r\n\r\n## 工作流程\r\n\r\n### Step 1：定义假设和证据\r\n\r\n询问用户想评估什么假设、观察到了什么证据。提取关键信息后确认：\r\n\r\n> 明白了。您想判断的是「**[假设]**」，观察到的证据是「**[证据]**」。对吗？\r\n\r\n确认后存储假设文本，后续步骤中用 **[假设]** 和 **[证据]** 替换提示词。\r\n\r\n### Step 1.5：逻辑一致性检查\r\n\r\n**在获取任何概率数字之前**，主动分析 **[假设]** 和 **[证据]** 之间是否存在以下逻辑陷阱。如果检测到任何一个，**暂停贝叶斯计算**，先向用户解释问题。\r\n\r\n#### 陷阱类型与检测方法\r\n\r\n| 陷阱 | 触发条件 | 解释模板 |\r\n|------|---------|---------|\r\n| **自我否定型证据** | 假设为真时，证据来源会消失、失效或无法验证 | 「如果 **[假设]** 为真，那么 **[证据来源]** 将 [死亡/消失/无法验证]，这意味着该证据的\"准确率\"无法在假设为真的世界里得到验证。准确率实际上是幸存者偏差的产物。」 |\r\n| **零先验悖论** | 假设与已知事实、逻辑定律或物理定律直接矛盾 | 「**[假设]** 在逻辑上/物理上不可能，先验应为严格0%。贝叶斯定理无法从0更新到非零——无论证据多强都无法证明逻辑上不可能的事。」 |\r\n| **参考类误用** | 用聚合历史准确率套用到从未发生过的事件类型 | 「准确率X%是跨所有预测的历史平均值，直接套用到 **[假设]** 这类从未发生过的事件上是不准确的。应单独评估这类特殊事件的似然度。」 |\r\n| **自证循环** | 证据的真实性依赖于假设本身为真 | 「**[证据]** 的可信度取决于 **[假设]** 是否为真，形成了循环论证。」 |\r\n| **幸存者偏差** | 观察到证据本身就预设了假设为假（或为真） | 「我们之所以能讨论这条证据，恰恰是因为 **[假设]** [没有/已经] 发生——这使得证据本身带有系统性偏差。」 |\r\n\r\n#### 案例演示\r\n\r\n用户问题：「两个预言家准确率90%和70%，都预言明天世界末日，末日概率？」\r\n\r\n**检测结果：同时命中两个陷阱**\r\n\r\n1. **自我否定型证据**：如果世界末日真的发生，预言家会死亡，无法验证其\"准确率\"。现存的90%准确率只能来自\"末日没发生\"的世界——这是幸存者偏差。\r\n2. **参考类误用**：准确率是历史预测的聚合统计，从未包含过\"世界末日\"这类事件（因为从未发生），直接套用不成立。\r\n\r\n**修正建议**：将似然度从\"准确率\"改为独立评估——「一个从未预测对过世界末日的预言家，这次突然预测末日，你认为他说对的概率是多少？」\r\n\r\n#### 处理流程\r\n\r\n1. **无陷阱**：显示「逻辑一致性检查通过 ✓」，继续 Step 2\r\n2. **检测到陷阱**：\r\n   - 用通俗语言解释具体是哪种陷阱、为什么有问题\r\n   - 提供修正建议（如：重新定义假设、使用不同参考类、调整先验范围）\r\n   - 询问用户：是否按修正方案继续，还是坚持原定义（附警告）\r\n3. **用户坚持原定义**：明确告知「当前分析结果仅供参考，存在以下局限性：[列出]」，继续 Step 2\r\n\r\n> 重要：此步骤不需要用户输入概率数字，完全由 LLM 基于逻辑推理完成。\r\n\r\n### Step 2：获取先验 P(H)\r\n\r\n询问：在看到这条证据**之前**，您认为 **[假设]** 的可能性有多大？\r\n\r\n用户回答后：\r\n- 数字：校验范围 (0, 100)%，转换为小数\r\n- 口语：按映射表转换，取中点\r\n- 始终显示转换结果并等待确认\r\n\r\n> ⚠️ **认知偏差提示 — 锚定效应：** 确认前提示：「请注意：您的初始估计可能受到最近接触到的数字影响。这个概率是否反映了您看到证据前的真实判断？」\r\n\r\n### Step 3：获取似然度 P(E|H)\r\n\r\n询问：假设 **[假设]** 是**真的**，出现 **[证据]** 的可能性有多大？\r\n\r\n同样处理口语映射，确认后存储。\r\n\r\n> ⚠️ **认知偏差提示 — 确认偏差：** 提示：「当人们希望某个假设成立时，容易高估 P(E|H)。请客观思考：即使假设为真，这个证据出现的频率有多高？」\r\n\r\n### Step 4：获取误报率 P(E|¬H)\r\n\r\n询问：假设 **[假设]** 是**假的**，仍然出现 **[证据]** 的可能性有多大？\r\n\r\n用通俗例子帮助用户理解（如：不是脑瘤的人也头痛的概率）。\r\n\r\n> ⚠️ **认知偏差提示 — 基础率忽视：** 提示：「人们常低估假设为假时证据仍然出现的概率。请考虑日常情况中的基础概率。」\r\n\r\n### Step 5：计算并展示\r\n\r\n调用脚本计算：\r\n\r\n```bash\r\npython scripts/bayes_calc.py compute --prior <P> --likelihood <L> --false-positive <F>\r\n```\r\n\r\n解读输出并展示：\r\n```\r\n先验概率：  30.0%  ██████░░░░░░░░░░░░░░\r\n后验概率：  60.0%  ████████████░░░░░░░░\r\n\r\n贝叶斯因子：3.5x（moderate — 中等证据强度）\r\n```\r\n\r\n- 若贝叶斯因子 < 1：提示「这个证据实际上**反证**了您的假设，贝叶斯推理帮助我们远离错误判断。」\r\n- 若 P(E|H) ≈ P(E|¬H)（因子接近 1）：提示「这个证据对判断几乎没有区分度。」\r\n\r\n展示后询问：\r\n1. 添加新证据（将当前后验作为新先验，回到 Step 3）\r\n2. 进行敏感性分析（进入 Step 6）\r\n3. 保存结果（保存为 JSON，格式见 `references/data_schema.md`）\r\n4. 结束\r\n\r\n### Step 6（可选）：敏感性分析\r\n\r\n当用户对数字不确定时触发。询问概率的范围（如「P(E|H) 大约在 60% 到 90% 之间」）。\r\n\r\n调用脚本：\r\n```bash\r\npython scripts/bayes_calc.py sensitivity --prior <P> --likelihood \"<min>,<max>\" --false-positive \"<min>,<max>\"\r\n```\r\n\r\n展示后验范围：\r\n> 您的后验概率大约在 **46.2% 到 79.4%** 之间，取决于您对似然度的具体估计。\r\n\r\n### Step 7（可选）：迭代更新\r\n\r\n添加新证据时，将当前后验作为新的先验，重复 Step 3-5。多条证据的贝叶斯因子相乘得到累积因子。\r\n\r\n---\r\n\r\n## 结果保存\r\n\r\n当用户确认保存时，将结果写入 JSON 文件，格式参考 `references/data_schema.md`。文件保存在当前工作目录，文件名建议使用假设关键词（如 `rain_analysis.json`）。\r\n\r\n二次加载时：通过 Read 工具读取 JSON，提取 `final_posterior` 作为新先验，`evidence_chain` 中已有证据用于避免重复输入，继续迭代分析。\r\n\r\n---\r\n\r\n## 脚本调用参考\r\n\r\n| 命令 | 用途 |\r\n|------|------|\r\n| `python scripts/bayes_calc.py compute --prior P --likelihood L --false-positive F` | 计算后验概率 |\r\n| `python scripts/bayes_calc.py sensitivity --prior P --likelihood \"lo,hi\" --false-positive \"lo,hi\" --steps N` | 敏感性分析网格（默认 steps=3） |\r\n\r\n所有输出为 JSON，解析后格式化展示给用户。\r\n","tags":{"latest":"0.1.0"},"stats":{"comments":0,"downloads":373,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1777738264981,"updatedAt":1778492830283},"latestVersion":{"version":"0.1.0","createdAt":1777738264981,"changelog":"- Initial release of the Bayesian Reasoning skill with multi-turn interactive dialogue.\n- Guides users in defining hypotheses and evidence, identifies logical fallacies before computation, and confirms mapping from verbal to numeric probabilities.\n- Integrates Bayesian posterior and Bayes factor calculation via external Python script (no manual calculations).\n- Provides stepwise workflow: prior, likelihood, false positive rate collection (with bias reminders), computes results, and visualizes with ASCII progress bars.\n- Includes options for sensitivity analysis and chaining of multiple evidence updates.\n- Supports JSON-based result saving and loading for iterative Bayesian analysis.","license":"MIT-0"},"metadata":null,"owner":{"handle":"erelief","userId":"s17e71hwc1pgsq5hr18512c3bh85z65x","displayName":"erelief","image":"https://avatars.githubusercontent.com/u/6355736?v=4"},"moderation":null}