Fix memory reload after save_memory — reload all memory files
This commit is contained in:
@@ -315,18 +315,34 @@ def dispatch_tool(fn_name, fn_args, round_num):
|
|||||||
# Handle save_memory reload
|
# Handle save_memory reload
|
||||||
result = execute_skill(script, fn_args)
|
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":
|
if fn_name == "save_memory":
|
||||||
global AGENT_MEMORY
|
reload_memory()
|
||||||
try:
|
|
||||||
with open(f"{WORKSPACE}/MEMORY.md") as f:
|
|
||||||
AGENT_MEMORY = f.read().strip()
|
|
||||||
except FileNotFoundError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
return result
|
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):
|
def ollama_request(payload):
|
||||||
data = json.dumps(payload).encode("utf-8")
|
data = json.dumps(payload).encode("utf-8")
|
||||||
req = urllib.request.Request(
|
req = urllib.request.Request(
|
||||||
|
|||||||
Reference in New Issue
Block a user