hybrid_reasoning
Solve complex problems by combining multiple reasoning methods for step-by-step analysis. Input a query with current reasoning state to generate the next logical step.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The problem or query to reason about | |
| thought | Yes | Current reasoning step | |
| thoughtNumber | Yes | Current step number | |
| totalThoughts | Yes | Total expected steps | |
| nextThoughtNeeded | Yes | Whether another step is needed | |
| numSimulations | No | Number of MCTS simulations to run |
Implementation Reference
- src/tools/reasoning-tools.ts:199-249 (handler)The async handler function that executes the hybrid_reasoning tool. It validates inputs, simulates hybrid transformer + MCTS reasoning by generating the next thought step, formats a JSON response with the reasoning state, and handles errors.async ({ prompt, thought, thoughtNumber, totalThoughts, nextThoughtNeeded, numSimulations }) => { try { // Validate parameters if (!prompt) { throw new ValidationError("Prompt is required"); } if (!thought) { throw new ValidationError("Current thought is required"); } // In a real implementation, this would connect to a hybrid transformer+MCTS system // For now, we'll simulate the reasoning process // Simulated next thought generation based on hybrid approach let nextThought = ""; if (nextThoughtNeeded) { // Logic for generating next thought would go here // For now, we'll return a simple placeholder nextThought = `Hybrid Reasoning (Step ${thoughtNumber + 1}/${totalThoughts}): ` + `Combining transformer analysis with ${numSimulations} MCTS simulations on "${thought.slice(0, 50)}...", ` + `the enhanced analysis suggests... ` + `[This would be actual Hybrid Transformer+MCTS reasoning content]`; } return { content: [ { type: "text", text: JSON.stringify({ strategy: "hybrid_transformer_mcts", originalPrompt: prompt, currentThought: thought, thoughtNumber: thoughtNumber, totalThoughts: totalThoughts, nextThought: nextThought, complete: !nextThoughtNeeded || thoughtNumber >= totalThoughts }, null, 2) } ] }; } catch (error) { if (error instanceof ValidationError) { throw error; } else { throw new ReasoningError(`Hybrid reasoning failed: ${error instanceof Error ? error.message : String(error)}`); } } } );
- src/tools/reasoning-tools.ts:192-198 (schema)Zod input schema defining the parameters for the hybrid_reasoning tool, including prompt, current thought state, step counters, and MCTS simulation count.prompt: z.string().describe("The problem or query to reason about"), thought: z.string().describe("Current reasoning step"), thoughtNumber: z.number().int().min(1).describe("Current step number"), totalThoughts: z.number().int().min(1).describe("Total expected steps"), nextThoughtNeeded: z.boolean().describe("Whether another step is needed"), numSimulations: z.number().int().min(1).max(150).default(50).describe("Number of MCTS simulations to run") },
- src/tools/reasoning-tools.ts:190-249 (registration)Registration of the hybrid_reasoning tool on the MCP server within the registerReasoningTools function, including name, schema, and handler."hybrid_reasoning", { prompt: z.string().describe("The problem or query to reason about"), thought: z.string().describe("Current reasoning step"), thoughtNumber: z.number().int().min(1).describe("Current step number"), totalThoughts: z.number().int().min(1).describe("Total expected steps"), nextThoughtNeeded: z.boolean().describe("Whether another step is needed"), numSimulations: z.number().int().min(1).max(150).default(50).describe("Number of MCTS simulations to run") }, async ({ prompt, thought, thoughtNumber, totalThoughts, nextThoughtNeeded, numSimulations }) => { try { // Validate parameters if (!prompt) { throw new ValidationError("Prompt is required"); } if (!thought) { throw new ValidationError("Current thought is required"); } // In a real implementation, this would connect to a hybrid transformer+MCTS system // For now, we'll simulate the reasoning process // Simulated next thought generation based on hybrid approach let nextThought = ""; if (nextThoughtNeeded) { // Logic for generating next thought would go here // For now, we'll return a simple placeholder nextThought = `Hybrid Reasoning (Step ${thoughtNumber + 1}/${totalThoughts}): ` + `Combining transformer analysis with ${numSimulations} MCTS simulations on "${thought.slice(0, 50)}...", ` + `the enhanced analysis suggests... ` + `[This would be actual Hybrid Transformer+MCTS reasoning content]`; } return { content: [ { type: "text", text: JSON.stringify({ strategy: "hybrid_transformer_mcts", originalPrompt: prompt, currentThought: thought, thoughtNumber: thoughtNumber, totalThoughts: totalThoughts, nextThought: nextThought, complete: !nextThoughtNeeded || thoughtNumber >= totalThoughts }, null, 2) } ] }; } catch (error) { if (error instanceof ValidationError) { throw error; } else { throw new ReasoningError(`Hybrid reasoning failed: ${error instanceof Error ? error.message : String(error)}`); } } } );