内容
# 神话推理MCP
[](https://www.npmjs.com/package/mythos-reasoning-mcp)
[](LICENSE)
[](#工具)
[](#05版本新增功能)
[](#)
> **一个用于Codex / Claude Code / 任意MCP客户端的确定性验证门控——独立于被检查的模型。**
> Mythos 不会使模型变得更智能。它会根据证据、矛盾、校准和出处检查模型的输出——因为模型的自我评估不应被盲目信任。
---
## 简介
```text
之前:模型 -> 答案 -> 发送 ❓ (自我评分,无独立检查)
之后:模型 -> 答案 -> Mythos 门控 -> 准备 | 修订 | 收集证据 | 形式化 | 阻止
```
- **19种工具**,单个MCP服务器,默认零LLM和零网络。
- **第0层(默认)**:完全本地启发式——声明验证,矛盾检测,校准(Brier + ECE),语义熵,来源绑定。
- **第1层(可选)**:可选的`mythos_judge`,用于新鲜上下文的语义判决。 除非您设置了API密钥,否则禁用。
- **可衡量**:`npm run eval:gate`评估标记数据集,并将精度/召回率/F1/声明级召回率写入`reports/gate_eval.*`。
---
## 快速入门
```bash
git clone https://github.com/sorryorc/mythos-mcp.git
cd mythos-mcp
npm install
npm run build
npm test
```
将以下配置写入您的Codex(或其他MCP客户端)配置文件中:
```toml
[mcp_servers.mythos_reasoning]
command = "node"
args = ["<绝对路径>/mythos-mcp/dist/index.js"]
cwd = "<绝对路径>/mythos-mcp"
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 120
```
当您的客户端公开类似 `mcp__mythos_reasoning__mythos_optimize` 的工具时,MCP已连接。
---
## 它实际执行的操作
Mythos推理MCP将`Prelude → 递归深度 → Coda`的想法转化为实用工作流:
```text
计划 -> 递归深度(收敛)-> 验证 + 校准 -> 检测矛盾 -> 批评 + 探测 -> 门控 -> 验证的结尾
```
它在默认路径上**不运行LLM**,**不进行网络调用**。它公开可审计的摘要——置信度评分、证据覆盖率、校准、矛盾报告、风险标志和令牌预算估计——永远不会是私有的思维链。
> **定位:** 这里的“Mythos”是一个**确定性验证层**,而不是特定的模型品牌。 现代推理模型已经原生地提供了深度和自我验证; 这个层不取代它——它**独立**地检查模型的输出, 因为模型的自我评估(可能具有grader感知能力)不应被盲目信任。
## 05版本新增功能
0.6版本在0.5版本的基础上进行了改进,具有可衡量的门控评估、确定性的来源绑定和声明路由。 公共工具表面现在有19种工具:质量管道、更深层次的验证助手、来源/路由检查、可选的裁判和进度真实性审计。
- **重新聚焦的工具表面**:删除了上下文分层、工具编排、内存、脚手架、代理协调、协议批处理、安全晶格和可观察性调优工具。
- **验证优先的形状**:保留了预算、计划/通过/运行、验证/批评/最终确定、门控/优化、比较、形式化、一致性、假设、探测、验证链、裁判、来源、路由和进度审计。
- **门控效果可衡量**:`npm run eval:gate`评估`datasets/labeled.sample.json`,并将精度/召回率/假阻挡/F1和声明级召回率写入`reports/gate_eval.*`。
- **来源和路由**:`mythos_check_provenance`标记没有可验证指针的事实声明;`mythos_route`决定哪些声明停留在第0层,需要第1层裁判或更多证据。
## 04版本新增功能
0.4版本将该层重新定位为**Mythos 5 / Fable 5类模型**,其原生努力拨号提供推理深度,MCP曾模拟。 价值转移到模型的自我评估无法信任的内容——独立验证、校准和门控。
- **预算 → 努力映射** (`mythos_budget`):每个活动模式映射到主机模型的测试时间计算努力拨号——`lite → low`,`standard → high`,`deep → xhigh`,`max → max`;`off`跳过主机模型调用——带有`effort_rationale`。 深度来自模型;MCP控制**何时**花费值得。
- **多代理合并门控** (`mythos_gate`合并模式):传递`candidates`(≥2个子代理输出),门控运行跨代理一致性+矛盾检测,并门控合并(`merge_ready` / `reconcile` / `block_merge`)- 确定性检查,其中异步子代理(例如Git共享工作树)收敛。 高严重性跨代理矛盾强制`block_merge`。
- **响应来源感知**:`mythos_run`,`mythos_gate`和`mythos_optimize`接受`response_source`(`fable5 | opus_fallback | unknown`)加`stop_reason`。 Opus备用路径在`provenance`中报告;高风险门控加强质量栏,需要备用感知发布说明。
## 03版本新增功能
0.3版本从文献中挖掘成熟的技术,并将它们折叠成确定性、无LLM的核心:
- **验证链** (`mythos_verify_chain`):为每个声明/风险标签/特定问题生成独立的验证问题,以便在最终确定之前回答(Dhuliawala等人,2023)。
- **`mythos_consistency`中的语义熵**:根据含义聚类候选答案,并报告归一化熵+聚类统计数据——比词汇重叠更强的臆想信号(Farquhar等人,自然2024)。
- **原子事实分解** (FActScore,Min等人,2023):将句子分解为原子声明,以便一个假子句不隐藏在真实句子中;作为`factual_precision`公开。
- **适当校准**:校准报告现在添加了Brier分数和预期校准误差(ECE)超过声明。
## 02版本新增功能
0.2版本替换了核心,并添加了三个分析工具:
- **真正的递归深度。** 推理状态逐渐接近固定点:`belief_t = belief_{t-1} + lr * (target(state) - belief_{t-1})`,其中`target`源于证据强度、开放未知数和检测到的矛盾。 迭代在收敛、振荡或停滞时停止。
- **自适应计算。** 更难的输入(弱证据、更多未知数/矛盾)获得更低的学习率和更大的传递预算,以便引擎在需要的地方花费更多传递,在容易的输入上花费更少的传递。
- **矛盾检测。** 否定、模态(`always` vs `sometimes`)、数字/版本和声明与证据不匹配。
## Codex 状态
该项目安装在:
```text
<您的本地路径>/mythos-mcp
```
Codex 配置:
```toml
[mcp_servers.mythos_reasoning]
command = "node"
args = ["<您的本地路径>/mythos-mcp/dist/index.js"]
cwd = "<您的本地路径>/mythos-mcp"
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 120
```
当Codex公开类似 `mcp__mythos_reasoning__mythos_optimize` 的工具时,MCP已连接。
## 工具
v0.6公共界面有19种工具。
质量管道:
- `mythos_budget`:估计开销,推荐`off`/`lite`/`standard`/`deep`/`max`,并将活动模式映射到主机模型努力拨号(`low`/`medium`/`high`/`xhigh`/`max`)。
- `mythos_plan`:分类任务模式、风险级别、风险因素和证据需求。
- `mythos_pass`:运行一个递归松弛步骤(带有状态跨回合)。
- `mythos_verify`:根据证据支持对声明进行评分;报告每个声明的状态、风险标签和校准。
- `mythos_critique`:查找不受支持的声明、矛盾、过度自信、校准不佳、缺少验证和边缘情况空白。
- `mythos_finalize`:生成一个简洁的答案,附带证据摘要、矛盾和不确定性说明。
- `mythos_run`:运行完整的工作流(计划 -> 深度 -> 验证 -> 矛盾 -> 批评 -> 最终确定 -> 评分)。
- `mythos_gate`:决定`ready` / `revise` / `gather_evidence` / `formalize` / `block`。 **合并模式**(`candidates` >= 2):门控多代理合并,带有`merge_ready` / `reconcile` / `block_merge`。
- `mythos_formalize`:将未解决的问题转化为变量、约束、目标和按预期值排名的下一步骤。
- `mythos_optimize`:Codex的单入口编排(预算、门控、形式化、假设、开放边缘情况、证据请求、输出合同)。
- `mythos_compare`:比较基线输出与Mythos检查的答案。
分析工具(更深入的思考):
- `mythos_consistency`:多个候选答案的一致性/集成 - 同意分数、共识声明和候选间矛盾。
- `mythos_assumptions`:挖掘草稿依赖的隐藏假设,并按`risk_if_false / cost`排名。
- `mythos_probe`:生成答案必须生存的边缘情况/反事实,标记哪些已经解决。
- `mythos_verify_chain`:验证链 - 声明的独立验证问题,按弱度和风险优先级排序。
- `mythos_judge`:可选的第1层新鲜上下文语义裁判,用于声明/证据蕴涵(`supported | contradicted | unsupported`)。 默认禁用API密钥;使用`provider: "mock"`进行本地确定性测试。 支持`sample_count`、`entropy_threshold`、`cross_model`、`secondary_model`和`use_cache`。
- `mythos_check_provenance`:确定性检查声明是否绑定到可验证指针(`file_line`、`test_id`、`url`或`quote`),并计算无绑定特定声明。
- `mythos_route`:将声明路由到`tier0_only`、`tier1_judge`或`gather_evidence`,并估计裁判成本后再花费。
- `mythos_audit_progress`:比较进度语句与实际工具结果,并返回接地/假/不可验证标签以及浮动声明。
资源:`mythos://protocol`(工作流)和`mythos://depth`(递归深度数学)。
## 递归深度和自适应计算
```text
belief_t = belief_{t-1} + lr * (target(state) - belief_{t-1})
target(state) = base(evidence_strength) - unknown_penalty - contradiction_load
lr = 0.85 - 0.45 * difficulty # 更难的输入会爬升,使用更多传递
```
停止(`halted_reason`):
- `converged` - `|delta| < epsilon`,置信度足够高。
- `stalled` - 置信度停止移动,但未知数/矛盾仍然存在(需要新证据,而不是更多传递)。
- `oscillation` - 目标不断在各个传递之间翻转(冲突证据)。
- `max_passes` - 预算耗尽;`recommended_additional_passes`估计剩余的传递。
深度结果是可审计的:每个传递报告`belief`、`target`、`delta`、矛盾计数和开放检查。
## 验证、矛盾和校准
`mythos_verify`为每个声明分配一个基于证据的置信度,来自单个文档权重表(`test_result` > `file_line` > `docs` > `web` > `user_input` > `inference` > `unknown`),调整为引用的来源、绝对语言和纯粹的细节。 状态带:
- `supported`:强有力、来源明确、类型证据。
- `needs_more_evidence`:合理的但未证明的(例如引用的推理)。
- `unsupported`:没有可用的证据。
校准比较所述置信度与基于证据的置信度,并报告`overconfident_claims`和`calibration_score`。 注意,否定绝对值(`cannot guarantee`, `not always`)被视为hedging,而不是过度自信。
## 预算模式
| 模式 | 模型努力 | 典型用途 | 传递次数 | 估计开销 |
| --- | --- | --- | ---: | ---: |
| `off` | 跳过调用 | 休闲聊天、创意草稿、低风险偏好问题 | 0 | 0 |
| `lite` | 低 | 短答案、快速最终检查 | 1 | 约180个令牌 + 15% 检查文本 |
| `standard` | 高 | 正常编码、调试、当前信息、设计权衡 | 2 | 约420个令牌 + 35% 检查文本 |
| `deep` | xhigh | 安全、法律、金融、身份验证、破坏性操作、成本高决策 | 4 | 约900个令牌 + 80% 检查文本 |
| `max` | max | 最高能力敏感任务,在额外成本/延迟合理的情况下 | 5 | 约1300个令牌 + 110% 检查文本 |
最佳价值从`mythos_budget`开始。 使用`mythos_run` / `mythos_optimize`,当建议为`standard`或`deep`时,或当答案包含重要的事实声明时。
`mythos_judge`,
`mythos_gate`和`mythos_optimize`也可以接收:
```json
{
"response_source": "fable5 | opus_fallback | unknown",
"stop_reason": "optional provider stop/refusal reason"
}
```
使用`opus_fallback`,当主机从请求的Fable 5 / Mythos 5类路径后退时。门控不会盲目拒绝备用输出,但会报告降低的来源立场,并对高风险任务更严格。
## 可选第1层裁判
裁判层通过`mythos_judge`公开,并由`mythos_route`路由。 默认`mythos_gate`路径仍然是确定性和零网络;`mythos_optimize`报告哪些声明证明了第1层以及估计的支出。
环境契约:
```text
ANTHROPIC_API_KEY 启用Anthropic裁判客户端
MYTHOS_JUDGE_PROVIDER=mock 使用本地确定性模拟客户端
MYTHOS_JUDGE_PROVIDER=disabled 强制关闭第1层
MYTHOS_JUDGE_MODEL 默认情况下为claude-fable-5
MYTHOS_JUDGE_EFFORT 低 | 中 | 高 | x高 | 最大,默认为高
MYTHOS_JUDGE_MAX_OUTPUT_TOKENS 默认情况下为1200
MYTHOS_JUDGE_TIMEOUT_MS 默认情况下为30000
MYTHOS_JUDGE_ENDPOINT 默认情况下为https://api.anthropic.com/v1/messages
```
Anthropic请求使用带有`model`、`max_tokens`、`messages`和`output_config.effort`的Messages API;它发送必需的`anthropic-version: 2023-06-01`标头。裁判提示仅要求结构化的JSON判决,并明确避免私有的推理。
示例本地调用:
```json
{
"task": "Judge whether claims are supported.",
"provider": "mock",
"sample_count": 2,
"use_cache": true,
"claims": [
{
"claim": "The unit tests pass.",
"evidence_type": "test_result",
"source": "npm test"
}
]
}
```
对于进度报告,请传递`statements`或`progress_report`以及紧凑的`tool_results`:
```json
{
"statements": ["I ran npm test.", "I deployed to production."],
"tool_results": [
{ "id": "t1", "tool": "shell", "output": "npm test passed all checks" }
]
}
```
## 推荐的Codex工作流
```text
1. 首先使用正常的本地工具:读取文件,运行测试,检查文档。
2. 调用mythos_optimize,带有任务 + 草稿 + 紧凑的声明/证据。
3. ready -> 在output_contract下输出答案。
4. gather_evidence -> 收集请求的证据。
5. formalize -> 遵循排名靠前的下一步。
6. revise -> 在输出规则下重写。
7. block -> 不要回答;首先解决矛盾。
```
使用较低级别的工具(`mythos_verify`,`mythos_critique`,`mythos_consistency`,`mythos_assumptions`,`mythos_probe`,`mythos_pass`),当您调试管道本身或需要特定的检查时。
## 以可控成本获得最大收益
```text
跳过:随意/创意/无事实风险
精简:带有1-3个声明的短答案
标准:编码、调试、文档、当前信息、架构决策
深度:安全、凭证、支付、破坏性操作、法律/医疗/财务风险
最大:最高能力敏感任务在确定性门控证明花费合理后
```
发送紧凑的草稿、声明和证据摘要 - 而不是整个文件、日志或转录。MCP无法检索源或运行测试;它在最终答案之前使证据空白、矛盾和过度自信可见。
## 回放评估
记录Codex任务的实际尝试:
```powershell
npm run replay:record -- replay/sample_record.json replay/replay.jsonl
npm run replay:analyze -- replay/replay.jsonl
npm run replay:report -- replay/replay.jsonl reports/replay.md
npm run replay:reset -- replay/replay.jsonl
```
记录包括任务、草稿、声明、证据、结果和注释。使用结果一致:`accepted | reworked | failed | blocked | unknown`。 最强的调优信号是`ready`决定后来变成`failed`或`reworked` - 这意味着门控对该任务类别来说过于宽容。(`reset`会截断日志,即使在不支持文件删除的文件系统上。)
## 参考
确定性启发式算法灵感来自 - 而不是以下工作的实现:
- Geiping等人,“通过潜在推理扩展测试时间计算:一种递归深度方法”(arXiv:2502.05171,2025)。
- Dhuliawala等人,“验证链减少大型语言模型的幻觉”(arXiv:2309.11495,2023)。
- Farquhar、Kossen、Kuhn和Gal,“使用语义熵检测大型语言模型的幻觉”,自然630(2024)。
- Min等人,“FActScore:长形式文本生成中事实精度的细粒度原子评估”(EMNLP 2023)。
- Wang等人,“自一致性提高语言模型中的链式思维推理”(arXiv:2203.11171,2022)。
## 测试
```bash
npm test
```
`npm test` 构建、运行MCP烟雾测试、v0.2单元套件(递归收敛、矛盾检测、校准、门控决策和新工具)、比较和数据集评估,并将报告写入:
```text
reports/comparison.md
reports/real_tasks.sample.eval.md
reports/gate_eval.md
reports/test_replay.md
```