From fe162d11f7d16276cfd0166a86a1923f6b15fecd Mon Sep 17 00:00:00 2001 From: ansible Date: Wed, 8 Apr 2026 01:36:01 +0000 Subject: [PATCH] =?UTF-8?q?Fix=20memory=20reload=20after=20save=5Fmemory?= =?UTF-8?q?=20=E2=80=94=20reload=20all=20memory=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/agent.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/agent/agent.py b/agent/agent.py index 3e7e02a..718885e 100644 --- a/agent/agent.py +++ b/agent/agent.py @@ -315,18 +315,34 @@ def dispatch_tool(fn_name, fn_args, round_num): # Handle save_memory reload result = execute_skill(script, fn_args) - # Reload memory if save_memory was called + # Reload full memory if save_memory was called if fn_name == "save_memory": - global AGENT_MEMORY - try: - with open(f"{WORKSPACE}/MEMORY.md") as f: - AGENT_MEMORY = f.read().strip() - except FileNotFoundError: - pass + reload_memory() return result +def reload_memory(): + """Reload all memory files from workspace.""" + global AGENT_MEMORY + AGENT_MEMORY = "" + try: + with open(f"{WORKSPACE}/MEMORY.md") as f: + AGENT_MEMORY = f.read().strip() + mem_dir = f"{WORKSPACE}/memory" + if os.path.isdir(mem_dir): + for fname in sorted(os.listdir(mem_dir)): + if fname.endswith(".md"): + try: + with open(f"{mem_dir}/{fname}") as f: + topic = fname.replace(".md", "") + AGENT_MEMORY += f"\n\n## {topic}\n{f.read().strip()}" + except Exception: + pass + except FileNotFoundError: + pass + + def ollama_request(payload): data = json.dumps(payload).encode("utf-8") req = urllib.request.Request(