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(