mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 08:08:32 +00:00
66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
---
|
|
title: Customizing Agents in CrewAI
|
|
description: A guide to tailoring agents for specific roles and tasks within the CrewAI framework.
|
|
---
|
|
|
|
## Customizable Attributes
|
|
Tailoring your AI agents is pivotal in crafting an efficient CrewAI team. Customization allows agents to be dynamically adapted to the unique requirements of any project.
|
|
|
|
### Key Attributes for Customization
|
|
- **Role**: Defines the agent's job within the crew, such as 'Analyst' or 'Customer Service Rep'.
|
|
- **Goal**: The agent's objective, aligned with its role and the crew's overall goals.
|
|
- **Backstory**: Adds depth to the agent's character, enhancing its role and motivations within the crew.
|
|
- **Tools**: The capabilities or methods the agent employs to accomplish tasks, ranging from simple functions to complex integrations.
|
|
|
|
## Understanding Tools in CrewAI
|
|
Tools empower agents with functionalities to interact and manipulate their environment, from generic utilities to specialized functions. Integrating with LangChain offers access to a broad range of tools for diverse tasks.
|
|
|
|
## Customizing Agents and Tools
|
|
Agents are customized by defining their attributes during initialization, with tools being a critical aspect of their functionality.
|
|
|
|
### Example: Assigning Tools to an Agent
|
|
```python
|
|
from crewai import Agent
|
|
from langchain.agents import Tool
|
|
from langchain.utilities import GoogleSerperAPIWrapper
|
|
import os
|
|
|
|
# Set API keys for tool initialization
|
|
os.environ["OPENAI_API_KEY"] = "Your Key"
|
|
os.environ["SERPER_API_KEY"] = "Your Key"
|
|
|
|
# Initialize a search tool
|
|
search_tool = GoogleSerperAPIWrapper()
|
|
|
|
# Define and assign the tool to an agent
|
|
serper_tool = Tool(
|
|
name="Intermediate Answer",
|
|
func=search_tool.run,
|
|
description="Useful for search-based queries"
|
|
)
|
|
|
|
# Initialize the agent with the tool
|
|
agent = Agent(
|
|
role='Research Analyst',
|
|
goal='Provide up-to-date market analysis',
|
|
backstory='An expert analyst with a keen eye for market trends.',
|
|
tools=[serper_tool]
|
|
)
|
|
```
|
|
|
|
## Delegation and Autonomy
|
|
Agents in CrewAI can delegate tasks or ask questions, enhancing the crew's collaborative dynamics. This feature can be disabled to ensure straightforward task execution.
|
|
|
|
### Example: Disabling Delegation for an Agent
|
|
```python
|
|
agent = Agent(
|
|
role='Content Writer',
|
|
goal='Write engaging content on market trends',
|
|
backstory='A seasoned writer with expertise in market analysis.',
|
|
allow_delegation=False
|
|
)
|
|
```
|
|
|
|
## Conclusion
|
|
Customizing agents is key to leveraging the full potential of CrewAI. By thoughtfully setting agents' roles, goals, backstories, and tools, you craft a nuanced and capable AI team ready to tackle complex challenges.
|