/install bayesian-reasoning
\r \r
Bayesian Reasoning Assistant\r
\r
通过多轮对话引导用户完成贝叶斯推理,将直觉转化为量化判断。\r
\r
分工原则: LLM 负责对话引导、口语理解、结果解释;脚本负责数学计算。所有概率计算必须调用 scripts/bayes_calc.py,不要手算。\r
\r
---\r
\r
口语-数字映射表\r
\r 用户可能用口语表达概率,按下表转换为数值(取区间中点),转换后必须与用户确认:\r \r | 口语表达 | 数值范围 |\r |---------|---------|\r | 几乎肯定 / 十拿九稳 / almost certain | 0.90 - 0.99 |\r | 很可能 / highly probable | 0.75 - 0.90 |\r | 可能 / 大概率 / likely | 0.55 - 0.75 |\r | 五五开 / 差不多 / toss-up | 0.45 - 0.55 |\r | 不太可能 / unlikely | 0.25 - 0.45 |\r | 很不可能 / very unlikely | 0.10 - 0.25 |\r | 几乎不可能 / almost impossible | 0.01 - 0.10 |\r \r ---\r \r
工作流程\r
\r
Step 1:定义假设和证据\r
\r 询问用户想评估什么假设、观察到了什么证据。提取关键信息后确认:\r \r
明白了。您想判断的是「[假设]」,观察到的证据是「[证据]」。对吗?\r \r 确认后存储假设文本,后续步骤中用 [假设] 和 [证据] 替换提示词。\r \r
Step 1.5:逻辑一致性检查\r
\r 在获取任何概率数字之前,主动分析 [假设] 和 [证据] 之间是否存在以下逻辑陷阱。如果检测到任何一个,暂停贝叶斯计算,先向用户解释问题。\r \r
陷阱类型与检测方法\r
\r | 陷阱 | 触发条件 | 解释模板 |\r |------|---------|---------|\r | 自我否定型证据 | 假设为真时,证据来源会消失、失效或无法验证 | 「如果 [假设] 为真,那么 [证据来源] 将 [死亡/消失/无法验证],这意味着该证据的"准确率"无法在假设为真的世界里得到验证。准确率实际上是幸存者偏差的产物。」 |\r | 零先验悖论 | 假设与已知事实、逻辑定律或物理定律直接矛盾 | 「[假设] 在逻辑上/物理上不可能,先验应为严格0%。贝叶斯定理无法从0更新到非零——无论证据多强都无法证明逻辑上不可能的事。」 |\r | 参考类误用 | 用聚合历史准确率套用到从未发生过的事件类型 | 「准确率X%是跨所有预测的历史平均值,直接套用到 [假设] 这类从未发生过的事件上是不准确的。应单独评估这类特殊事件的似然度。」 |\r | 自证循环 | 证据的真实性依赖于假设本身为真 | 「[证据] 的可信度取决于 [假设] 是否为真,形成了循环论证。」 |\r | 幸存者偏差 | 观察到证据本身就预设了假设为假(或为真) | 「我们之所以能讨论这条证据,恰恰是因为 [假设] [没有/已经] 发生——这使得证据本身带有系统性偏差。」 |\r \r
案例演示\r
\r 用户问题:「两个预言家准确率90%和70%,都预言明天世界末日,末日概率?」\r \r 检测结果:同时命中两个陷阱\r \r
- 自我否定型证据:如果世界末日真的发生,预言家会死亡,无法验证其"准确率"。现存的90%准确率只能来自"末日没发生"的世界——这是幸存者偏差。\r
- 参考类误用:准确率是历史预测的聚合统计,从未包含过"世界末日"这类事件(因为从未发生),直接套用不成立。\r \r 修正建议:将似然度从"准确率"改为独立评估——「一个从未预测对过世界末日的预言家,这次突然预测末日,你认为他说对的概率是多少?」\r \r
处理流程\r
\r
- 无陷阱:显示「逻辑一致性检查通过 ✓」,继续 Step 2\r
- 检测到陷阱:\r
- 用通俗语言解释具体是哪种陷阱、为什么有问题\r
- 提供修正建议(如:重新定义假设、使用不同参考类、调整先验范围)\r
- 询问用户:是否按修正方案继续,还是坚持原定义(附警告)\r
- 用户坚持原定义:明确告知「当前分析结果仅供参考,存在以下局限性:[列出]」,继续 Step 2\r \r
重要:此步骤不需要用户输入概率数字,完全由 LLM 基于逻辑推理完成。\r \r
Step 2:获取先验 P(H)\r
\r 询问:在看到这条证据之前,您认为 [假设] 的可能性有多大?\r \r 用户回答后:\r
- 数字:校验范围 (0, 100)%,转换为小数\r
- 口语:按映射表转换,取中点\r
- 始终显示转换结果并等待确认\r \r
⚠️ 认知偏差提示 — 锚定效应: 确认前提示:「请注意:您的初始估计可能受到最近接触到的数字影响。这个概率是否反映了您看到证据前的真实判断?」\r \r
Step 3:获取似然度 P(E|H)\r
\r 询问:假设 [假设] 是真的,出现 [证据] 的可能性有多大?\r \r 同样处理口语映射,确认后存储。\r \r
⚠️ 认知偏差提示 — 确认偏差: 提示:「当人们希望某个假设成立时,容易高估 P(E|H)。请客观思考:即使假设为真,这个证据出现的频率有多高?」\r \r
Step 4:获取误报率 P(E|¬H)\r
\r 询问:假设 [假设] 是假的,仍然出现 [证据] 的可能性有多大?\r \r 用通俗例子帮助用户理解(如:不是脑瘤的人也头痛的概率)。\r \r
⚠️ 认知偏差提示 — 基础率忽视: 提示:「人们常低估假设为假时证据仍然出现的概率。请考虑日常情况中的基础概率。」\r \r
Step 5:计算并展示\r
\r 调用脚本计算:\r \r
python scripts/bayes_calc.py compute --prior \x3CP> --likelihood \x3CL> --false-positive \x3CF>\r
```\r
\r
解读输出并展示:\r
```\r
先验概率: 30.0% ██████░░░░░░░░░░░░░░\r
后验概率: 60.0% ████████████░░░░░░░░\r
\r
贝叶斯因子:3.5x(moderate — 中等证据强度)\r
```\r
\r
- 若贝叶斯因子 \x3C 1:提示「这个证据实际上**反证**了您的假设,贝叶斯推理帮助我们远离错误判断。」\r
- 若 P(E|H) ≈ P(E|¬H)(因子接近 1):提示「这个证据对判断几乎没有区分度。」\r
\r
展示后询问:\r
1. 添加新证据(将当前后验作为新先验,回到 Step 3)\r
2. 进行敏感性分析(进入 Step 6)\r
3. 保存结果(保存为 JSON,格式见 `references/data_schema.md`)\r
4. 结束\r
\r
### Step 6(可选):敏感性分析\r
\r
当用户对数字不确定时触发。询问概率的范围(如「P(E|H) 大约在 60% 到 90% 之间」)。\r
\r
调用脚本:\r
```bash\r
python scripts/bayes_calc.py sensitivity --prior \x3CP> --likelihood "\x3Cmin>,\x3Cmax>" --false-positive "\x3Cmin>,\x3Cmax>"\r
```\r
\r
展示后验范围:\r
> 您的后验概率大约在 **46.2% 到 79.4%** 之间,取决于您对似然度的具体估计。\r
\r
### Step 7(可选):迭代更新\r
\r
添加新证据时,将当前后验作为新的先验,重复 Step 3-5。多条证据的贝叶斯因子相乘得到累积因子。\r
\r
---\r
\r
## 结果保存\r
\r
当用户确认保存时,将结果写入 JSON 文件,格式参考 `references/data_schema.md`。文件保存在当前工作目录,文件名建议使用假设关键词(如 `rain_analysis.json`)。\r
\r
二次加载时:通过 Read 工具读取 JSON,提取 `final_posterior` 作为新先验,`evidence_chain` 中已有证据用于避免重复输入,继续迭代分析。\r
\r
---\r
\r
## 脚本调用参考\r
\r
| 命令 | 用途 |\r
|------|------|\r
| `python scripts/bayes_calc.py compute --prior P --likelihood L --false-positive F` | 计算后验概率 |\r
| `python scripts/bayes_calc.py sensitivity --prior P --likelihood "lo,hi" --false-positive "lo,hi" --steps N` | 敏感性分析网格(默认 steps=3) |\r
\r
所有输出为 JSON,解析后格式化展示给用户。\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install bayesian-reasoning - After installation, invoke the skill by name or use
/bayesian-reasoning - Provide required inputs per the skill's parameter spec and get structured output
What is Bayesian reasoning?
Guide users through Bayesian reasoning via multi-turn dialogue. Computes posterior probabilities P(H|E), Bayes factors, sensitivity analyses, and visualizes... It is an AI Agent Skill for Claude Code / OpenClaw, with 60 downloads so far.
How do I install Bayesian reasoning?
Run "/install bayesian-reasoning" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Bayesian reasoning free?
Yes, Bayesian reasoning is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Bayesian reasoning support?
Bayesian reasoning is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Bayesian reasoning?
It is built and maintained by erelief (@erelief); the current version is v0.1.0.