motleycrew.applications.research_agent.question_generator

Functions

create_question_generator_langchain_tool(...)

Classes

QuestionGeneratorTool(query_tool, graph[, ...])

Gets a question as input Retrieves relevant docs (llama index basic RAG) (Retrieves existing questions from graph (to avoid overlap)) Generates extra questions (research agent prompt)

QuestionGeneratorToolInput(*, question)

Input for the Question Generator Tool.

class motleycrew.applications.research_agent.question_generator.QuestionGeneratorTool(query_tool: MotleyTool, graph: MotleyGraphStore, max_questions: int = 3, llm: BaseLanguageModel | None = None, prompt: str | BasePromptTemplate = None)

Bases: MotleyTool

Gets a question as input Retrieves relevant docs (llama index basic RAG) (Retrieves existing questions from graph (to avoid overlap)) Generates extra questions (research agent prompt)

Adds questions as children of current q by calling Q insertion tool once exits

__init__(query_tool: MotleyTool, graph: MotleyGraphStore, max_questions: int = 3, llm: BaseLanguageModel | None = None, prompt: str | BasePromptTemplate = None)

Initialize the MotleyTool.

Parameters:
  • name – Name of the tool (required if tool is None).

  • description – Description of the tool (required if tool is None).

  • args_schema – Schema of the tool arguments (required if tool is None).

  • return_direct – If True, the tool’s output will be returned directly to the user.

  • handle_exceptions

    Whether to handle exceptions (return their message as output).

    If True, the tool will return any raised exception’s message as its output.

    If a list of exceptions is provided, only these exceptions will be handled.

    If False, the tool will raise the exception.

    If return_direct is True, the tool will always handle InvalidOutput exceptions, as the tool is considered an output handler.

  • retry_config – Configuration for retry behavior. If None, exceptions will not be retried.

  • tool – Langchain BaseTool to wrap. Usually not needed, as the tool is created from the run method.

class motleycrew.applications.research_agent.question_generator.QuestionGeneratorToolInput(*, question: Question)

Bases: BaseModel

Input for the Question Generator Tool.

question: Question
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

motleycrew.applications.research_agent.question_generator.create_question_generator_langchain_tool(query_tool: MotleyTool, graph: MotleyGraphStore, max_questions: int = 3, llm: BaseLanguageModel | None = None, prompt: str | BasePromptTemplate = None)