Sequential Thinking Multi-Agent System

by FradSer
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports configuration through environment variables, allowing secure storage of API keys for external services like DeepSeek and Exa.

  • Enables robust data validation for thought steps in the sequential thinking process, ensuring input integrity before processing by the agent team.

  • Leverages the Python AI/ML ecosystem for implementing the Multi-Agent System architecture, supporting advanced sequential thinking capabilities.

シーケンシャル思考マルチエージェントシステム(MAS)

英語 |简体中文

このプロジェクトは、 Agnoフレームワークで構築され、 MCPを介して提供される**マルチエージェントシステム(MAS)**を用いて、高度なシーケンシャル思考プロセスを実装します。これは、より単純な状態追跡アプローチからの大きな進化であり、連携した専門エージェントを活用して、より深い分析と問題の分解を実現します。

概要

このサーバーは、複雑な問題解決のために設計された、洗練されたシーケンシャルsequentialthinkingツールを提供します。前バージョンとは異なり、このバージョンは真のマルチエージェントシステム(MAS)アーキテクチャを採用しており、以下の特徴を備えています。

  • コーディネーティング エージェント( coordinateモードのTeamオブジェクト) がワークフローを管理します。
  • 専門エージェント(プランナー、リサーチャー、アナライザー、クリティック、シンセサイザー) は、定義された役割と専門知識に基づいて特定のサブタスクを処理します。
  • 入力された思考は単に記録されるだけでなく、エージェント チームによって積極的に処理、分析、統合されます
  • システムは、前のステップの修正や代替パスの探索のための分岐など、複雑な思考パターンをサポートします。
  • Exa (Researcher エージェント経由) などの外部ツールとの統合により、動的な情報収集が可能になります。
  • 堅牢なPydantic検証により、思考ステップのデータの整合性が保証されます。
  • 詳細なログ記録では、エージェントのインタラクション (コーディネータによって処理) を含むプロセスが追跡されます。

目標は、専門化された役割の連携を活用して、単一のエージェントや単純な状態追跡で可能なものよりも、より高品質の分析とより繊細な思考プロセスを実現することです。

オリジナルバージョン(TypeScript)との主な違い

この Python/Agno 実装は、元の TypeScript バージョンからの根本的な変化を示しています。

特徴/側面Python/Agno バージョン (最新)TypeScriptバージョン(オリジナル)
建築マルチエージェント システム (MAS) ; エージェントのチームによるアクティブな処理。単一クラスの状態トラッカー。シンプルなログ記録/保存。
知能分散エージェント ロジック。専用のエージェントとコーディネーターに組み込まれています。外部 LLM のみ。内部情報なし。
処理アクティブな分析と統合。エージェントは思考に基づいて行動しますパッシブログ; 思考のみを記録します。
フレームワークAgno (MAS) + FastMCP (サーバー) ; 専用の MAS ライブラリを使用します。MCP SDK のみ
調整明示的なチーム調整ロジック( coordinateモードのTeam )。なし; 調整概念はありません。
検証Pydantic スキーマ検証; 堅牢なデータ検証。基本的な型チェック。信頼性は低くなります。
外部ツール統合型 (研究者経由の Exa) ; 研究タスクを実行できます。なし
ログ記録構造化された Python ログ (ファイル + コンソール) ; 構成可能。Chalk を使用したコンソール ログ記録、基本。
言語とエコシステムPython ; Python AI/ML エコシステムを活用します。TypeScript/Node.js

本質的には、このシステムは受動的な思考記録装置から、AI エージェントの共同チームによって駆動される能動的な思考処理装置へと進化しました。

