from typing import List from args import Args from itf_agent import IAgent from toolbox import Toolbox import datetime class Manager(IAgent): """ Orchestrates the workflow by delegating tasks to specialized nodes and integrating their outputs """ def __init__(self): super().__init__("01_manager.txt", Args.PRIMARY_AGENT_PRESET) class Auditor(IAgent): """ Reviews manager's outputs for accuracy, safety, and quality """ def __init__(self): super().__init__("02_auditor.txt", Args.PRIMARY_AGENT_PRESET) class Summarizer(IAgent): """ Generates concise summaries of conversations or passages. """ def __init__(self): super().__init__("03_summarizer.txt", Args.SECONDARY_AGENT_PRESET) class Solver(IAgent): """ Central problem-solving node that coordinates with specialized experts based on task requirements """ def __init__(self): super().__init__("04_solver.txt", Args.PRIMARY_AGENT_PRESET) class Researcher(IAgent): """ Retrieves and synthesizes information from various sources to answer knowledge-based questions """ def __init__(self): toolbox = Toolbox.web_search tools = [ toolbox.duckduckgo_text_search, toolbox.duckduckgo_images_search, toolbox.duckduckgo_videos_search ] super().__init__("05_researcher.txt", Args.PRIMARY_AGENT_PRESET, tools) def query(self, messages: List[str]) -> str: last_message = messages[-1] current_time = datetime.datetime.now().isoformat() messages[-1] = f"Current time: {current_time}\n" + last_message return super().query(messages) class Reasoner(IAgent): """ Performs logical reasoning, inference, and step-by-step problem-solving """ def __init__(self): math_toolbox = Toolbox.math encryption_toolbox = Toolbox.encryption tools = [ math_toolbox.symbolic_calc, math_toolbox.unit_converter, encryption_toolbox.ascii_decode, encryption_toolbox.ascii_encode, encryption_toolbox.base64_decode, encryption_toolbox.base64_encode, encryption_toolbox.caesar_cipher_decode, encryption_toolbox.caesar_cipher_encode, encryption_toolbox.caesar_cipher_brute_force, encryption_toolbox.reverse_string ] super().__init__("06_reasoner.txt", Args.PRIMARY_AGENT_PRESET, tools) class HyperReasoner(IAgent): """ Performs logical reasoning, inference, and step-by-step problem-solving """ def __init__(self): super().__init__("07_hyper_reasoner.txt", Args.PRIMARY_AGENT_PRESET) class Viewer(IAgent): """ Processes, analyzes, and generates information related to images """ def __init__(self): super().__init__("08_viewer.txt", Args.VISION_AGENT_PRESET) class OutputGuard(IAgent): """ Performs logical reasoning, inference, and step-by-step problem-solving """ def __init__(self): super().__init__("09_output_guard.txt", Args.SECONDARY_AGENT_PRESET) class FinalAnswer(IAgent): """ Performs logical reasoning, inference, and step-by-step problem-solving """ def __init__(self): super().__init__("10_final_answer.txt", Args.PRIMARY_AGENT_PRESET)