From a2f933edee0d7bf302b8e192d9fce35776b70051 Mon Sep 17 00:00:00 2001 From: opencode Date: Mon, 23 Mar 2026 17:19:55 +0100 Subject: [PATCH] fix: return tool result directly for detected intents --- ollama_agent.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ollama_agent.py b/ollama_agent.py index 0b30bb9..556c5c3 100644 --- a/ollama_agent.py +++ b/ollama_agent.py @@ -402,8 +402,18 @@ For other questions, just answer normally without tools.""" detected_tool = self._detect_intent(user_content) if detected_tool: result = self._execute_tool(detected_tool) - tool_result_text = self._format_tool_result(detected_tool, result) - self.messages.append(HumanMessage(content=tool_result_text)) + + # Format result as a clean response + try: + result_data = json.loads(result) if isinstance(result, str) else result + if isinstance(result_data, dict): + if "result" in result_data: + return {"messages": self.messages, "response": result_data["result"]} + elif "error" in result_data: + return {"messages": self.messages, "response": f"Errore: {result_data['error']}"} + except: + pass + return {"messages": self.messages, "response": str(result)} # Loop principale: risposta -> parse tools -> esegui -> ripeti iteration = 0