File size: 3,296 Bytes
910ae58
 
4fb4269
 
 
 
 
 
 
 
 
 
910ae58
 
 
 
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
 
 
 
 
 
 
910ae58
 
4fb4269
910ae58
4fb4269
910ae58
4fb4269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
910ae58
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
910ae58
 
 
 
 
 
4fb4269
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
from args import Args
from itf_agent import IAgent
from llm_factory import AgentPreset
from toolbox import Toolbox


PRIMARY_AGENT_PRESET = AgentPreset(Args.primary_llm_interface, Args.primary_model,
    temperature = None, max_tokens = 2048, repeat_penalty = None)
SECONDARY_AGENT_PRESET = AgentPreset(Args.primary_llm_interface, Args.secondary_model,
    temperature = None, max_tokens = 2048, repeat_penalty = None)
VISION_AGENT_PRESET = AgentPreset(Args.vlm_interface, Args.vision_model,
    temperature = None, max_tokens = 2048, repeat_penalty = None)


class Manager(IAgent):
    """
    Orchestrates the workflow by delegating tasks to specialized nodes and integrating their outputs
    """
    def __init__(self):
        super().__init__("01_manager.txt", PRIMARY_AGENT_PRESET)


class Auditor(IAgent):
    """
    Reviews manager's outputs for accuracy, safety, and quality
    """
    def __init__(self):
        super().__init__("02_auditor.txt", PRIMARY_AGENT_PRESET)


class Summarizer(IAgent):
    """
    Generates concise summaries of conversations or passages.
    """
    def __init__(self):
        super().__init__("04_summarizer.txt", PRIMARY_AGENT_PRESET)


class Solver(IAgent):
    """
    Central problem-solving node that coordinates with specialized experts based on task requirements
    """
    def __init__(self):
        super().__init__("03_solver.txt", 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", PRIMARY_AGENT_PRESET, tools)


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__("08_reasoner.txt", PRIMARY_AGENT_PRESET, tools)


class OutputGuard(IAgent):
    """
    Performs logical reasoning, inference, and step-by-step problem-solving
    """
    def __init__(self):
        super().__init__("11_output_guard.txt", SECONDARY_AGENT_PRESET)


class ImageHandler(IAgent):
    """
    Processes, analyzes, and generates information related to images
    """
    def __init__(self):
        super().__init__("09_image_handler.txt", VISION_AGENT_PRESET)


class VideoHandler(IAgent):
    """
    Processes, analyzes, and generates information related to videos
    """
    def __init__(self):
        super().__init__("10_video_handler.txt", VISION_AGENT_PRESET)