推理工具MCP服务器v3.3
MCP(模型上下文协议)服务器,使用可配置的LLM后端提供高级推理工具。
v3.3的新增功能
- 自动推理新
auto_reason该工具会自动为您的问题选择最佳算法 - 供应商情报:跟踪提供商指标、分数和智能回退
- YAML配置:通过配置默认值
reasoning-tools.yaml文件 - 增强反射记忆:使用语义相似性查找相关的过去课程
- 更好的错误处理:智能重试的分类错误(配置/瞬态/终端)
- 可配置的GoT合并:路径合并的相似性阈值现在可以配置
建筑
┌─────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ Main Client │ ───► │ This MCP Server │ ───► │ LLM Provider │
│ (Claude) │ │ │ │ (zai/openai/ │
└─────────────┘ │ • auto_reason (NEW!) │ │ groq/deepseek/ │
│ • sequential_thinking │ │ ollama/etc) │
│ • graph_of_thoughts │ └─────────────────┘
│ • reflexion │ │
│ • dialectic_reason │ ┌──────┴──────┐
│ • list_providers │ │ Provider │
│ • memory_stats │ │ Intelligence│
└──────────────────────┘ └─────────────┘
│
┌──────┴──────┐ ┌─────────────────┐
│ YAML Config │ │ Built-in Tools │
│ (optional) │ │ • calculator │
└─────────────┘ │ • code_exec │
│ • web_fetch │
│ • string_ops │
└─────────────────┘可用工具
1. auto_reason (v3.3中的新功能)
自动为您的问题选择并运行最佳推理算法。使用基于快速启发式的选择或基于LLM的分析,在顺序推理、思维图、反思或辩证推理之间进行选择。
{
"problem": "What are the pros and cons of microservices vs monoliths?",
"quick_select": false
}主要特点:
- 快速选择模式:使用模式进行基于关键字的快速选择(辩论→辩证法、谜题→反思、头脑风暴→GoT)
- LLM分析模式:考虑复杂性、争议和探索需求的深入问题分析
- 自动执行:运行所选算法并返回结果
- 选择透明度:记录选择了哪种算法以及原因
选择标准:
| 问题类型 | 已选择算法 |
|---|---|
| 争议/辩论话题 | 辩证法 |
| 多元视角 | 辩证法 |
| 谜题、调试、需要迭代 | Reflexion |
| 创意探索、头脑风暴 | 思维图谱 |
| 简单、事实性的问题 | 顺序 |
2. sequential_thinking
简单的线性思维链推理。适用于直接的问题。
{
"problem": "What is 17 * 23?",
"max_thoughts": 5,
"stream": false
}3. graph_of_thoughts
基于图的推理,具有路径合并和可选工具集成功能。与思想之树不同,GoT可以合并类似的推理路径,结合融合方法的见解。
{
"problem": "Design a cache invalidation strategy for a distributed system",
"branching_factor": 3,
"max_nodes": 30,
"max_depth": 8,
"enable_merging": true,
"enable_tools": true,
"max_tool_calls": 10,
"enabled_tools": "calculator,code_exec",
"stream": true
}主要特点:
- 节点可以有多个父节点
- 使用LLM相似性检测合并相似的想法
- 合并节点得分提高(聚合证据)
- UCB1公式指导勘探与开采
- 工具集成(v3.2):在推理过程中可以使用计算器、代码执行和web fetch
4. reflexion
使用情景记忆和可选工具集成进行推理。多次尝试,从失败中吸取教训,并从过去的类似问题中吸取教训。
{
"problem": "Solve: What is the next number in the sequence 2, 6, 12, 20, 30, ?",
"max_attempts": 3,
"learn_from_past": true,
"enable_tools": true,
"max_tool_calls": 5,
"stream": true
}主要特点:
- 将课程存储在持久记忆中(
~/.local/share/reasoning-tools/memory.json) - 失败的尝试会引发反思:“出了什么问题?”
- 未来类似的问题询问过去的经验教训
- 经验教训为新的推理尝试提供了信息
- 工具集成(v3.2):可以在推理过程中使用工具进行计算和验证
5. dialectic_reason
论文对偶综合推理结合辩论和验证链,以及可选工具支持的事实检查。
{
"problem": "Should companies adopt a 4-day work week?",
"max_rounds": 3,
"confidence_target": 0.85,
"enable_tools": true,
"max_tool_calls": 10,
"enabled_tools": "calculator,web_fetch",
"stream": true
}主要特点:
- 论文:提出解决方案
- 反驳:质疑论点(发现缺陷)
- 综合:整合两者的有效点
- 每项索赔都经过逻辑合理性验证
- 工具支持的验证(v3.2):在核实过程中使用工具对索赔进行事实核查
6. list_providers
列出可用的提供程序及其配置状态。现在包括 供应商情报 显示性能得分、成功率和延迟的指标。
7. memory_stats
显示反射情景记忆统计数据。
内置工具
当 enable_tools: true 如果设置了,推理方法可以使用以下工具:
| 工具 | 说明 | 示例 |
|---|---|---|
calculator | 数学表达式 | 17 * 23, sqrt(144), sin(pi/4) |
code_exec | Python代码执行 | print(sum([1,2,3])) |
web_fetch | URL获取/网络搜索 | https://api.github.com/users/... |
string_ops | 字符串操作 | len:hello, upper:text |
流输出
所有推理工具都支持通过 stream: true 参数:
💭 [t1] (d1) (0.85) First reasoning step...
💭 [t2] (d2) (0.78) Second reasoning step...
🔀 Merged thought into existing node n5
🔧 calculator(17*23) → 391
📊 [n7] (0.92) Evaluation complete
✅ Solution found!支持的提供商
| 提供者 | 环境密钥 | 默认模型 | 注释 |
|---|---|---|---|
| 在 (GLM) | ZAI_API_KEY | glm-4.7 | z.ai/Zhipu |
| 开放人工智能 | OPENAI_API_KEY | gpt-4o-mini | |
| 人类 | ANTHROPIC_API_KEY | claude-sonnet-4-6 | |
| 格罗克 | GROQ_API_KEY | llama-3.1-70b | 非常快 |
| 深度求索 | DEEPSEEK_API_KEY | deepseek聊天 | 便宜,推理能力强 |
| 开放路由 | OPENROUTER_API_KEY | llama-3.1-70b | 多种型号 |
| 一起 | TOGETHER_API_KEY | 骆驼-3.1-70b | |
| 奥拉玛 | (无) | 骆驼3.1 | 当地 |
设置
1.建造
cd /path/to/reasoning-tools
go build -o reasoning-tools .
cp reasoning-tools ~/.local/bin/2.环境变量
# Set at least one provider key
export ZAI_API_KEY="your-key" # or
export GROQ_API_KEY="your-key" # or
export DEEPSEEK_API_KEY="your-key" # etc.
# Optional overrides
export LLM_PROVIDER="groq" # Force specific provider
export LLM_MODEL="mixtral-8x7b" # Force specific model
export ZAI_BASE_URL="..." # Custom endpoint for z.ai2.5配置文件(可选)
创建 reasoning-tools.yaml 在当前目录中, ~/.config/reasoning-tools/,或设置 REASONING_TOOLS_CONFIG 指向您的配置文件。
# reasoning-tools.yaml
providers:
default: "groq" # Default provider if no env var set
fallbacks: # Fallback order on failure
- "deepseek"
- "ollama"
algorithms:
sequential:
max_thoughts: 10
graph_of_thoughts:
branching_factor: 3
max_nodes: 30
max_depth: 8
enable_merging: true
merge_threshold: 0.7 # NEW: Configurable similarity threshold
reflexion:
max_attempts: 3
dialectic:
max_rounds: 5
confidence_target: 0.85
fast_mode: false
timeouts: # Per-provider timeouts (seconds)
openai: 120
anthropic: 120
groq: 60
ollama: 300
deepseek: 120
rate_limiting:
max_concurrent: 2 # Max parallel LLM requests
max_tokens_cap: 2048 # Default max tokens per request
memory:
path: "" # Custom memory path (default: ~/.local/share/...)
max_episodes: 100 # Max episodes in reflexion memory
ttl_days: 7 # Episode expiration
tools:
calculator: true
code_exec: true
web_fetch: true
string_ops: true生成一个示例配置:
reasoning-tools -generate-config > reasoning-tools.yaml优先顺序:环境变量覆盖配置文件值。
3.MCP配置
大多数MCP桌面/CLI客户端使用stdio,因此通过 -transport=stdio 在他们的参数中。
法典 (~/.codex/config.toml):
[mcp_servers.reasoning-tools]
command = "reasoning-tools"
args = ["-transport=stdio"]
disabled = false
[mcp_servers.reasoning-tools.env]
ZAI_API_KEY = "your-key"
ZAI_BASE_URL = "https://api.z.ai/api/paas/v4"
GLM_MODEL = "glm-4.7"开源代码 (~/.config/opencode/opencode.json):
{
"mcp": {
"reasoning-tools": {
"type": "local",
"command": ["reasoning-tools"],
"args": ["-transport=stdio"],
"environment": {
"ZAI_API_KEY": "your-key",
"ZAI_BASE_URL": "https://api.z.ai/api/paas/v4"
}
}
}
}克劳德代码 (.mcp.json 在项目根目录中):
{
"mcpServers": {
"reasoning-tools": {
"command": "reasoning-tools",
"args": ["-transport=stdio"],
"env": {
"ZAI_API_KEY": "your-key",
"ZAI_BASE_URL": "https://api.z.ai/api/paas/v4"
}
}
}
}或者通过CLI添加:
claude mcp add reasoning-tools -- reasoning-tools -transport=stdioGemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"reasoning-tools": {
"command": "reasoning-tools",
"args": ["-transport=stdio"],
"env": {
"ZAI_API_KEY": "your-key",
"ZAI_BASE_URL": "https://api.z.ai/api/paas/v4"
}
}
}
}或者用于项目特定的配置(.gemini/settings.json):
{
"mcpServers": {
"reasoning-tools": {
"command": "reasoning-tools",
"args": ["-transport=stdio"],
"env": {
"ZAI_API_KEY": "your-key",
"ZAI_BASE_URL": "https://api.z.ai/api/paas/v4"
}
}
}
}4.运输
此服务器支持三种传输方式(默认: SSE),加上双模式:
- 标准 (使用
-transport=stdio基于stdio的客户端) - SSE (服务器发送的事件;
/sse+/message) - 可流式传输http (单端点,默认
/mcp) - 双重的 (SSE+可流式传输http在同一端口上)
当 -transport 如果不提供,并且stdin/stdout是非交互式的,服务器会自动选择 标准 支持基于stdio的MCP客户端。集 -transport 或 MCP_TRANSPORT 以覆盖。
示例:
# SSE
./reasoning-tools -transport=sse -port=9847 -base-url http://localhost:9847
# Streamable HTTP
./reasoning-tools -transport=streamable-http -port=9847 -http-path /mcp
# Dual (SSE + Streamable HTTP)
./reasoning-tools -transport=dual -port=9847 -base-url http://localhost:9847 -http-path /mcp环境覆盖:
export MCP_TRANSPORT=sse
export MCP_PORT=9847
export MCP_BASE_URL="http://localhost:9847" # SSE only
export MCP_HTTP_PATH="/mcp" # Streamable HTTP only算法详细信息
思维图(GoT)
Problem
│
┌───────┼───────┐
▼ ▼ ▼
Path A Path B Path C ← Generate 3 candidates
(0.8) (0.6) (0.9) ← Score each
│ │ │
└───────┼───────┘ ← Merge similar paths
│
┌───────┼───────┐
...continue...启用工具后,节点可以是工具操作:
[thought] ──► [tool:calc] ──► [thought] ──► [answer]
│
Result: 391反思
Attempt 1 → Fail → Reflect → Store lesson
↓
Attempt 2 → Apply lesson → Fail → Reflect → Store
↓
Attempt 3 → Apply lessons → Success!
↓
Future similar problems → Query lessons → Better first attempt启用工具后,每次尝试时都可以使用计算器/代码/网络进行推理。
辩证推理
Round 1:
Thesis (propose) → Verify [+ tool evidence]
Antithesis (challenge) → Verify [+ tool evidence]
Synthesis (integrate) → Verify [+ tool evidence]
↓
Round 2: Build on synthesis...
↓
Continue until confidence >= target工具支持的验证使用计算器、web_fetch等收集证据。
配置参数
思想图谱
| 参数 | 默认值 | 描述 |
|---|---|---|
branching_factor | 3 | 每次扩展的候选人 |
max_nodes | 30 | 可探索的最大节点数 |
max_depth | 8 | 最大推理深度 |
enable_merging | true | 允许路径合并 |
enable_tools | false | 在推理过程中启用工具使用 |
max_tool_calls | 10 | 最大工具调用次数 |
enabled_tools | (all) | 逗号分隔:计算器、code_exec、web_fetch、string_ops |
反思
| 参数 | 默认值 | 描述 |
|---|---|---|
max_attempts | 3 | 最大推理尝试 |
learn_from_past | true | 查询情节记忆 |
enable_tools | false | 在推理过程中启用工具使用 |
max_tool_calls | 5 | 每次尝试的最大工具调用次数 |
enabled_tools | (all) | 逗号分隔:计算器、code_exec、web_fetch、string_ops |
辩证推理
| 参数 | 默认值 | 描述 |
|---|---|---|
max_rounds | 5 | 最大辩论回合数 |
confidence_target | 0.85 | 到达时停止 |
enable_tools | false | 启用工具支持的验证 |
max_tool_calls | 10 | 用于验证的最大工具调用数 |
enabled_tools | (all) | 逗号分隔:计算器、code_exec、web_fetch、string_ops |
提供商智能(v3.3中的新功能)
服务器跟踪提供商性能指标并提供智能回退:
跟踪的指标:
- 成功/失败率
- 平均延迟
- 速率限制点击
- 连续故障
评分算法:
- 基数:100分
- 成功率惩罚:高达-40分
- 延迟惩罚:最高-30分(如果平均值>1000ms)
- 利率限制罚款:最高-15分
- 最近奖励:最近成功最多可获得+15分
智能回退: 当提供者发生故障时,系统:
- 检查错误是否可重试(瞬态与终端)
- 按顺序尝试配置回退提供程序
- 退回到得分最高的可用提供商
连续3次失败后,提供程序将标记为不可用,直到重置。
通过查看指标 list_providers:
Provider Intelligence Summary:
============================
groq (Score: 95.0, available)
Requests: 50 total, 49 success (98.0%)
Latency: avg 120ms, min 80ms, max 450ms
openai (Score: 85.0, available)
Requests: 30 total, 28 success (93.3%)
Latency: avg 350ms, min 200ms, max 800ms错误分类(v3.3)
为了更好地处理错误,现在对错误进行了分类:
| 类别 | 可重试 | 示例 |
|---|---|---|
| 配置 | 否 | API键无效,找不到模型 |
| 瞬态 | 是 | 速率限制、超时、503个错误 |
| 终端 | 否 | 请求错误,内容策略,401 |
这启用了仅重试瞬态错误的智能重试逻辑。
版本历史
- v3.3.0版本 -自动推理、提供者智能、YAML配置、增强内存、错误分类
- v3.2.0版本 -跨GoT、Dialectics和Reflexion的统一工具集成(取代独立的LATS)
- v3.1.0 -添加了内置工具的LATS(语言代理树搜索)
- v3.0.0 -添加思维图、反射、流式输出
- v2.0.0版本 -增加了思想树、辩证推理、多提供商支持
- v1.0.0 -具有顺序思维的初始版本
许可证
麻省理工学院
