Skip to content

LseKit/SequentialThinking

Repository files navigation

Sequential Thinking 🤔

让 Agent 真正「推理」——不只是「生成文字」

PyPI License: MIT Python Tests

双引擎推理 · 双重模型 MoA · 中文 FTS5 全文搜索 · 26 个 MCP 工具


📊 功能对比

功能 MCP官方 (TS) bpradana (Go) spences10 (TS) arben-adm (Python) ad (Go) 本项目
工具数 1 11 3 5 1 26
持久化 ❌ 内存 ❌ 内存 ✅ 按 session ✅ JSON 文件 ❌ 内存 ✅ SQLite WAL
中文 FTS5
LLM 集成 ✅ OpenAI 兼容
双引擎降级 ✅ 自动
质量评估 ✅ 基础 ✅ 5 维 + 交叉验证
偏见检测 ✅ 5 种
矛盾检测 ✅ 双重
假设追踪 ✅ axioms ✅ 完整 CRUD
修订标记 ✅ isRevision ✅ is_revision ✅ is_revision
分支推理
自动完成
模板 7 ✅ 9 种
Self-MoA ✅ 3 轮投票
Iterative-MoA ✅ 双模型迭代
MCP Resources 3 ✅ 2 个
MCP Prompts 3 1 ✅ 3 个
Mermaid 可视化
回放
Web 面板
Docker
单元测试 ✅ vitest ✅ pytest 192 个

每个实现各有侧重。官方版是参考实现,简洁可靠;Go 版编译为单二进制、启动快、有 Web 面板;本项目的重点是多引擎推理和中文场景支持。

我们的不足

  • 无 Web 调试面板(ad 版有)
  • 无安全扫描(spences10、recallnet 有)
  • 不支持反向导入(arben-adm 支持)
  • Python 启动比 Go/TS 慢(加载 jieba 约 1-2 秒)
  • 无 Docker 支持

⚡ 三种使用方式

方式一:PyPI 安装(最简单)

pip install LseKit-SequentialThinking
lseqthink

方式二:uvx 零安装

uvx --from LseKit-SequentialThinking lseqthink

方式三:克隆源码自行部署

git clone https://github.com/LseKit/SequentialThinking.git
cd SequentialThinking
uv venv SeqThinkVenV --python 3.12
uv pip install -r Requirements.txt
cp .env.example Config/.env && chmod 600 Config/.env
cp ecosystem.config.example.js Ecosystem/ecosystem.config.js
pm2 start Ecosystem/ecosystem.config.js && pm2 save
# 验证
pm2 status SequentialThinking
cd GitHubSrc && python3 -m pytest Tests/ -q

📖 完整部署见项目部署手册


🔌 各智能体接入方式

Claude Desktop

{
  "mcpServers": {
    "seqthink": {
      "command": "uvx",
      "args": ["--from", "LseKit-SequentialThinking", "lseqthink"]
    }
  }
}

Hermes

~/.hermes/config.yaml 中配置:

mcp_servers:
  sequential-thinking:
    command: uvx
    args: ["--from", "LseKit-SequentialThinking", "lseqthink"]
    env:
      DEEPSEEK_API_KEY: sk-xxx

或者通过 Streamable HTTP 连接:

mcp_servers:
  sequential-thinking:
    url: http://your-host:21000/mcp

Cherry Studio

MCP 设置 → 添加 → 命令填 uvx,参数填 --from LseKit-SequentialThinking lseqthink

OpenClaw

~/.openclaw/mcp.json 中配置:

{
  "mcpServers": {
    "sequential-thinking": {
      "command": "uvx",
      "args": ["--from", "LseKit-SequentialThinking", "lseqthink"]
    }
  }
}

Claude Code

claude mcp add seqthink -- uvx --from LseKit-SequentialThinking lseqthink

Cursor / VS Code (Cline / Continue)

.cursor/mcp.jsonmcp.json 中加入:

{
  "mcpServers": {
    "seqthink": {
      "command": "uvx",
      "args": ["--from", "LseKit-SequentialThinking", "lseqthink"],
      "env": { "DEEPSEEK_API_KEY": "sk-xxx" }
    }
  }
}

🧠 启用双重思维 — 让 Agent 真正「推理」,不只是「生成文字」

为什么需要两种推理模式

单次 LLM 调用天然是「下一个词预测」——它无法自我纠偏,也无法从多个角度审视同一个答案。

