Commit 846ce99b authored by Juraj Mikuš's avatar Juraj Mikuš
Browse files

Update 5 files

- /main.py
- /orchestrator.py
- /agents/HintAgent.py
- /agents/ExplainerAgent.py
- /agents/DebuggerAgent.py
parent 81cf30aa
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -99,9 +99,16 @@ class DebuggerAgent:
            system_prompt = DEBUGGER_SYSTEM_PROMPT
        )

    def run(self, history) -> str:
    def run(self, history, debug) -> str:
        result = self.agent.invoke({"messages": history})

        if debug:
            messages = result["messages"]
            if len(messages) >= 3:
                if messages[-3].tool_calls:
                    print('TOOL CALLS:\n', messages[-3].tool_calls, '\n')
                    print('RESULT OF TOOL CALLS:\n', messages[-2].content)

        for msg in reversed(result["messages"]):
            if msg.content.strip():
                answer = msg.content
+8 −1
Original line number Diff line number Diff line
@@ -145,9 +145,16 @@ class ExplainerAgent:
            system_prompt = EXPLAINER_SYSTEM_PROMPT
        )

    def run(self, history) -> str:
    def run(self, history, debug) -> str:
        result = self.agent.invoke({"messages": history})

        if debug:
            messages = result["messages"]
            if len(messages) >= 3:
                if messages[-3].tool_calls:
                    print('TOOL CALLS:\n', messages[-3].tool_calls, '\n')
                    print('RESULT OF TOOL CALLS:\n', messages[-2].content)

        for msg in reversed(result["messages"]):
            if msg.content.strip():
                answer = msg.content
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class HintAgent:
            system_prompt = HINT_SYSTEM_PROMPT
        )

    def run(self, history) -> str:
    def run(self, history, debug) -> str:
        result = self.agent.invoke({"messages": history})

        for msg in reversed(result["messages"]):
+20 −3
Original line number Diff line number Diff line
from orchestrator import Orchestrator


def read_multiline_input():
    print("User (multi-line input) (end by 'END'):")
    lines = []
    while True:
        line = input()
        if line.strip() == 'END':
            break
        lines.append(line)
    return "\n".join(lines)


def main():
    debug = False  # True for debug mode
    orchestrator = Orchestrator()

    print("=== Multi-Agent Python Helper ===")
    while True:
        mode = input("Multi-line input? (y/n): ")

        if mode.lower() == "y":
            user_input = read_multiline_input()
        else:
            user_input = input("User ('exit' to quit): ")

        if user_input.lower() == "exit":
            break

        result = orchestrator.process(user_input)
        result = orchestrator.process(user_input, debug)
        agent, response = result
        print("\n==== Agent ==== ("+agent+")")
        print(response)
+7 −2
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ class Orchestrator:
            system_prompt = ORCHESTRATOR_SYSTEM_PROMPT
        )
        self.last_agent = None
        self.debug = False

    def pick_agent(self, query: str) -> str:
        if self.last_agent:
@@ -102,10 +103,14 @@ class Orchestrator:

        return agent_name

    def process(self, query: str) -> str:
    def process(self, query: str, debug: bool) -> str:
        if debug:
            self.debug = True
        
        agent_name = self.pick_agent(query)
        self.last_agent = agent_name
        agent = self.agent_map[agent_name]
        response = agent.run(self.history)
        
        response = agent.run(self.history, debug)
        self.history = response
        return (agent_name, response[-1]["content"])