from langgraph.prebuilt import create_react_agent from prompts import * from tools import * from langgraph_supervisor import create_supervisor from langchain.chat_models import init_chat_model import glob class Agent: def __init__(self): print("Initializing Agent....") print("--> Audio Agent") self.audio_agent = create_react_agent( model="openai:gpt-4o-mini", # gpt-4o-mini-2024-07-18 tools=[extract_text_from_url_tool, extract_text_from_file_tool], prompt= AUDIO_AGENT_PROMPT, name="audio_agent", ) print("--> Web Search Agent") self.web_search_agent = create_react_agent( model="openai:gpt-4o-mini", # gpt-4o-mini-2024-07-18 tools=[search_web_tool], prompt= WEB_SEARCH_AGENT_PROMPT, name="web_research_agent", ) print("--> Supervisor") self.supervisor = create_supervisor( model=init_chat_model("openai:gpt-4o-mini"), agents=[self.web_search_agent, self.audio_agent], tools=[bird_video_count_tool,chess_image_to_fen_tool,chess_fen_get_best_next_move_tool, get_excel_columns_tool, calculate_excel_sum_by_columns_tool,execute_python_code_tool, text_inverter_tool, check_table_commutativity_tool], prompt= SUPERVISOR_PROMPT, add_handoff_back_messages=True, output_mode="full_history", ).compile() print("Agent initialized.") def _exist_file_with_task_id(task_id: str) -> str: padrao = os.path.join(AGENTS_FILES_PATH, f"{task_id}.*") arquivos_encontrados = glob.glob(padrao) return arquivos_encontrados[0] if arquivos_encontrados else None def __call__(self, question: str, task_id: str) -> str: print(f"Agent received question (first 50 chars): {question[:50]}...") file = self._exist_file_with_task_id(task_id) fixed_answer = "This is a default answer." print(f"Agent returning fixed answer: {fixed_answer}") return fixed_answer