Tai Truong
fix readme
d202ada
from crewai import Agent
from langflow.base.agents.crewai.crew import convert_llm, convert_tools
from langflow.custom import Component
from langflow.io import BoolInput, DictInput, HandleInput, MultilineInput, Output
class CrewAIAgentComponent(Component):
"""Component for creating a CrewAI agent.
This component allows you to create a CrewAI agent with the specified role, goal, backstory, tools,
and language model.
Args:
Component (Component): Base class for all components.
Returns:
Agent: CrewAI agent.
"""
display_name = "CrewAI Agent"
description = "Represents an agent of CrewAI."
documentation: str = "https://docs.crewai.com/how-to/LLM-Connections/"
icon = "CrewAI"
inputs = [
MultilineInput(name="role", display_name="Role", info="The role of the agent."),
MultilineInput(name="goal", display_name="Goal", info="The objective of the agent."),
MultilineInput(name="backstory", display_name="Backstory", info="The backstory of the agent."),
HandleInput(
name="tools",
display_name="Tools",
input_types=["Tool"],
is_list=True,
info="Tools at agents disposal",
value=[],
),
HandleInput(
name="llm",
display_name="Language Model",
info="Language model that will run the agent.",
input_types=["LanguageModel"],
),
BoolInput(
name="memory",
display_name="Memory",
info="Whether the agent should have memory or not",
advanced=True,
value=True,
),
BoolInput(
name="verbose",
display_name="Verbose",
advanced=True,
value=False,
),
BoolInput(
name="allow_delegation",
display_name="Allow Delegation",
info="Whether the agent is allowed to delegate tasks to other agents.",
value=True,
),
BoolInput(
name="allow_code_execution",
display_name="Allow Code Execution",
info="Whether the agent is allowed to execute code.",
value=False,
advanced=True,
),
DictInput(
name="kwargs",
display_name="kwargs",
info="kwargs of agent.",
is_list=True,
advanced=True,
),
]
outputs = [
Output(display_name="Agent", name="output", method="build_output"),
]
def build_output(self) -> Agent:
kwargs = self.kwargs or {}
# Define the Agent
agent = Agent(
role=self.role,
goal=self.goal,
backstory=self.backstory,
llm=convert_llm(self.llm),
verbose=self.verbose,
memory=self.memory,
tools=convert_tools(self.tools),
allow_delegation=self.allow_delegation,
allow_code_execution=self.allow_code_execution,
**kwargs,
)
self.status = repr(agent)
return agent