From 027e8bddc0231404f37cb5852f0a153894fd68d9 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Tue, 10 Mar 2026 20:17:34 +0800 Subject: [PATCH] refactor(memory): move memory id refresh into runtime init --- .../modules/memory/runtime/MemoryRuntime.java | 16 ++++++++++++++++ .../modules/process/PreprocessExecutor.java | 7 ------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/memory/runtime/MemoryRuntime.java b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/memory/runtime/MemoryRuntime.java index df5255ae..55a8f611 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/memory/runtime/MemoryRuntime.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/memory/runtime/MemoryRuntime.java @@ -4,11 +4,14 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; +import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability; import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule; import work.slhaf.partner.api.agent.factory.component.annotation.Init; import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader; import work.slhaf.partner.api.common.entity.PersistableObject; import work.slhaf.partner.common.config.PartnerAgentConfigLoader; +import work.slhaf.partner.core.cognation.CognationCapability; +import work.slhaf.partner.core.memory.MemoryCapability; import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException; import work.slhaf.partner.core.memory.exception.UnExistedTopicException; import work.slhaf.partner.core.memory.pojo.MemorySlice; @@ -36,6 +39,11 @@ public class MemoryRuntime extends AbstractAgentModule.Standalone { private static final String RUNTIME_KEY = "memory-runtime"; + @InjectCapability + private MemoryCapability memoryCapability; + @InjectCapability + private CognationCapability cognationCapability; + private final ReentrantLock runtimeLock = new ReentrantLock(); private Map> topicSlices = new HashMap<>(); private Map> dateIndex = new HashMap<>(); @@ -44,9 +52,17 @@ public class MemoryRuntime extends AbstractAgentModule.Standalone { @Init public void init() { loadState(); + checkAndSetMemoryId(); Runtime.getRuntime().addShutdownHook(new Thread(this::saveStateSafely)); } + private void checkAndSetMemoryId() { + String currentMemoryId = memoryCapability.getCurrentMemoryId(); + if (currentMemoryId == null || cognationCapability.getChatMessages().isEmpty()) { + memoryCapability.refreshMemoryId(); + } + } + public void bindTopic(String topicPath, SliceRef sliceRef) { String normalizedPath = normalizeTopicPath(topicPath); runtimeLock.lock(); diff --git a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/process/PreprocessExecutor.java b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/process/PreprocessExecutor.java index 01cac0c4..20c7919b 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/process/PreprocessExecutor.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/process/PreprocessExecutor.java @@ -25,16 +25,9 @@ public class PreprocessExecutor extends AbstractAgentModule.Running