Skip to main content

让 Agent 真正「推理」——不只是「生成文字」。双引擎 MoA · OpenAI 兼容 · 中文 FTS5 · 26 MCP 工具

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lsekit_sequentialthinking-1.2.1-py3-none-any.whl (76.5 kB view details)

Uploaded Python 3

File details

Details for the file lsekit_sequentialthinking-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lsekit_sequentialthinking-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d15a0e1d0fbf075bc90e66631b37224568d0d84d65c0c7dcf0ef0919c04abf9
MD5 2bea736e6792246f04d3a390a98d1fe2
BLAKE2b-256 67f468314066f2644e324dff45c975b64396371c43a129ccc48df6ad511934ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page