仕組み(座標モード)

  1. **開始:**外部の LLM はsequential-thinking-starterプロンプトを使用して問題を定義し、プロセスを開始します。
  2. ツール呼び出し: LLM は、 ThoughtDataモデルに従って構造化された最初の (または後続の) 思考でsequentialthinkingツールを呼び出します。
  3. **検証とログ記録:**ツールは呼び出しを受け取り、Pydantic を使用して入力を検証し、受信した考えをログに記録し、 AppContextを介して履歴/ブランチの状態を更新します。
  4. **コーディネーターの呼び出し:**コアとなる思考コンテンツ (リビジョン/ブランチに関するコンテキストを含む) がSequentialThinkingTeamarunメソッドに渡されます。
  5. コーディネーターによる分析と委任: Team (コーディネーターとして機能) は入力された考えを分析し、それをサブタスクに分割し、これらのサブタスクを最も関連性の高い専門エージェント (分析タスクの場合はアナライザー、情報ニーズの場合はリサーチャーなど) に委任します。
  6. **専門家による実行:**委任されたエージェントは、指示、モデル、ツール ( ThinkingToolsExaToolsなど) を使用して、特定のサブタスクを実行します。
  7. **回答の収集:**スペシャリストは結果をコーディネーターに返します。
  8. **統合とガイダンス:**コーディネーターは、スペシャリストの回答を一つのまとまりのあるアウトプットに統合します。これには、スペシャリスト(特に批評家と分析者)の知見に基づいた修正や分岐の提案が含まれる場合があります。また、法学修士(LLM)が次の考えをまとめるためのガイダンスも提供します。
  9. **戻り値:**ツールは、コーディネーターの合成応答、ステータス、更新されたコンテキスト (ブランチ、履歴の長さ) を含む JSON 文字列を返します。
  10. **反復:**呼び出し元の LLM はコーディネーターの応答とガイダンスを使用して次のsequentialthinkingツール呼び出しを策定し、提案に応じて修正または分岐をトリガーする可能性があります。

トークン消費警告

⚠️トークン使用量の増加:マルチエージェントシステムアーキテクチャのため、このツールはシングルエージェントの代替手段や以前のTypeScriptバージョンよりも大幅に多くのトークンを消費します。各sequentialthinking呼び出しは、以下を呼び出します。* コーディネーターエージェント( Team自体)。* 複数のスペシャリストエージェント(コーディネーターの委任に応じて、プランナー、リサーチャー、アナライザー、クリティック、シンセサイザーのいずれか)。

この並列処理により、単一エージェントや状態追跡アプローチと比較して、トークン使用量が大幅に増加します(思考ステップごとに3~6倍以上になる可能性があります)。それに応じて予算と計画を立ててください。このツールは、トークン効率よりも分析の深さと品質を優先します。

前提条件

  • Python 3.10以上
  • 互換性のある LLM API へのアクセス( agno用に構成)。システムは現在以下をサポートしています。
    • Groq: GROQ_API_KEYが必要です。
    • DeepSeek: DEEPSEEK_API_KEYが必要です。
    • OpenRouter: OPENROUTER_API_KEYが必要です。
    • LLM_PROVIDER環境変数を使用して、必要なプロバイダーを構成します (デフォルトはdeepseek )。
  • Exa API キー(研究者エージェントの機能を使用する場合)
    • EXA_API_KEY環境変数。
  • uvパッケージ マネージャー (推奨) またはpip

MCP サーバー構成 (クライアント側)

このサーバーは、MCPの想定通り、stdio経由で通信する標準的な実行スクリプトとして実行されます。具体的な設定方法は、MCPクライアントの実装によって異なります。詳細は、クライアントのドキュメントを参照してください。

envセクションには、選択したLLM_PROVIDERの API キーを含める必要があります。

