这是一个递归思维链(CORT)MCP服务器。 原始项目如下,我非常感谢原作者的工作。
原始:PhialsBasement/Chain-of-Recursive-Thoughts: 我通过让AI反复与自己辩论来让它更深入地思考。效果非常好。 https://github.com/PhialsBasement/Chain-of-Recursive-Thoughts
0.2.0 更新了LLM列表 0.1.0 初始发布
Roo代码 / Cline
建议超时时间为300秒。(有时可能需要比预期更长的时间) 需要OPENROUTER_API_KEY。https://openrouter.ai/
"CoRT-chain-of-recursive-thinking": {
"command": "pipx",
"args": ["run", "cort-mcp", "--log=off"],
"env": {
"OPENAI_API_KEY": "{apikey}",
"OPENROUTER_API_KEY": "{apikey}"
}
}
"CoRT-chain-of-recursive-thinking": {
"command": "pipx",
"args": ["run", "cort-mcp", "--log=on", "--logfile=/workspace/logs/cort-mcp.log"],
"env": {
"OPENAI_API_KEY": "{apikey}",
"OPENROUTER_API_KEY": "{apikey}"
}
}
--log=off : 禁用所有日志(不写入任何日志)--log=on --logfile=/absolute/path/to/logfile.log : 启用日志并写入指定的绝对文件路径注意:
- 当启用日志时,日志仅写入到指定的绝对文件路径。相对路径或省略
--logfile会导致错误。- 当禁用日志时,不会输出任何日志。
- 如果缺少或提供了无效的必要参数,服务器将无法启动,并会打印错误消息。
- 日志文件必须可由MCP服务器进程访问和写入。
- 如果您遇到运行此服务器的问题,可能是由于缓存了旧版本的cort-mcp。请尝试使用最新版本(将
x.y.z设置为最新版本)的cort-mcp运行它,如下设置:
"CoRT-chain-of-recursive-thinking": {
"command": "pipx",
"args": ["run", "cort-mcp==x.y.z", "--log=off"],
"env": {
"OPENAI_API_KEY": "{apikey}",
"OPENROUTER_API_KEY": "{apikey}"
}
}
请参阅以下详细信息。
flowchart TB
Start[用户查询] --> DetermineRounds[AI确定思考轮数]
DetermineRounds -->|确定思考轮数 1-5 轮| InitialResponse[初始响应\ntemperature=0.7]
InitialResponse --> Round1[开始第1轮]
subgraph "第1轮"
Round1 --> R1A1[创建替代方案1 temperature=0.7]
Round1 --> R1A2[创建替代方案2 temperature=0.8]
Round1 --> R1A3[创建替代方案3 temperature=0.9]
InitialResponse & R1A1 & R1A2 & R1A3 --> R1Eval[评估 temperature=0.2]
R1Eval --> R1Best[第1轮最佳响应]
end
R1Best --> Round2[开始第2轮]
subgraph "第2轮"
Round2 --> R2A1[创建替代方案1 temperature=0.7]
Round2 --> R2A2[创建替代方案2 temperature=0.8]
Round2 --> R2A3[创建替代方案3 temperature=0.9]
R1Best & R2A1 & R2A2 & R2A3 --> R2Eval[评估 temperature=0.2]
R2Eval --> R2Best[第2轮最佳响应]
end
R2Best --> Remaining[剩余轮次 重复相同过程]
Remaining --> FinalBest[最终轮次最佳响应]
FinalBest --> FinalResponse[最终响应]
从原始CoRT方法论中进行了几项增强。
概述: 这是一个新工具,它在传统的CoRT思考流程中增加了“随机选择不同LLM(模型+提供商)用于每个替代方案”的探索策略。 这允许最大限度地利用异构模型的知识和想法,并从更广泛的选项中选择最优解决方案。
MIXED_LLM_LIST = [
{"provider": "openai", "model": "gpt-4.1-nano"},
{"provider": "openrouter", "model": "meta-llama/llama-4-scout:free"},
{"provider": "openrouter", "model": "google/gemini-2.0-flash-exp:free"},
{"provider": "openrouter", "model": "mistralai/mistral-small-3.1-24b-instruct:free"},
{"provider": "openrouter", "model": "meta-llama/llama-3.2-3b-instruct:free"},
{"provider": "openrouter", "model": "thudm/glm-4-9b:free"},
]
概述: 更改了评估提示,使其更加丰富。(原始提示可通过工具获取) 使用{toolname}.neweval提示,要求AI解释其推理。
f"""原始消息:{prompt}
评估这些响应并选择最佳的一个:
当前最佳:{current_best}
备选方案:
{chr(10).join([f"{i+1}. {alt}" for i, alt in enumerate(alternatives)])}
哪个响应最能解决原始消息?考虑准确性、清晰度和完整性。
首先,仅用'current'或数字(1-{len(alternatives)})回应。
然后在新的一行中,用一句话解释你的选择。"""
f""" 原始消息:{prompt}
您是一位专家评估员,负责选择最能满足用户真正需求的响应,考虑多个视角。
当前最佳:{current_best}
备选方案: {chr(10).join([f"{i+1}. {alt}" for i, alt in enumerate(alternatives)])}
请遵循以下评估过程:
意图分析:用户真正寻求的是什么?除了表面问题外,可能存在哪些潜在需求?
情境考量:这个问题可能源于哪些可能的情况或背景?
多样性评估:响应是否考虑了不同的观点或可能的解释?
实用性评估:响应在用户的实际环境中有多有用?
一致性检查:响应内部是否一致且逻辑连贯?
对于每个响应(包括当前最佳):
它是否解决了用户的真实问题?
它是否平衡了准确性和实用性?
它是否避免了不必要的假设或偏见?
它是否足够灵活以适用于各种上下文或情况?
它是否考虑了例外或特殊情况?
完成您的评估后:
仅用'current'或数字(1-{len(alternatives)})表示您的选择。
在下一行中,具体解释为什么这个响应最能满足用户的真实需求。"""
此API根据指定的provider和model参数确定实际使用的模型,并在发生错误时进行回退处理。
提供商(provider)解析
openrouter作为提供商。openai或openrouter以外):回退到默认提供商openrouter。模型(model)解析
openrouter:使用默认模型mistralai/mistral-small-3.1-24b-instruct:free。openai:使用默认的OpenAI模型。API调用和错误回退
openai。OPENAI_API_KEY。openai提供商的默认模型的过程(这是回退处理)。openai,或未设置OPENAI_API_KEY),则返回初始错误作为最终结果,这种类型的回退不会发生。关于环境变量的注意事项:
openrouter需要OPENROUTER_API_KEY。openai或利用上述回退功能需要OPENAI_API_KEY。MIT
随心所欲地使用