TatTwamAI / crew_config.py
Jayashree Sridhar
First Version
20d720d
raw
history blame
2.89 kB
from agents.tools.voice_tools import VoiceTools
from agents.tools.llm_tools import LLMTools
from agents.tools.knowledge_tools import KnowledgeTools
from agents.tools.validation_tools import ValidationTools
from crewai import Agent
from utils.knowledge_base import KnowledgeBase
class PersonalCoachCrew:
def __init__(self, config):
self.config = config
# Centralized tool instances
self.voice_tools = VoiceTools(self.config)
self.llm_tools = LLMTools(self.config)
self.knowledge_tools = KnowledgeTools(self.config)
self.validation_tools = ValidationTools(self.config)
self.knowledge_base = KnowledgeBase(self.config)
self._initialize_agents()
self._create_crew()
def _initialize_agents(self):
# ----- AGENT 1 -----
self.conversation_handler = Agent(
role="Empathetic Conversation Handler",
goal="Understand user's emotional state and needs through compassionate dialogue",
backstory="...",
verbose=self.config.crew.verbose,
allow_delegation=False,
tools=[
self.voice_tools.transcribe_audio,
self.voice_tools.detect_emotion,
self.voice_tools.generate_reflective_questions,
]
)
# ----- AGENT 2 -----
self.wisdom_advisor = Agent(
role="Wisdom Keeper and Spiritual Guide",
goal="Provide personalized guidance drawing from ancient wisdom and modern psychology",
backstory="...",
verbose=self.config.crew.verbose,
allow_delegation=False,
tools=[
self.knowledge_tools.search_knowledge,
self.knowledge_tools.extract_wisdom,
self.knowledge_tools.suggest_practices,
self.llm_tools.mistral_chat,
self.llm_tools.generate_advice,
]
)
# ----- AGENT 3 -----
self.response_validator = Agent(
role="Response Guardian and Quality Validator",
goal="Ensure all responses are safe, appropriate, and truly helpful",
backstory="...",
verbose=self.config.crew.verbose,
allow_delegation=False,
tools=[
self.validation_tools.check_safety,
self.validation_tools.validate_tone,
self.validation_tools.refine_response,
]
)
# ----- AGENT 4 -----
self.interaction_manager = Agent(
role="Conversation Flow Manager",
goal="Create natural, engaging dialogue that helps users on their journey",
backstory="...",
verbose=self.config.crew.verbose,
allow_delegation=False,
tools=[
self.llm_tools.summarize_conversation,
]
)