Skip to main content
Glama

Sequential Thinking Multi-Agent System

by FradSer

Sistema multiagente de pensamiento secuencial (MAS)

Inglés | Chino tradicional

Este proyecto implementa un proceso avanzado de pensamiento secuencial mediante un Sistema Multiagente (MAS) desarrollado con el framework Agno y gestionado mediante MCP . Representa una evolución significativa respecto a los enfoques más sencillos de seguimiento de estados, al aprovechar agentes coordinados y especializados para un análisis más profundo y la descomposición de problemas.

Descripción general

Este servidor proporciona una sofisticada herramienta sequentialthinking diseñada para la resolución de problemas complejos. A diferencia de su predecesor , esta versión utiliza una verdadera arquitectura de Sistema Multiagente (MAS) donde:

  • Un agente coordinador (el objeto Team en modo coordinate ) administra el flujo de trabajo.
  • Los agentes especializados (planificador, investigador, analizador, crítico, sintetizador) manejan subtareas específicas según sus roles y experiencia definidos.
  • El equipo de agentes procesa, analiza y sintetiza activamente los pensamientos entrantes, no solo los registra.
  • El sistema admite patrones de pensamiento complejos, incluidas revisiones de pasos anteriores y ramificaciones para explorar caminos alternativos.
  • La integración con herramientas externas como Exa (a través del agente Researcher) permite la recopilación de información dinámica.
  • La sólida validación de Pydantic garantiza la integridad de los datos durante todos los pasos del proceso.
  • El registro detallado rastrea el proceso, incluidas las interacciones de los agentes (gestionadas por el coordinador).

El objetivo es lograr una mayor calidad de análisis y un proceso de pensamiento más matizado que el que es posible con un solo agente o un simple seguimiento de estados aprovechando el poder de roles especializados que trabajan en colaboración.

Diferencias clave con respecto a la versión original (TypeScript)

Esta implementación de Python/Agno marca un cambio fundamental con respecto a la versión original de TypeScript:

Característica/AspectoVersión de Python/Agno (actual)Versión de TypeScript (original)
ArquitecturaSistema Multiagente (MAS) ; Procesamiento activo por un equipo de agentes.Rastreador de estado de clase única ; registro y almacenamiento sencillos.
InteligenciaLógica de agente distribuido ; integrada en agentes especializados y coordinador.Solo LLM externo ; sin inteligencia interna.
TratamientoAnálisis y síntesis activa ; los agentes actúan sobre el pensamiento.Registro pasivo ; simplemente registra el pensamiento.
MarcosAgno (MAS) + FastMCP (Servidor) ; Utiliza una biblioteca MAS dedicada.Sólo SDK de MCP .
CoordinaciónLógica explícita de coordinación de equipo ( Team en modo coordinate ).Ninguno ; No existe concepto de coordinación.
ValidaciónValidación de esquemas de Pydantic ; Validación de datos robusta.Comprobaciones de tipo básicas : menos fiables.
Herramientas externasIntegrado (Exa vía Investigador) ; Puede realizar tareas de investigación.Ninguno .
Explotación florestalRegistro estructurado de Python (archivo + consola) ; configurable.Registro de consola con Chalk ; Básico.
Lenguaje y ecosistemaPython ; Aprovecha el ecosistema AI/ML de Python.TipoScript/Node.js .

En esencia, el sistema evolucionó desde un registrador de pensamientos pasivo a un procesador de pensamientos activo impulsado por un equipo colaborativo de agentes de IA.

Cómo funciona (modo de coordenadas)

  1. Iniciación: un LLM externo utiliza el mensaje sequential-thinking-starter para definir el problema e iniciar el proceso.
  2. Llamada de herramienta: El LLM llama a la herramienta sequentialthinking con el primer pensamiento (o subsiguiente), estructurado de acuerdo con el modelo Pydantic ThoughtData .
  3. Validación y registro: la herramienta recibe la llamada, valida la entrada usando Pydantic, registra el pensamiento entrante y actualiza el historial/estado de la rama a través de AppContext .
  4. Invocación del coordinador: el contenido del pensamiento central (junto con el contexto sobre las revisiones/ramas) se pasa al método arun del SequentialThinkingTeam .
  5. Análisis y delegación del coordinador: el Team (que actúa como coordinador) analiza el pensamiento de entrada, lo divide en subtareas y delega estas subtareas a los agentes especializados más relevantes (por ejemplo, el analizador para las tareas de análisis, el investigador para las necesidades de información).
  6. Ejecución especializada: los agentes delegados ejecutan sus subtareas específicas utilizando sus instrucciones, modelos y herramientas (como ThinkingTools o ExaTools ).
  7. Recopilación de respuestas: Los especialistas devuelven sus resultados al Coordinador.
  8. Síntesis y orientación: El coordinador sintetiza las respuestas de los especialistas en un resultado único y coherente. Este resultado puede incluir recomendaciones de revisión o ramificación basadas en las conclusiones de los especialistas (especialmente del crítico y el analista). También proporciona orientación al LLM para formular la siguiente idea.
  9. Valor de retorno: la herramienta devuelve una cadena JSON que contiene la respuesta sintetizada del Coordinador, el estado y el contexto actualizado (ramas, longitud del historial).
  10. Iteración: el LLM que realiza la llamada utiliza la respuesta y la guía del Coordinador para formular la siguiente llamada a la herramienta de sequentialthinking , lo que potencialmente desencadena revisiones o ramas según lo sugerido.

