结构化推理工具

Think MCP是一个为MCP兼容的LLM客户端设计的结构化推理工具,通过分步推理、分支处理、屏蔽弱最终答案和跨会话记忆保持,提升LLM工作流的可靠性和深度。

  • by GofMan5
  • TypeScript
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 GofMan5/think-mcp

使用说明

思考MCP

用于MCP兼容LLM客户端的结构化推理工具

逐步推理,在需要时分支,阻止弱期末考试,并在会话中保留有用的记忆。

安装 | 工具 | 思维周期 | 质量门禁 | 更新日志


为什么存在

大多数LLM工作流以可预测的方式失败:

  • 他们回答得太早了。
  • 当任务需要替代方案或批评时,它们保持线性。
  • 他们在步骤之间失去了早期的洞察力。
  • 他们以没有核查支持的信心结束。

Think MCP为这些故障添加了一个外部推理层。它不会取代模型的智能。它约束和构建了智能的使用方式。

5.6.0中有什么

  • 为模型添加了明确的指导、完成障碍和确定的下一步行动路线。
  • 使最终的循环终止,重启安全,幂等,包括洞察重试。
  • 在提交状态或见解之前,被拒绝的空白摘要和断开的获胜路径。
  • 保持省略置信度可选,而不是发明虚假的低置信度失败。
  • 通过源头证据和尝试反驳,加强了深层次的逻辑指导。
  • 将仅标题正则表达式evals替换为可执行MCP和循环行为测试。

核心模型

Think MCP结合了三层:

层 角色 结果
think / think_batch 捕获增量或预构建推理 更好的分解、分支和修订
think_cycle 强制使用自适应深度和硬最终门 阻止浅或弱的最终答案
回忆+指导+验证 保留有用的上下文并警告薄弱的模式 更好的一致性和更少的死胡同

安装

直接运行

npx -y @gofman3/think-mcp

MCP配置

{
  "mcpServers": {
    "think": {
      "command": "npx",
      "args": ["-y", "@gofman3/think-mcp"]
    }
  }
}

本地开发

npm install
npm run build
npm test

工具集

工具 目的 最佳用途
think 添加一个结构化推理步骤 需要指导进度的中等复杂度任务
think_batch 提交一个已构建的推理链 快速验证完整的预构建链
think_cycle 具有硬进程门的自适应推理状态机 高风险或高复杂性任务
think_logic 返回只读分析清单 在进行审计之前选择方法
think_recall 搜索活动范围或存储的见解 重用模式,避免重复死胡同
think_done 最终确定 think 或 think_batch 范围 受控非周期完成
think_reset 清除活动范围状态 仅限硬上下文转换

think_cycle

think_cycle 是当前版本中的主要深度控制工具。

它将会话作为状态机运行:

start -> step -> status -> finalize

如果推理过程不完整, finalize 它不会悄无声息地通过。它会阻止完成,并返回一个具体的下一个动作加上所需的最少额外想法。

关键行为

  • 根据目标复杂性和风险标记自适应所需深度。
  • 相位覆盖硬门: decompose, alternative, critique, synthesis, verification.
  • 结构质量评分,对重复、验证不力和信心不稳定进行处罚。它并不假装判断语义真理。
  • 信心是可选的;稳定性仅在两个评分步骤后报告,而不是发明缺失的数据。
  • 明确的 constraintCheck 在结束以约束开始的会话之前。
  • 终端完成:完成的循环会保留其批准的答案,拒绝新步骤,并安全地重试失败的重复数据消除洞察保存。
  • 回退与常规互操作 think 后端时 backendMode=auto.
  • 循环预算控制,以避免无限的成本和延迟增长。

输入形状

{
  action: 'start' | 'step' | 'status' | 'finalize' | 'reset',
  sessionId?: string,
  scopeId?: string,
  goal?: string,
  context?: string,
  constraints?: string[],
  thought?: string,
  thoughtType?: 'decompose' | 'alternative' | 'critique' | 'synthesis' | 'verification' | 'revision',
  confidence?: number,
  finalAnswer?: string,
  constraintCheck?: string,
  backendMode?: 'auto' | 'independent' | 'think',
  maxLoops?: number,
  showTrace?: boolean,
  exportReport?: 'markdown' | 'json',
  includeMermaid?: boolean
}

输出形状