本项目的双 MoA(Mixture-of-Agents)推理引擎提供了两种互补的增强方式:一种快速发散找思路,一种深入打磨求精确。参考文献:arXiv 2502.00674arXiv 2406.04692

两种模式怎么工作

Self‑MoA — 并行发散,投票挑选

同一个模型、换几种「心态」(不同温度参数),同时回答同一个问题,然后用语义相似度给每条回答打分,投票选出最优的那条。

维度 说明
原理 同一 LLM,3 个不同温度各自独立完成完整推理链,对输出做语义相似度投票,选最优
论文支撑 arXiv 2502.00674:Self-MoA 在 AlpacaEval 2.0 上比 MoA 高 6.6%,多数场景优于混合多模型
调用方式 并行asyncio.gather),温服样本同时跑
收敛标准 语义相似度投票最高者胜出
Token 消耗 约 3 倍,但耗时 ≈ 单次调用(并行执行)
主要优势 保证输出质量下限稳定(同一模型水平一致),并行速度快,温度多样性带来广度覆盖
潜在短板 温度高时可能引入随机噪声,无法利用不同模型的互补能力

适合:发散找思路——写文案、头脑风暴、多角度评估。

Iterative‑MoA — 串行打磨,逐步逼近

两个模型轮流当「作者」和「审稿人」:A 写初版 → B 审查挑刺 → A 再优化 → B 再审查…直到收敛或达到最大轮数。

维度 说明
原理 A 生成初版 → B 以批判者角色审查给出修改版 → A 综合再优化 → 循环直到收敛
论文支撑 arXiv 2406.04692:分层 MoA 架构能用纯开源模型超越 GPT-4 Omni(AlpacaEval 65.1% vs 57.5%)
调用方式 串行,每轮依赖上一轮输出
收敛标准 连续两轮输出的语义相似度超过阈墀时提前终止
Token 消耗 轮数 × 每次约 2 倍,质量随轮数递增
主要优势 逐步精炼适合深度推理,混合不同模型可发挥各自特长(如一个擅长分析,一个擅长总结)
潜在短板 串行耗时随迭代次数线性增长,混合模型时弱模型可能拖累整体质量(论文证实混合模型在多数场景不如 Self-MoA)

适合:深入打磨细节——数学推理、代码审查、合规分析。

一张表分清

对比项 Self‑MoA Iterative‑MoA
调用模型数 1 个模型,多个温度副本 2 个模型(或同一模型不同配置)
调用方式 并行 串行
收敛方式 投票选最高分 连续两轮不再显著变化即停止
Token 代价 ~3 倍(一次性) 轮数 × 每次约 2 倍
思路风格 发散 → 收敛 迭代 → 逼近
什么时候选 想快速看到多个角度,让模型自选最优 想反复打磨一个结论,直到挑不出问题

不配 API 也能用 — 自动降级

没有配任何 LLM API Key、或者 LLM 调用连续失败时,系统自动降级为内置规则推理引擎

  • 基于模板 + 关键词匹配做问题分解、步骤生成、总结反思
  • 命中已缓存的相似思考模式时直接复现
  • 降级过程不出错,只写日志

不配 Key 也能得到一个有结构、有逻辑的思考框架,不会空白也不报错


🔧 配置

支持任何 OpenAI 兼容的 API(DeepSeek、OpenAI、Qwen、本地模型等)。

Config/.env(敏感,chmod 600)
├── DEEPSEEK_API_KEY     ← 模型1 API Key
└── DASHSCOPE_API_KEY    ← 模型2 API Key(双模型模式需要)

Ecosystem/ecosystem.config.js(非敏感)
├── ST_LLM_SELECTOR      ← 0/1/2/3
├── ST_LLM_MODE          ← self-moa / iterative
├── ST_MOA_ROUNDS        ← 1~20
├── ST_LLM_MODEL         ← 模型1 名称
├── ST_LLM2_MODEL        ← 模型2 名称
├── ST_LLM_API_BASE      ← API 端点
├── ST_HOST / ST_PORT    ← 监听地址和端口
└── ST_DB_PATH           ← SQLite 数据库路径

环境变量参考

