haive.agents.supervisor.utils.routing ===================================== .. py:module:: haive.agents.supervisor.utils.routing .. autoapi-nested-parse:: Dynamic Routing Engine for Haive Supervisor System. Handles intelligent routing decisions using DynamicChoiceModel and LLM-based analysis. Provides context-aware agent selection with validation and fallback mechanisms. Classes ------- .. autoapisummary:: haive.agents.supervisor.utils.routing.BaseRoutingStrategy haive.agents.supervisor.utils.routing.DynamicRoutingEngine haive.agents.supervisor.utils.routing.LLMRoutingStrategy haive.agents.supervisor.utils.routing.RoutingContext haive.agents.supervisor.utils.routing.RoutingDecision haive.agents.supervisor.utils.routing.RuleBasedRoutingStrategy haive.agents.supervisor.utils.routing.TaskClassifier Module Contents --------------- .. py:class:: BaseRoutingStrategy Bases: :py:obj:`abc.ABC` Abstract base for routing strategies. .. py:method:: make_routing_decision(context, available_agents, agent_capabilities, config = None) :abstractmethod: :async: Make routing decision based on context. .. py:class:: DynamicRoutingEngine(routing_model, routing_engine = None, routing_strategy = None, enable_context_analysis = True) Main routing engine that orchestrates routing decisions. Handles context extraction, strategy selection, and routing execution with comprehensive error handling and fallback mechanisms. Initialize routing engine. :param routing_model: DynamicChoiceModel for available choices :param routing_engine: Engine for LLM-based routing (optional) :param routing_strategy: Custom routing strategy (optional) :param enable_context_analysis: Whether to perform context analysis .. py:method:: print_routing_stats() Print routing engine statistics. .. py:method:: route_request(state, agent_capabilities, config = None) :async: Main routing method. :param state: Current graph state :param agent_capabilities: Dict of agent capabilities :param config: Runnable configuration :returns: Command object with routing decision .. py:class:: LLMRoutingStrategy(routing_engine, routing_model) Bases: :py:obj:`BaseRoutingStrategy` LLM-based routing strategy using structured output. Init . :param routing_engine: [TODO: Add description] :param routing_model: [TODO: Add description] .. py:method:: make_routing_decision(context, available_agents, agent_capabilities, config = None) :async: Make LLM-based routing decision. .. py:class:: RoutingContext(/, **data) Bases: :py:obj:`pydantic.BaseModel` Context extracted from state for routing decisions. Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name. .. py:class:: RoutingDecision(/, **data) Bases: :py:obj:`pydantic.BaseModel` Model for routing decisions. Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name. .. py:class:: RuleBasedRoutingStrategy(routing_rules) Bases: :py:obj:`BaseRoutingStrategy` Rule-based routing strategy for deterministic routing. Initialize with routing rules. :param routing_rules: Dict mapping keywords to agent names .. py:method:: make_routing_decision(context, available_agents, agent_capabilities, config = None) :async: Make rule-based routing decision. .. py:class:: TaskClassifier Classifies tasks for better routing decisions. .. py:method:: classify_task(message) :classmethod: Classify task based on message content. :param message: Message to classify :returns: List of detected task types .. py:method:: estimate_complexity(message, conversation_length) :classmethod: Estimate task complexity. :param message: Message content :param conversation_length: Length of conversation :returns: Simple/Medium/Complex :rtype: Complexity level