Loading agents/DebuggerAgent.py +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading agents/ExplainerAgent.py +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading agents/HintAgent.py +1 −1 Original line number Diff line number Diff line Loading @@ -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"]): Loading main.py +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) Loading orchestrator.py +7 −2 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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"]) Loading
agents/DebuggerAgent.py +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
agents/ExplainerAgent.py +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
agents/HintAgent.py +1 −1 Original line number Diff line number Diff line Loading @@ -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"]): Loading
main.py +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) Loading
orchestrator.py +7 −2 Original line number Diff line number Diff line Loading @@ -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: Loading @@ -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"])