变量 用途 参考值
DEEPSEEK_API_KEY 模型1 的 API Key 必填
DASHSCOPE_API_KEY 模型2 的 API Key 可选
ST_LLM_MODEL 模型1 名称 deepseek-v4-flash
ST_LLM2_MODEL 模型2 名称 qwen3.7-plus
ST_LLM_API_BASE OpenAI 兼容 API 端点 https://api.deepseek.com/v1
ST_LLM_SELECTOR 引擎选择(0=启发式 / 1-3=LLM) 3
ST_LLM_MODE MoA 模式 self-moa
ST_MOA_ROUNDS 采样/迭代轮数 3
ST_TRANSPORT 传输模式 streamable-http
ST_PORT 监听端口 由配置决定
ST_DB_PATH SQLite 数据库路径 ~/.seqthink/thoughts.db

🏗️ 技术架构

┌──────────────────────────────────────────────────────┐
│            fastmcp (MCP 协议层)                       │
│       Streamable HTTP · stdio 双传输                  │
├──────────────────────────────────────────────────────┤
│  HeuristicEngine          │     LLMEngine            │
│  (规则推理 · 零外部依赖)    │  (OpenAI 兼容 · 异步)    │
│  关键词提取 · Jaccard对比  │  Self-MoA · Iterative-MoA│
├──────────────────────────────────────────────────────┤
│                    Core 层                            │
│       Context · Models · Templates                   │
│           Utils · Logger · Helpers                   │
├──────────────────────────────────────────────────────┤
│         SQLite + FTS5 中文全文检索                    │
│        5 表 + FK 约束 + WAL 并发模式                  │
└──────────────────────────────────────────────────────┘

双引擎降级路径

启动 → 检测 DEEPSEEK_API_KEY
              │
     有 Key ──┼── 无 Key
              │        │
       LLMEngine    HeuristicEngine
       (MoA 推理)   (内置规则 · 零成本)
              │
      SELECTOR=3?
         │
    有 Key2? ── 无 Key2?
        │           │
   双模型 MoA    单模型 MoA

🎯 这些功能解决了什么

推理像是「黑箱」

LLM 能生成流畅的推理,但内部逻辑不一定可靠。内置的矛盾检测(detect_contradictions)、假设提取(extract_assumptions)、逻辑验证(validate_logic)让推理过程更透明。

中文的推理质量

大多数 Sequential Thinking 工具基于英文构建。本项目在分词(jieba)和全文检索(FTS5)两端对中文做了针对性优化。

思考不留痕迹

推理完就丢了,下次同样问题又要从头来。SQLite WAL 持久化让每个会话可搜索、可回放、可对比。

单一模型的盲区

单一模型容易陷入固定模式。Self-MoA 用不同温度采样多条推理路径后投票,Iterative-MoA 让两个模型反复审视对方输出——两种策略覆盖了「多角度验证」和「逐步逼近最优」两种互补需求。


🧰 26 个 MCP 工具

会话管理(8 个)

工具 作用
start_thinking 创建推理会话,返回复杂度评估和推荐模板
add_step 添加推理步骤
update_step 修改已有步骤
review_thinking 获取完整思维链(linear / tree / summary)
branch_thinking 从指定步骤创建替代推理分支
merge_insights 合并多个分支的洞察
complete_session 标记会话完成
delete_session 级联删除会话

质量控制(3 个)

工具 作用
validate_logic 检测逻辑谬误
evaluate_quality 5 维质量评估 + 交叉验证
detect_biases 检测 5 种认知偏见

管理(4 个)

工具 作用
export_session 导出 Markdown / JSON / Text
list_sessions 按状态和标签筛选
search_sessions FTS5 中文全文检索
get_metrics 日/周/月使用统计

增强(11 个)

工具 作用
compare_sessions 对比两个会话
suggest_next 推荐下一步方向
rewrite_query LLM 优化问题表述
visualize_thinking Mermaid 流程图
replay_thinking 逐步回放
auto_tag 自动生成标签
moa_analyze MoA 多轮投票分析
add_connection 建立步骤间因果关系
detect_contradictions 检测推理矛盾
extract_assumptions 提取隐含假设
update_tags 替换会话标签

Resources & Prompts

  • config://server — 服务配置
  • thinking://templates/catalog — 9 种思维模板目录
  • problem_breakdown — 问题分解
  • critical_analysis — 批判性分析
  • synthesis_prompt — 综合结论

🧪 测试

cd GitHubSrc
python3 -m pytest Tests/ -v    # 192 全量
模块 数量
Core Models / Templates / Context 48
Utils Logger 6
Handlers Helpers 24
HeuristicEngine 26
LLMEngine + MoA 36
Storage + FTS5 中文 52
总计 192

About

Multi-step sequential thinking MCP server powered by large language models — structured reasoning with self-MoA and iterative thinking modes

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors