agents.rag.fusion.agent

RAG Fusion Agents.

from typing import Any Implementation of RAG Fusion with reciprocal rank fusion for enhanced retrieval. Based on the architecture pattern from rag-architectures-flows.md.

Classes

FusionResult

Results from reciprocal rank fusion.

MultiQueryRetrievalAgent

Agent that uses a callable node for multi-query retrieval - proper Pydantic approach.

QueryVariationsFusion

Enhanced query variations for fusion.

RAGFusionAgent

Complete RAG Fusion agent with query expansion and RRF.

ReciprocalRankFusionAgent

Agent that performs reciprocal rank fusion on multiple retrieval results.

Functions

create_multi_query_retrieval_callable(documents[, ...])

Create a callable function for multi-query retrieval that can be used as a graph node.

create_rag_fusion_agent(documents[, llm_config, ...])

Create a RAG Fusion agent.

get_rag_fusion_io_schema()

Get I/O schema for RAG Fusion agents.

Module Contents

class agents.rag.fusion.agent.FusionResult(/, **data)

Bases: pydantic.BaseModel

Results from reciprocal rank fusion.

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.fusion.agent.MultiQueryRetrievalAgent

Bases: haive.agents.base.agent.Agent

Agent that uses a callable node for multi-query retrieval - proper Pydantic approach.

build_graph()

Build multi-query retrieval graph with callable node using Pydantic fields.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

class agents.rag.fusion.agent.QueryVariationsFusion(/, **data)

Bases: pydantic.BaseModel

Enhanced query variations for fusion.

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.fusion.agent.RAGFusionAgent(config)

Bases: haive.agents.multi.base.SequentialAgent

Complete RAG Fusion agent with query expansion and RRF.

Init .

Parameters:

config (SequentialAgentConfig) – [TODO: Add description]

classmethod from_documents(documents, llm_config=None, embedding_model=None, num_variations=3, k_parameter=60.0, **kwargs)

Create RAG Fusion agent from documents.

Parameters:
  • documents (list[langchain_core.documents.Document]) – Documents to index

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

  • embedding_model (str | None) – Embedding model for retrieval

  • num_variations (int) – Number of query variations to generate

  • k_parameter (float) – RRF k parameter

  • **kwargs – Additional arguments

Returns:

RAGFusionAgent instance

class agents.rag.fusion.agent.ReciprocalRankFusionAgent

Bases: haive.agents.base.agent.Agent

Agent that performs reciprocal rank fusion on multiple retrieval results.

build_graph()

Build RRF fusion graph.

Return type:

haive.core.graph.state_graph.base_graph2.BaseGraph

agents.rag.fusion.agent.create_multi_query_retrieval_callable(documents, embedding_model=None, max_docs_per_query=10)

Create a callable function for multi-query retrieval that can be used as a graph node.

Parameters:
  • documents (list[langchain_core.documents.Document])

  • embedding_model (str | None)

  • max_docs_per_query (int)

agents.rag.fusion.agent.create_rag_fusion_agent(documents, llm_config=None, fusion_type='standard', **kwargs)

Create a RAG Fusion agent.

Parameters:
  • documents (list[langchain_core.documents.Document]) – Documents for retrieval

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

  • fusion_type (str) – Type of fusion (“standard”, “aggressive”, “conservative”)

  • **kwargs – Additional arguments

Returns:

Configured RAG Fusion agent

Return type:

RAGFusionAgent

agents.rag.fusion.agent.get_rag_fusion_io_schema()

Get I/O schema for RAG Fusion agents.

Return type:

dict[str, list[str]]