{ "mcpServers": { "mas-sequential-thinking": { "command": "uvx", "args": [ "mcp-server-mas-sequential-thinking" ], "env": { "LLM_PROVIDER": "deepseek", // Or "groq", "openrouter" // "GROQ_API_KEY": "your_groq_api_key", // Only if LLM_PROVIDER="groq" "DEEPSEEK_API_KEY": "your_deepseek_api_key", // Default provider // "OPENROUTER_API_KEY": "your_openrouter_api_key", // Only if LLM_PROVIDER="openrouter" "DEEPSEEK_BASE_URL": "your_base_url_if_needed", // Optional: If using a custom endpoint for DeepSeek "EXA_API_KEY": "your_exa_api_key" // Only if using Exa } } } }

インストールとセットアップ

  1. リポジトリをクローンします。
    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git cd mcp-server-mas-sequential-thinking
  2. **環境変数を設定する:**ルート ディレクトリに.envファイルを作成するか、変数をエクスポートします。
    # --- LLM Configuration --- # Select the LLM provider: "deepseek" (default), "groq", or "openrouter" LLM_PROVIDER="deepseek" # Provide the API key for the chosen provider: # GROQ_API_KEY="your_groq_api_key" DEEPSEEK_API_KEY="your_deepseek_api_key" # OPENROUTER_API_KEY="your_openrouter_api_key" # Optional: Base URL override (e.g., for custom DeepSeek endpoints) DEEPSEEK_BASE_URL="your_base_url_if_needed" # Optional: Specify different models for Team Coordinator and Specialist Agents # Defaults are set within the code based on the provider if these are not set. # Example for Groq: # GROQ_TEAM_MODEL_ID="llama3-70b-8192" # GROQ_AGENT_MODEL_ID="llama3-8b-8192" # Example for DeepSeek: # DEEPSEEK_TEAM_MODEL_ID="deepseek-chat" # Note: `deepseek-reasoner` is not recommended as it doesn't support function calling # DEEPSEEK_AGENT_MODEL_ID="deepseek-chat" # Recommended for specialists # Example for OpenRouter: # OPENROUTER_TEAM_MODEL_ID="deepseek/deepseek-r1" # OPENROUTER_AGENT_MODEL_ID="deepseek/deepseek-chat-v3-0324" # --- External Tools --- # Required ONLY if the Researcher agent is used and needs Exa EXA_API_KEY="your_exa_api_key"
    モデル選択に関する注意:
    • TEAM_MODEL_IDはコーディネーター( Teamオブジェクト自体)によって使用されます。この役割には、強力な推論、統合、および委任能力が必要です。より強力なモデル( deepseek-r1claude-3-opusgpt-4-turboなど)を使用すると、速度が遅くなったりコストがかかったりしても、多くの場合メリットがあります。
    • AGENT_MODEL_IDは、スペシャリストエージェント(プランナー、リサーチャーなど)によって使用されます。これらのエージェントは、より集中的なサブタスクを処理します。スペシャリストには、通常処理するタスクの複雑さや予算/パフォーマンス要件に応じて、より高速でコスト効率の高いモデル( deepseek-v3claude-3-sonnetllama3-70bなど)を選択することもできます。
    • main.pyで提供されるデフォルト(例:DeepSeek 使用時のエージェント用のdeepseek-reasoner )は出発点です。特定のユースケースに最適なバランスを見つけるために、実験することをお勧めします。
  3. 依存関係をインストールします:
    • uvの使用 (推奨):
      # Install uv if you don't have it: # curl -LsSf [https://astral.sh/uv/install.sh](https://astral.sh/uv/install.sh) | sh # source $HOME/.cargo/env # Or restart your shell uv pip install -r requirements.txt # Or if a pyproject.toml exists with dependencies: # uv pip install .
    • pipを使用する:
      pip install -r requirements.txt # Or if a pyproject.toml exists with dependencies: # pip install .

使用法

サーバー スクリプトを実行します (メイン スクリプトの名前がmain.pyまたはファイル構造に基づいた同様の名前であると仮定します)。

python your_main_script_name.py

サーバーが起動し、stdio 経由でリクエストをリッスンして、互換性のある MCP クライアント (特定の LLM やテスト フレームワークなど) でsequentialthinkingツールを使用できるようになります。

sequentialthinkingツールパラメータ

このツールは、 ThoughtData Pydantic モデルに一致する引数を必要とします。

# Simplified representation { "thought": str, # Content of the current thought/step "thoughtNumber": int, # Sequence number (>=1) "totalThoughts": int, # Estimated total steps (>=1, suggest >=5) "nextThoughtNeeded": bool, # Is another step required after this? "isRevision": bool = False, # Is this revising a previous thought? "revisesThought": Optional[int] = None, # If isRevision, which thought number? "branchFromThought": Optional[int] = None, # If branching, from which thought? "branchId": Optional[str] = None, # Unique ID for the branch "needsMoreThoughts": bool = False # Signal if estimate is too low before last step }

ツールの操作(概念例)

LLM はこのツールと反復的に対話します。

  1. **LLM:**問題に対してsequential-thinking-starterプロンプトを使用します。
  2. LLM: thoughtNumber: 1 、最初のthought (例: 「分析を計画する...」)、 totalThoughts推定、 nextThoughtNeeded: Trueを使用して、 sequentialthinkingツールを呼び出します。
  3. サーバー: MAS が思考を処理 -> コーディネーターが応答を統合し、ガイダンスを提供します (例: 「分析計画が完了しました。次に X の調査を提案します。まだ修正は推奨されていません。」)。
  4. LLM: coordinatorResponseを含む JSON 応答を受信します。
  5. LLM: coordinatorResponseに基づいて、次の考え (例: 「Exa を使用して X を研究する...」) を作成します。
  6. LLM: thoughtNumber: 2 、新しいthought 、更新されたtotalThoughts (必要な場合)、 nextThoughtNeeded: Truesequentialthinkingツールを呼び出します。
  7. サーバー: MAS プロセス -> コーディネーターが統合します (例: 「調査が完了しました。調査結果から、考え #1 の仮定に欠陥があることが示唆されました。推奨事項: 考え #1 を修正してください...」)。
  8. **LLM:**応答を受信し、推奨事項を確認します。
  9. **LLM:**修正思考を策定します。
  10. LLM: thoughtNumber: 3 、リビジョンthoughtisRevision: TruerevisesThought: 1nextThoughtNeeded: Truesequentialthinkingツールを呼び出します。
  11. ...など、必要に応じて分岐または拡張される可能性があります。

ツール応答形式

ツールは次の内容を含む JSON 文字列を返します。

{ "processedThoughtNumber": int, "estimatedTotalThoughts": int, "nextThoughtNeeded": bool, "coordinatorResponse": "Synthesized output from the agent team, including analysis, findings, and guidance for the next step...", "branches": ["list", "of", "branch", "ids"], "thoughtHistoryLength": int, "branchDetails": { "currentBranchId": "main | branchId", "branchOriginThought": null | int, "allBranches": {"main": count, "branchId": count, ...} }, "isRevision": bool, "revisesThought": null | int, "isBranch": bool, "status": "success | validation_error | failed", "error": "Error message if status is not success" // Optional }

ログ記録

  • ログは~/.sequential_thinking/logs/sequential_thinking.logに書き込まれます。
  • Python の標準loggingモジュールを使用します。
  • ローテーションファイル ハンドラー (10 MB 制限、5 つのバックアップ) とコンソール ハンドラー (INFO レベル) が含まれます。
  • ログには、タイムスタンプ、レベル、ロガー名、フォーマットされた思考表現などのメッセージが含まれます。

発達

(該当する場合は、開発環境の設定、テストの実行、リンティングなどの開発ガイドラインをここに追加します。)

  1. リポジトリをクローンします。
  2. 仮想環境をセットアップします。
  3. 開発用追加機能を含む可能性のある依存関係をインストールします。
    # Using uv uv pip install -e ".[dev]" # Using pip pip install -e ".[dev]"
  4. リンター/フォーマッタ/テストを実行します。

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

高度な MCP サーバーは、専門的な AI エージェント (プランナー、リサーチャー、アナライザー、クリティック、シンセサイザー) の調整されたチームを使用して洗練された順次思考を実装し、問題を深く分析して、高品質で構造化された推論を提供します。

  1. Overview
    1. Key Differences from Original Version (TypeScript)
      1. How it Works (Coordinate Mode)
        1. Token Consumption Warning
          1. Prerequisites
            1. MCP Server Configuration (Client-Side)
              1. Installation & Setup
                1. Usage
                  1. sequentialthinking Tool Parameters
                  2. Interacting with the Tool (Conceptual Example)
                  3. Tool Response Format
                2. Logging
                  1. Development
                    1. License
                      ID: 3i5xp9fksy