From 98d830d08b0f927e5d6be9a825a6a2a8e13fb15b Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Sun, 13 Jul 2025 23:05:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8C=85=E7=BB=93=E6=9E=84;?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E8=B0=83=E5=BA=A6=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=A4=A7=E8=87=B4=E6=A1=86=E6=9E=B6;=20=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=83=BD=E5=8A=9B=E6=B3=A8=E5=86=8C=E4=B8=8E?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E6=9C=BA=E5=88=B6=EF=BC=8C=E5=87=8F=E8=BD=BB?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=BC=BA?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 ++- .../core/cognation/CognationManager.java | 16 +++-- .../core/cognation/NewCognationManager.java | 5 ++ .../capability/CapabilityRegister.java | 67 +++++++++++++++++++ .../ability}/CacheCapability.java | 5 +- .../ability}/CognationCapability.java | 5 +- .../ability/DispatchCapability.java | 4 ++ .../ability}/MemoryCapability.java | 2 +- .../ability}/PerceiveCapability.java | 2 +- .../CapabilityRegisterFailedException.java | 7 ++ .../capability/interfaces/Capability.java | 12 ++++ .../capability/interfaces/CapabilityCore.java | 12 ++++ .../interfaces/InjectCapability.java | 9 +++ .../{ => cognation}/CognationCore.java | 2 +- .../exception/UserNotExistsException.java | 2 +- .../pojo/ActiveData.java | 4 +- .../cognation/submodule/cache/CacheCore.java | 2 + .../submodule/dispatch/DispatchCore.java | 32 +++++++++ .../submodule/dispatch/pojo/DispatchData.java | 15 +++++ .../submodule/memory/MemoryCore.java | 4 +- .../exception/NullSliceListException.java | 2 +- .../UnExistedDateIndexException.java | 2 +- .../exception/UnExistedTopicException.java | 2 +- .../memory/pojo}/EvaluatedSlice.java | 2 +- .../memory/pojo/node/MemoryNode.java | 2 +- .../agent/module/modules/core/CoreModel.java | 2 +- .../memory/selector/MemorySelector.java | 12 ++-- .../evaluator/SliceSelectEvaluator.java | 2 +- .../extractor/MemorySelectExtractor.java | 6 +- .../extractor/data/ExtractorInput.java | 2 +- .../modules/memory/updater/MemoryUpdater.java | 8 +-- .../perceive/selector/PerceiveSelector.java | 2 +- .../perceive/updater/PerceiveUpdater.java | 4 +- .../relation_extractor/RelationExtractor.java | 4 +- .../StaticMemoryExtractor.java | 4 +- .../modules/process/PostprocessExecutor.java | 2 +- .../modules/process/PreprocessExecutor.java | 4 +- src/test/java/ReflectionTest.java | 30 +++++++++ 38 files changed, 256 insertions(+), 51 deletions(-) create mode 100644 src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java rename src/main/java/work/slhaf/agent/core/cognation/{submodule/cache => capability/ability}/CacheCapability.java (72%) rename src/main/java/work/slhaf/agent/core/cognation/{ => capability/ability}/CognationCapability.java (84%) create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java rename src/main/java/work/slhaf/agent/core/cognation/{submodule/memory => capability/ability}/MemoryCapability.java (89%) rename src/main/java/work/slhaf/agent/core/cognation/{submodule/perceive => capability/ability}/PerceiveCapability.java (83%) create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java create mode 100644 src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java rename src/main/java/work/slhaf/agent/core/cognation/{ => cognation}/CognationCore.java (98%) rename src/main/java/work/slhaf/agent/core/cognation/{common => cognation}/exception/UserNotExistsException.java (70%) rename src/main/java/work/slhaf/agent/core/cognation/{common => cognation}/pojo/ActiveData.java (88%) create mode 100644 src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java create mode 100644 src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java rename src/main/java/work/slhaf/agent/core/cognation/{common => submodule/memory}/exception/NullSliceListException.java (68%) rename src/main/java/work/slhaf/agent/core/cognation/{common => submodule/memory}/exception/UnExistedDateIndexException.java (69%) rename src/main/java/work/slhaf/agent/core/cognation/{common => submodule/memory}/exception/UnExistedTopicException.java (68%) rename src/main/java/work/slhaf/agent/{shared/memory => core/cognation/submodule/memory/pojo}/EvaluatedSlice.java (88%) create mode 100644 src/test/java/ReflectionTest.java diff --git a/pom.xml b/pom.xml index b75d12fd..facc723f 100644 --- a/pom.xml +++ b/pom.xml @@ -44,8 +44,12 @@ org.junit.jupiter junit-jupiter - RELEASE - test + 5.13.2 + + + org.reflections + reflections + 0.10.2 org.slf4j diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java b/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java index 4f36858b..da8ede0f 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java +++ b/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java @@ -10,19 +10,22 @@ import work.slhaf.agent.common.config.Config; import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler; import work.slhaf.agent.common.exception_handler.pojo.GlobalException; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.UserNotExistsException; -import work.slhaf.agent.core.cognation.common.pojo.ActiveData; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; +import work.slhaf.agent.core.cognation.cognation.CognationCore; +import work.slhaf.agent.core.cognation.cognation.exception.UserNotExistsException; +import work.slhaf.agent.core.cognation.cognation.pojo.ActiveData; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; import work.slhaf.agent.core.cognation.submodule.cache.CacheCore; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.submodule.dispatch.DispatchCore; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.MemoryCore; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCore; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.io.Serial; @@ -53,6 +56,7 @@ public class CognationManager extends PersistableObject implements CacheCapabili private CacheCore cacheCore; private MemoryCore memoryCore; private PerceiveCore perceiveCore; + private DispatchCore dispatchCore; private ActiveData activeData; diff --git a/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java b/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java new file mode 100644 index 00000000..802772cb --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java @@ -0,0 +1,5 @@ +package work.slhaf.agent.core.cognation; + +public class NewCognationManager { + +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java b/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java new file mode 100644 index 00000000..6b7ecf2a --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java @@ -0,0 +1,67 @@ +package work.slhaf.agent.core.cognation.capability; + +import org.reflections.Reflections; +import work.slhaf.agent.core.cognation.capability.exception.CapabilityRegisterFailedException; +import work.slhaf.agent.core.cognation.capability.interfaces.Capability; +import work.slhaf.agent.core.cognation.capability.interfaces.CapabilityCore; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class CapabilityRegister { + + public static volatile CapabilityRegister capabilityRegister; + + private CapabilityRegister(){ + } + + public static CapabilityRegister getInstance(){ + if (capabilityRegister == null) { + synchronized (CapabilityRegister.class) { + if (capabilityRegister == null) { + capabilityRegister = new CapabilityRegister(); + } + } + } + return capabilityRegister; + } + + public void registerCapabilities(){ + //检查可注册能力是否正常 + statusCheck(); + //扫描现有Capability, value为键,返回函数路由表 + } + + private void statusCheck(){ + Reflections reflections = new Reflections("work.slhaf.agent.core"); + Set> cores = reflections.getTypesAnnotatedWith(CapabilityCore.class); + Set> capabilities = reflections.getTypesAnnotatedWith(Capability.class); + if (cores.size() != capabilities.size()){ + throw new CapabilityRegisterFailedException("Capability 注册异常: 已存在的CapabilityCore与Capability数量不匹配!"); + } + if (checkValuesMatched(cores,capabilities)){ + throw new CapabilityRegisterFailedException("Capability 注册异常: 已存在的CapabilityCore与Capability不匹配!"); + } + } + + + private static boolean checkValuesMatched(Set> cores, Set> capabilities) { + List coresValues = new ArrayList<>(); + List capabilitiesValues = new ArrayList<>(); + for (Class core : cores) { + CapabilityCore annotation = core.getAnnotation(CapabilityCore.class); + if (annotation != null) { + coresValues.add(annotation.value()); + } + } + for (Class capability : capabilities) { + Capability annotation = capability.getAnnotation(Capability.class); + if (annotation != null) { + capabilitiesValues.add(annotation.value()); + } + } + return coresValues.equals(capabilitiesValues); + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java similarity index 72% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java index 3d972e69..e1593bb8 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java @@ -1,9 +1,12 @@ -package work.slhaf.agent.core.cognation.submodule.cache; +package work.slhaf.agent.core.cognation.capability.ability; + +import work.slhaf.agent.core.cognation.capability.interfaces.Capability; import java.time.LocalDateTime; import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; +@Capability(value = "cache") public interface CacheCapability { HashMap getDialogMap(); ConcurrentHashMap getUserDialogMap(String userId); diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java similarity index 84% rename from src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java index 57ced5eb..0c63fc81 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java @@ -1,12 +1,11 @@ -package work.slhaf.agent.core.cognation; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.util.HashMap; import java.util.List; import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; public interface CognationCapability { List getChatMessages(); diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java new file mode 100644 index 00000000..a4249709 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java @@ -0,0 +1,4 @@ +package work.slhaf.agent.core.cognation.capability.ability; + +public interface DispatchCapability { +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java similarity index 89% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java index 7607d7e8..9316b113 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.submodule.memory; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java similarity index 83% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java index 7389aa8b..000af60a 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.submodule.perceive; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java b/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java new file mode 100644 index 00000000..f5e7e31c --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java @@ -0,0 +1,7 @@ +package work.slhaf.agent.core.cognation.capability.exception; + +public class CapabilityRegisterFailedException extends RuntimeException { + public CapabilityRegisterFailedException(String message) { + super(message); + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java new file mode 100644 index 00000000..6221b73b --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java @@ -0,0 +1,12 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface Capability { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java new file mode 100644 index 00000000..4d151170 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java @@ -0,0 +1,12 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface CapabilityCore { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java new file mode 100644 index 00000000..706a9594 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java @@ -0,0 +1,9 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +public @interface InjectCapability { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationCore.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java similarity index 98% rename from src/main/java/work/slhaf/agent/core/cognation/CognationCore.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java index de8a422d..02483c4c 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation; +package work.slhaf.agent.core.cognation.cognation; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java similarity index 70% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java index da4ee37c..a688636e 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.cognation.exception; public class UserNotExistsException extends RuntimeException { public UserNotExistsException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java similarity index 88% rename from src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java index a9f2da38..bb97363f 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java @@ -1,7 +1,7 @@ -package work.slhaf.agent.core.cognation.common.pojo; +package work.slhaf.agent.core.cognation.cognation.pojo; import lombok.Data; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.util.HashMap; import java.util.List; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java index 50f1ba96..2dbe3f07 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.serialize.PersistableObject; +import work.slhaf.agent.core.cognation.capability.interfaces.CapabilityCore; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; @@ -16,6 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; @EqualsAndHashCode(callSuper = true) @Data @Slf4j +@CapabilityCore(value = "cache") public class CacheCore extends PersistableObject { @Serial diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java new file mode 100644 index 00000000..3f2ff198 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java @@ -0,0 +1,32 @@ +package work.slhaf.agent.core.cognation.submodule.dispatch; + +import work.slhaf.agent.common.serialize.PersistableObject; +import work.slhaf.agent.core.cognation.submodule.dispatch.pojo.DispatchData; + +import java.io.Serial; + +public class DispatchCore extends PersistableObject { + + @Serial + private static final long serialVersionUID = 1L; + public static volatile DispatchCore dispatchCore; + + public static DispatchCore getInstance() { + if (dispatchCore == null) { + synchronized (DispatchCore.class) { + if (dispatchCore == null) { + dispatchCore = new DispatchCore(); + } + } + } + return dispatchCore; + } + + public void dispatch(DispatchData dispatchData){ + + } + + public void listDispatchData(){ + + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java new file mode 100644 index 00000000..04560722 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java @@ -0,0 +1,15 @@ +package work.slhaf.agent.core.cognation.submodule.dispatch.pojo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class DispatchData { + private LocalDateTime dateTime; + private String userId; + private String comment; + + //TODO 替换为<执行器>或者<插件> + private String executor; +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java index b2e5c5a9..2722de71 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java @@ -3,8 +3,8 @@ package work.slhaf.agent.core.cognation.submodule.memory; import lombok.Data; import lombok.EqualsAndHashCode; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; -import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedTopicException; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java similarity index 68% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java index d9c33cb2..f8eafd8d 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class NullSliceListException extends RuntimeException { public NullSliceListException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java similarity index 69% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java index 25afdd18..6944cca2 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class UnExistedDateIndexException extends RuntimeException { public UnExistedDateIndexException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java similarity index 68% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java index d151f58d..727d47e2 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class UnExistedTopicException extends RuntimeException { public UnExistedTopicException(String message) { diff --git a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java similarity index 88% rename from src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java index 45b4e07a..eb746db4 100644 --- a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.shared.memory; +package work.slhaf.agent.core.cognation.submodule.memory.pojo; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java index 17ba1e57..1a58b3c8 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java @@ -4,7 +4,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.NullSliceListException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.NullSliceListException; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import java.io.*; diff --git a/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java b/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java index 82c1e559..3bce7663 100644 --- a/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java +++ b/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java @@ -8,7 +8,7 @@ import work.slhaf.agent.common.chat.constant.ChatConstant; import work.slhaf.agent.common.chat.pojo.ChatResponse; import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.MetaMessage; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java index 178fbbf9..ff53efc7 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java @@ -3,13 +3,13 @@ package work.slhaf.agent.module.modules.memory.selector; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; -import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedTopicException; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.session.SessionManager; @@ -19,7 +19,7 @@ import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorI import work.slhaf.agent.module.modules.memory.selector.extractor.MemorySelectExtractor; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorResult; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.time.LocalDate; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java index d89163a1..75e8d6b5 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java @@ -16,7 +16,7 @@ import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorB import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorInput; import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorResult; import work.slhaf.agent.module.modules.memory.selector.evaluator.data.SliceSummary; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.util.*; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java index 4dd1db8b..e810b0ab 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java @@ -9,9 +9,9 @@ import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.MetaMessage; import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler; import work.slhaf.agent.common.exception_handler.pojo.GlobalException; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.session.SessionManager; import work.slhaf.agent.module.common.Model; @@ -19,7 +19,7 @@ import work.slhaf.agent.module.common.ModelConstant; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorInput; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorResult; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java index 4c093317..36adc323 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java @@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.memory.selector.extractor.data; import lombok.Builder; import lombok.Data; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java b/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java index 94c4bf9d..35bf6b09 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java @@ -6,12 +6,12 @@ import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.chat.constant.ChatConstant; import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.session.SessionManager; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java b/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java index 27574b43..0c672427 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java @@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.perceive.selector; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.PreModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java index 13d8722e..958ade73 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java @@ -4,9 +4,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java index 949231a4..8325551e 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java @@ -4,9 +4,9 @@ import com.alibaba.fastjson2.JSONObject; import lombok.Data; import work.slhaf.agent.common.chat.pojo.ChatResponse; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.Model; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java index fd29647c..e714ed69 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.EqualsAndHashCode; import work.slhaf.agent.common.chat.pojo.ChatResponse; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.Model; import work.slhaf.agent.module.common.ModelConstant; diff --git a/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java b/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java index cd8deb4d..abf7f291 100644 --- a/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java +++ b/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java @@ -2,7 +2,7 @@ package work.slhaf.agent.module.modules.process; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java b/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java index 17e5fe28..cf042ae5 100644 --- a/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java +++ b/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java @@ -2,9 +2,9 @@ package work.slhaf.agent.module.modules.process; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.InteractionInputData; import work.slhaf.agent.core.interaction.data.context.InteractionContext; diff --git a/src/test/java/ReflectionTest.java b/src/test/java/ReflectionTest.java new file mode 100644 index 00000000..4adc632f --- /dev/null +++ b/src/test/java/ReflectionTest.java @@ -0,0 +1,30 @@ +import org.junit.jupiter.api.Test; +import work.slhaf.agent.core.cognation.capability.CapabilityRegister; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; +import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; + +import java.lang.reflect.Proxy; +import java.util.function.Function; + +public class ReflectionTest { + + @Test + public void test1() { + } + + @Test + public void proxyTest() { + MemoryCapability memory = (MemoryCapability) Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[]{MemoryCapability.class}, (proxy, method, args) -> { + if ("selectMemory".equals(method.getName())){ + System.out.println(111); + return new MemoryResult(); + } + return null; + }); + memory.selectMemory("111"); + + Function function = s -> { + return s.length(); + }; + } +}