Advertencia sobre el consumo de tokens

Alto consumo de tokens: Gracias a la arquitectura del sistema multiagente, esta herramienta consume muchos más tokens que las alternativas de un solo agente o la versión anterior de TypeScript. Cada llamada sequentialthinking invoca:

  • El agente Coordinador (el Team en sí).
  • Múltiples agentes especialistas (potencialmente Planificador, Investigador, Analizador, Crítico, Sintetizador, dependiendo de la delegación del Coordinador).

Este procesamiento paralelo genera un uso de tokens considerablemente mayor (potencialmente de 3 a 6 veces o más por paso de pensamiento) en comparación con los enfoques de agente único o de seguimiento de estado. Planifique y calcule el presupuesto en consecuencia. Esta herramienta prioriza la profundidad y la calidad del análisis sobre la eficiencia de los tokens.

Prerrequisitos

  • Python 3.10+
  • Acceso a una API LLM compatible (configurada para agno ). El sistema actualmente admite:
    • Groq: Requiere GROQ_API_KEY .
    • DeepSeek: requiere DEEPSEEK_API_KEY .
    • OpenRouter: requiere OPENROUTER_API_KEY .
    • Configure el proveedor deseado utilizando la variable de entorno LLM_PROVIDER (predeterminada en deepseek ).
  • Clave API de Exa (requerida solo si se utilizan las capacidades del agente Investigador)
    • Se establece a través de la variable de entorno EXA_API_KEY .
  • Gestor de paquetes uv (recomendado) o pip .

Configuración del servidor MCP (lado del cliente)

Este servidor se ejecuta como un script ejecutable estándar que se comunica mediante stdio, como lo espera MCP. El método de configuración exacto depende de la implementación específica de su cliente MCP. Consulte la documentación de su cliente para obtener más información sobre la integración de servidores de herramientas externos.

La sección env dentro de la configuración de su cliente MCP debe incluir la clave API para el LLM_PROVIDER elegido.

