motleycrew.agents.parent
Classes
|
Parent class for all motleycrew agents. |
- class motleycrew.agents.parent.MotleyAgentParent(prompt_prefix: str | ChatPromptTemplate | None = None, description: str | None = None, name: str | None = None, agent_factory: MotleyAgentFactory | None = None, tools: Sequence[MotleySupportedTool] | None = None, force_output_handler: bool = False, verbose: bool = False)
Bases:
MotleyAgentAbstractParent
,ABC
Parent class for all motleycrew agents.
This class is abstract and should be subclassed by all agents in motleycrew.
In most cases, it’s better to use one of the specialized agent classes, such as LangchainMotleyAgent or LlamaIndexMotleyAgent, which provide various useful features, such as observability and output handling, out of the box.
If you need to create a custom agent, subclass this class and implement the invoke method.
- __init__(prompt_prefix: str | ChatPromptTemplate | None = None, description: str | None = None, name: str | None = None, agent_factory: MotleyAgentFactory | None = None, tools: Sequence[MotleySupportedTool] | None = None, force_output_handler: bool = False, verbose: bool = False)
- Parameters:
prompt_prefix – Prefix to the agent’s prompt. Can be used for providing additional context, such as the agent’s role or backstory.
description –
Description of the agent.
Unlike the prompt prefix, it is not included in the prompt. The description is only used for describing the agent’s purpose when giving it as a tool to other agents.
name –
Name of the agent. The name is used for identifying the agent when it is given as a tool to other agents, as well as for logging purposes.
It is not included in the agent’s prompt.
agent_factory –
Factory function to create the agent. The factory function should accept a dictionary of tools and return the agent. It is usually called right before the agent is invoked for the first time.
See
motleycrew.common.types.MotleyAgentFactory
for more details.tools – Tools to add to the agent.
force_output_handler – Whether to force the agent to return through an output handler. If True, at least one tool must have return_direct set to True.
verbose – Whether to log verbose output.
- property kv_store: dict
- compose_prompt(input_dict: dict, prompt: ChatPromptTemplate | str, as_messages: bool = False) str | list[BaseMessage]
Compose the agent’s prompt from the prompt prefix and the provided prompt.
- Parameters:
input_dict – The input dictionary to the agent.
prompt – The prompt to be added to the agent’s prompt.
as_messages – Whether the prompt should be returned as a Langchain messages list instead of a single string.
- Returns:
The composed prompt.
- property agent
Getter for the inner agent that makes sure it’s already materialized. The inner agent should always be accessed via this property method.
- property is_materialized
Whether the agent is materialized.
- get_output_handlers()
Get all output handlers (tools with return_direct set to True).
- materialize()
Materialize the agent by creating the agent instance using the agent factory. This method should be called before invoking the agent for the first time.
- add_tools(tools: Sequence[MotleySupportedTool])
Add tools to the agent.
- Parameters:
tools – The tools to add to the agent.
- as_tool(**kwargs) MotleyTool
Convert the agent to a tool to be used by other agents via delegation.
- Parameters:
kwargs – Additional arguments to pass to the tool. See
motleycrew.tools.tool.MotleyTool
for more details.
- abstract invoke(input: dict, config: RunnableConfig | None = None, **kwargs: Any) Any
Transform a single input into an output. Override to implement.
- Parameters:
input – The input to the Runnable.
config – A config to use when invoking the Runnable. The config supports standard keys like ‘tags’, ‘metadata’ for tracing purposes, ‘max_concurrency’ for controlling how much work to do in parallel, and other keys. Please refer to the RunnableConfig for more details.
- Returns:
The output of the Runnable.