From 5aa65f87784aa662d813eec8a6687bbbcc9e8f83 Mon Sep 17 00:00:00 2001 From: Till Immer Date: Sat, 4 Jul 2026 15:57:52 +0000 Subject: [PATCH] =?UTF-8?q?agent.py=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 agent.py diff --git a/agent.py b/agent.py new file mode 100644 index 0000000..7692bb3 --- /dev/null +++ b/agent.py @@ -0,0 +1,55 @@ +import json +from llm import ask_llm +from mcp_client import MCPClient + +mcp = MCPClient() + +SYSTEM = """ +Du bist JARVIS, ein Smart-Home Assistent. + +Du kannst MCP Tools verwenden. + +Wenn du ein Tool benutzen willst, antworte exakt im JSON Format: + +{ + "tool": "tool_name", + "args": { } +} + +Wenn kein Tool nötig ist: + +{ + "response": "Text" +} + +Beispiele Tools: +- openhab.items.set +- openhab.items.get +""" + +def run_agent(user_input): + + messages = [ + {"role": "system", "content": SYSTEM}, + {"role": "user", "content": user_input} + ] + + response = ask_llm(messages) + + try: + data = json.loads(response) + + if "tool" in data: + result = mcp.call_tool(data["tool"], data["args"]) + + followup = ask_llm([ + {"role": "system", "content": "Formuliere eine natürliche Antwort aus diesem Ergebnis."}, + {"role": "user", "content": str(result)} + ]) + + return followup + + return data["response"] + + except: + return response \ No newline at end of file