agents.rag.query_decomposition.agent

Query Decomposition Agents.

Modular agents for breaking down complex queries into manageable sub-queries. Can be plugged into any workflow with compatible I/O schemas.

Classes

AdaptiveQueryDecomposerAgent

Adaptive query decomposition that selects best strategy.

ContextualDecomposition

Context-aware query decomposition.

ContextualQueryDecomposerAgent

Context-aware query decomposition agent.

HierarchicalDecomposition

Hierarchical query decomposition with levels.

HierarchicalQueryDecomposerAgent

Hierarchical query decomposition agent.

QueryDecomposerAgent

Basic query decomposition agent.

QueryDecomposition

Complete query decomposition result.

QueryType

Types of queries for decomposition strategy.

SubQuery

Individual sub-query in decomposition.

Functions

create_query_decomposer([decomposer_type, llm_config])

Create a query decomposer agent.

get_query_decomposer_io_schema()

Get I/O schema for query decomposers for compatibility checking.

Module Contents

class agents.rag.query_decomposition.agent.AdaptiveQueryDecomposerAgent(llm_config=None, enable_fallback=True, **kwargs)

Bases: haive.agents.base.agent.Agent

Adaptive query decomposition that selects best strategy.

Initialize adaptive query decomposer.

Parameters:
  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • enable_fallback (bool) – Whether to fallback to simpler decomposition if needed

  • **kwargs – Additional agent arguments

build_graph()

Build adaptive decomposition graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class agents.rag.query_decomposition.agent.ContextualDecomposition(/, **data)

Bases: pydantic.BaseModel

Context-aware query decomposition.

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.

Parameters:

data (Any)

class agents.rag.query_decomposition.agent.ContextualQueryDecomposerAgent(llm_config=None, context_threshold=0.7, **kwargs)

Bases: haive.agents.base.agent.Agent

Context-aware query decomposition agent.

Initialize contextual query decomposer.

Parameters:
  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • context_threshold (float) – Threshold for context sufficiency

  • **kwargs – Additional agent arguments

build_graph()

Build contextual decomposition graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class agents.rag.query_decomposition.agent.HierarchicalDecomposition(/, **data)

Bases: pydantic.BaseModel

Hierarchical query decomposition with levels.

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.

Parameters:

data (Any)

class agents.rag.query_decomposition.agent.HierarchicalQueryDecomposerAgent(llm_config=None, max_levels=3, **kwargs)

Bases: haive.agents.base.agent.Agent

Hierarchical query decomposition agent.

Initialize hierarchical query decomposer.

Parameters:
  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • max_levels (int) – Maximum hierarchy levels

  • **kwargs – Additional agent arguments

build_graph()

Build hierarchical decomposition graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class agents.rag.query_decomposition.agent.QueryDecomposerAgent(llm_config=None, max_sub_queries=5, **kwargs)

Bases: haive.agents.base.agent.Agent

Basic query decomposition agent.

Initialize query decomposer.

Parameters:
  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • max_sub_queries (int) – Maximum number of sub-queries to generate

  • **kwargs – Additional agent arguments

build_graph()

Build query decomposition graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class agents.rag.query_decomposition.agent.QueryDecomposition(/, **data)

Bases: pydantic.BaseModel

Complete query decomposition result.

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.

Parameters:

data (Any)

class agents.rag.query_decomposition.agent.QueryType

Bases: str, enum.Enum

Types of queries for decomposition strategy.

Initialize self. See help(type(self)) for accurate signature.

class agents.rag.query_decomposition.agent.SubQuery(/, **data)

Bases: pydantic.BaseModel

Individual sub-query in decomposition.

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.

Parameters:

data (Any)

agents.rag.query_decomposition.agent.create_query_decomposer(decomposer_type='basic', llm_config=None, **kwargs)

Create a query decomposer agent.

Parameters:
  • decomposer_type (Literal['basic', 'hierarchical', 'contextual', 'adaptive']) – Type of decomposer to create

  • llm_config (haive.core.models.llm.base.LLMConfig | None) – LLM configuration

  • **kwargs – Additional arguments

Returns:

Configured query decomposer agent

Return type:

haive.agents.base.agent.Agent

agents.rag.query_decomposition.agent.get_query_decomposer_io_schema()

Get I/O schema for query decomposers for compatibility checking.

Return type:

dict[str, list[str]]