{ "mcpServers": { "mas-sequential-thinking": { "command": "uvx", // Or "python", "path/to/venv/bin/python" etc. "args": [ "mcp-server-mas-sequential-thinking" // Or the path to your main script, e.g., "main.py" ], "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 } } } }

Instalación y configuración

Instalación mediante herrería

Para instalar automáticamente el sistema multiagente de pensamiento secuencial para Claude Desktop a través de Smithery :

npx -y @smithery/cli install @FradSer/mcp-server-mas-sequential-thinking --client claude

Instalación manual

  1. Clonar el repositorio:
    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git cd mcp-server-mas-sequential-thinking
  2. Establecer variables de entorno: cree un archivo .env en el directorio raíz del proyecto o exporte las variables directamente a su entorno:
    # --- 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" # Example, adjust as needed # OPENROUTER_AGENT_MODEL_ID="deepseek/deepseek-chat" # Example, adjust as needed # --- External Tools --- # Required ONLY if the Researcher agent is used and needs Exa EXA_API_KEY="your_exa_api_key"
    Nota sobre la selección del modelo:
    • El TEAM_MODEL_ID lo utiliza el Coordinador (objeto Team ). Este rol se beneficia de sólidas capacidades de razonamiento, síntesis y delegación. Considere usar un modelo más potente (p. ej., deepseek-chat , claude-3-opus , gpt-4-turbo ), para equilibrar la capacidad con el costo y la velocidad.
    • El AGENT_MODEL_ID lo utilizan los agentes especializados (Planificador, Investigador, etc.). Estos gestionan subtareas específicas. Un modelo más rápido o rentable (p. ej., deepseek-chat , claude-3-sonnet , llama3-8b ) podría ser adecuado, dependiendo de la complejidad de la tarea y las necesidades de presupuesto y rendimiento.
    • Si estas variables de entorno no están configuradas, se proporcionan valores predeterminados en el código (p. ej., en main.py ). Se recomienda experimentar para encontrar el equilibrio óptimo para su caso de uso.
  3. Instalar dependencias: es muy recomendable utilizar un entorno virtual.
    • Uso de uv (recomendado):
      # Install uv if you don't have it: # curl -LsSf https://astral.sh/uv/install.sh | sh # source $HOME/.cargo/env # Or restart your shell # Create and activate a virtual environment (optional but recommended) python -m venv .venv source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate` # Install dependencies uv pip install -r requirements.txt # Or if a pyproject.toml exists with dependencies defined: # uv pip install .
    • Usando pip :
      # Create and activate a virtual environment (optional but recommended) python -m venv .venv source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate` # Install dependencies pip install -r requirements.txt # Or if a pyproject.toml exists with dependencies defined: # pip install .

Uso

Asegúrese de que las variables de entorno estén configuradas y que el entorno virtual (si se utiliza) esté activo.

Ejecute el servidor. Elija uno de los siguientes métodos:

  1. Uso de uv run (recomendado):
    uv --directory /path/to/mcp-server-mas-sequential-thinking run mcp-server-mas-sequential-thinking
  2. Usando Python directamente:
    python main.py

El servidor se iniciará y escuchará solicitudes a través de stdio, lo que hará que la herramienta sequentialthinking esté disponible para los clientes MCP compatibles configurados para usarla.

Parámetros de la herramienta sequentialthinking

La herramienta espera argumentos que coincidan con el modelo Pydantic ThoughtData :

# Simplified representation from src/models.py class ThoughtData(BaseModel): 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 new branch being created needsMoreThoughts: bool = False # Signal if estimate is too low before last step

Interactuando con la herramienta (Ejemplo conceptual)

Un LLM interactuaría con esta herramienta de forma iterativa:

  1. LLM: utiliza un mensaje inicial (como sequential-thinking-starter ) con la definición del problema.
  2. LLM: Llama a la herramienta sequentialthinking con thoughtNumber: 1 , el thought inicial (por ejemplo, "Planifique el análisis..."), un totalThoughts estimado de Thoughts y nextThoughtNeeded: True .
  3. Servidor: El MAS procesa la idea. El Coordinador sintetiza las respuestas de los especialistas y ofrece orientación (p. ej., "Plan de análisis completo. Sugiero investigar X a continuación. No se recomiendan revisiones todavía").
  4. LLM: recibe la respuesta JSON que contiene coordinatorResponse .
  5. LLM: Formula el siguiente pensamiento basándose en la coordinatorResponse (por ejemplo, "Investiga X usando las herramientas disponibles...").
  6. LLM: Llama a la herramienta sequentialthinking con thoughtNumber: 2 , el nuevo thought , potencialmente actualizado totalThoughts , nextThoughtNeeded: True .
  7. Servidor: Procesos MAS. El Coordinador sintetiza (p. ej., "Investigación completa. Los hallazgos sugieren una falla en la suposición de la idea n.° 1. RECOMENDACIÓN: Revisar la idea n.° 1...").
  8. LLM: Recibe la respuesta, toma nota de la recomendación.
  9. LLM: Formula un pensamiento de revisión.
  10. LLM: Llama a la herramienta sequentialthinking con thoughtNumber: 3 , el thought de revisión, isRevision: True , revisesThought: 1 , nextThoughtNeeded: True .
  11. ...y así sucesivamente, ramificando o ampliando potencialmente el proceso según sea necesario.

Formato de respuesta de la herramienta

La herramienta devuelve una cadena JSON que contiene:

{ "processedThoughtNumber": int, // The thought number that was just processed "estimatedTotalThoughts": int, // The current estimate of total thoughts "nextThoughtNeeded": bool, // Whether the process indicates more steps are needed "coordinatorResponse": "...", // Synthesized output from the agent team, including analysis, findings, and guidance for the next step. "branches": ["main", "branch-id-1"], // List of active branch IDs "thoughtHistoryLength": int, // Total number of thoughts processed so far (across all branches) "branchDetails": { "currentBranchId": "main", // The ID of the branch the processed thought belongs to "branchOriginThought": null | int, // The thought number where the current branch diverged (null for 'main') "allBranches": { // Count of thoughts in each active branch "main": 5, "branch-id-1": 2 } }, "isRevision": bool, // Was the processed thought a revision? "revisesThought": null | int, // Which thought number was revised (if isRevision is true) "isBranch": bool, // Did this thought start a new branch? "status": "success | validation_error | failed", // Outcome status "error": null | "Error message..." // Error details if status is not 'success' }

Explotación florestal

  • Los registros se escriben en ~/.sequential_thinking/logs/sequential_thinking.log de forma predeterminada. (La configuración se puede ajustar en el código de configuración del registro).
  • Utiliza el módulo logging estándar de Python.
  • Incluye un controlador de archivos rotativo (por ejemplo, límite de 10 MB, 5 copias de seguridad) y un controlador de consola (normalmente de nivel INFO).
  • Los registros incluyen marcas de tiempo, niveles, nombres de registradores y mensajes, incluidas representaciones estructuradas de los pensamientos que se están procesando.

Desarrollo

  1. Clonar el repositorio: (Como en la Instalación)
    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git cd mcp-server-mas-sequential-thinking
  2. Configurar entorno virtual: (recomendado)
    python -m venv .venv source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
  3. Instalar dependencias (incluido dev): asegúrese de que su requirements-dev.txt o pyproject.toml especifique herramientas de desarrollo (como pytest , ruff , black , mypy ).
    # Using uv uv pip install -r requirements.txt uv pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: uv pip install -e ".[dev]" # Using pip pip install -r requirements.txt pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: pip install -e ".[dev]"
  4. Ejecutar comprobaciones: ejecuta linters, formateadores y pruebas (adapta los comandos según la configuración de tu proyecto).
    # Example commands (replace with actual commands used in the project) ruff check . --fix black . mypy . pytest
  5. Contribución: (Considere agregar pautas de contribución: estrategia de ramificación, proceso de solicitud de extracción, estilo de código).

Licencia

Instituto Tecnológico de Massachusetts (MIT)

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

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.

Un servidor MCP avanzado que implementa un pensamiento secuencial sofisticado utilizando un equipo coordinado de agentes de IA especializados (planificador, investigador, analizador, crítico, sintetizador) para analizar profundamente los problemas y proporcionar un razonamiento estructurado de alta calidad.

  1. Descripción general
    1. Diferencias clave con respecto a la versión original (TypeScript)
      1. Cómo funciona (modo de coordenadas)
        1. Advertencia sobre el consumo de tokens
          1. Prerrequisitos
            1. Configuración del servidor MCP (lado del cliente)
              1. Instalación y configuración
                1. Instalación mediante herrería
                2. Instalación manual
              2. Uso
                1. Parámetros de la herramienta sequentialthinking
                2. Interactuando con la herramienta (Ejemplo conceptual)
                3. Formato de respuesta de la herramienta
              3. Explotación florestal
                1. Desarrollo
                  1. Licencia

                    Related MCP Servers

                    • A
                      security
                      A
                      license
                      A
                      quality
                      An adaptation of the MCP Sequential Thinking Server designed to guide tool usage in problem-solving. This server helps break down complex problems into manageable steps and provides recommendations for which MCP tools would be most effective at each stage.
                      Last updated -
                      1
                      602
                      179
                      TypeScript
                      MIT License
                    • -
                      security
                      A
                      license
                      -
                      quality
                      An MCP server that implements the 'think' tool, providing Claude with a dedicated space for structured thinking during complex problem-solving tasks to improve reasoning capabilities.
                      Last updated -
                      48
                      Python
                      MIT License
                      • Linux
                      • Apple
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A minimal MCP Server that provides Claude AI models with the 'think' tool capability, enabling better performance on complex reasoning tasks by allowing the model to pause during response generation for additional thinking steps.
                      Last updated -
                      525
                      1
                      TypeScript
                      MIT License
                      • Apple
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A sophisticated MCP server that provides a multi-dimensional, adaptive reasoning framework for AI assistants, replacing linear reasoning with a graph-based architecture for more nuanced cognitive processes.
                      Last updated -
                      1
                      174
                      13
                      TypeScript
                      MIT License
                      • Apple
                      • Linux

                    View all related MCP servers

                    MCP directory API

                    We provide all the information about MCP servers via our MCP API.

                    curl -X GET 'https://glama.ai/api/mcp/v1/servers/FradSer/mcp-server-mas-sequential-thinking'

                    If you have feedback or need assistance with the MCP directory API, please join our Discord server