{
  status: 'in_progress' | 'blocked' | 'ready' | 'completed' | 'error',
  sessionId: string,
  scopeId?: string,
  loop: { current: number, max: number, required: number, remaining: number },
  quality: {
    overall: number,
    coverage: number,
    critique: number,
    verification: number,
    diversity: number,
    confidenceStability?: number
  },
  gate: { passed: boolean, reasonCodes: string[] },
  requiredMoreThoughts: number,
  nextPrompts: string[],
  shortTrace?: string[],
  finalApprovedAnswer?: string
}

示例流程

// 1. Start
{
  action: 'start',
  goal: 'Design a safe migration from Redis session cache to Postgres-backed sessions',
  constraints: ['zero logout spike', 'rollback in under 5 minutes'],
  backendMode: 'auto'
}

// 2. Add steps
{
  action: 'step',
  sessionId: 'cycle_xxx',
  thought: 'Break the migration into dual-write, read-fallback, rollout metrics, and rollback paths.'
}

// 3. Try to finalize
{
  action: 'finalize',
  sessionId: 'cycle_xxx',
  finalAnswer: 'We should migrate in phases and monitor it carefully...'
}

典型阻塞响应:

{
  status: 'blocked',
  gate: { passed: false, reasonCodes: ['MISSING_PHASE_VERIFICATION'] },
  requiredMoreThoughts: 1,
  nextPrompts: [
    'Next: think_cycle step with thoughtType="verification" — define tests, metrics, and rollback triggers.'
  ]
}

其他工具

think

当您需要使用修订、分支、子步骤和快速扩展进行增量推理时使用。

scopeId 是可选的,仅在以下情况下接受 thoughtNumber=1如果一想到就省略了,则创建了一个新的活动范围。

{
  thought: 'The bug likely comes from stale branch state after retry.',
  thoughtNumber: 1,
  totalThoughts: 3,
  nextThoughtNeeded: true,
  confidence: 6,
  quickExtension: {
    type: 'critique',
    content: 'Verify whether retry state is recreated or reused.'
  }
}

think_batch

仅当完整的链已经构建并且您希望在一次调用中对其进行原子验证时使用。

scopeId 是可选的。如果省略,批提交将创建一个新的活动范围。

{
  goal: 'Audit deployment rollback flow',
  thoughts: [
    { thoughtNumber: 1, thought: 'Identify every entry point that can change rollout state and ownership.' },
    { thoughtNumber: 2, thought: 'Trace rollback triggers, timeout behavior, and observable recovery evidence.' }
  ]
}

think_logic

用于在审计前生成严格的方法。它返回指令,而不是结果; deep 增加了一道证据和否定之门。

{
  target: 'Review the payment retry pipeline for consistency and failure isolation',
  depth: 'deep',
  focus: ['reliability', 'performance', 'data-flow']
}

think_recall

在开始一类熟悉的问题之前使用。会话召回搜索整个活动范围 think 状态和每个附件 think_cycle 会议。您还可以传递一个显式 scopeId.

{
  query: 'rollback strategy cache migration',
  scope: 'insights',
  limit: 5
}

think_done

默认情况下, think_done 确定主动思考范围。通过 scopeId 明确地确定一个非活动思维范围。一个只循环的范围没有思考历史,所以用 think_cycle 行动 finalize 相反。

质量和放行门

发布验证内置于repo中:

npm run validate:release

主要检查:

  • TypeScript类型检查
  • 单元和行为MCP测试(npm test;专注: npm run eval:local)
  • 回购结构验证
  • 安全审计
  • 硬质量基准 docs/quality/HARD_QUALITY_STANDARD.md

运行时存储

  • 默认数据目录: ~/.think-mcp
  • 覆盖 THINK_MCP_DATA_DIR
  • think_cycle 会话在TTL清理的运行时存储中持久化
  • 共享范围元数据保留在 runtime_state.json

套餐链接

更新日志

v5.6.0

  • 增加了可操作的模型指导和确定性工具路线。
  • 强化循环完成、持久性、重试、置信度评分和状态完整性。
  • 添加了真正的stdio和循环行为评估,同时简化了构建和打包。

v5.5.1

  • 修复了运行时指导字符串中损坏的mojibake输出。
  • 为当前的工具集和质量模型重新构建并刷新了README。
  • 发布文件和包装清理 5.5.0.

v5.5.0

  • 添加 think_cycle 用于具有硬质量门的自适应外部推理。
  • 基于以下内容添加了发布门控硬质量政策 NEED_ADD.
  • 添加了循环门控、回退行为、自主质量、安全门和有界重试的评估场景。

v5.1.0

  • 将提示风格切换为命令式IF/THEN指令。
  • 显著降低了常见推理流的令牌开销。

v5.0.0

  • 添加 think_logic 方法生成。

Built for controlled reasoning, not blind verbosity.