24Arys11's picture
added final_answer agent; improved reasoner; fixed minor issues; tweaked the prompts;
58afc3a
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)