调整包结构; 新增调度模块大致框架; 尝试实现能力注册与注入机制,减轻重复逻辑,增强扩展性

This commit is contained in:
2025-07-13 23:05:06 +08:00
parent 192ae1bf5f
commit 98d830d08b
38 changed files with 256 additions and 51 deletions

View File

@@ -44,8 +44,12 @@
<dependency> <dependency>
<groupId>org.junit.jupiter</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId> <artifactId>junit-jupiter</artifactId>
<version>RELEASE</version> <version>5.13.2</version>
<scope>test</scope> </dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.10.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>

View File

@@ -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.GlobalExceptionHandler;
import work.slhaf.agent.common.exception_handler.pojo.GlobalException; import work.slhaf.agent.common.exception_handler.pojo.GlobalException;
import work.slhaf.agent.common.serialize.PersistableObject; import work.slhaf.agent.common.serialize.PersistableObject;
import work.slhaf.agent.core.cognation.common.exception.UserNotExistsException; import work.slhaf.agent.core.cognation.capability.ability.CognationCapability;
import work.slhaf.agent.core.cognation.common.pojo.ActiveData; 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.MemoryResult;
import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; 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.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.MemoryCore;
import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; 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.PerceiveCore;
import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; 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.IOException;
import java.io.Serial; import java.io.Serial;
@@ -53,6 +56,7 @@ public class CognationManager extends PersistableObject implements CacheCapabili
private CacheCore cacheCore; private CacheCore cacheCore;
private MemoryCore memoryCore; private MemoryCore memoryCore;
private PerceiveCore perceiveCore; private PerceiveCore perceiveCore;
private DispatchCore dispatchCore;
private ActiveData activeData; private ActiveData activeData;

View File

@@ -0,0 +1,5 @@
package work.slhaf.agent.core.cognation;
public class NewCognationManager {
}

View File

@@ -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<Class<?>> cores = reflections.getTypesAnnotatedWith(CapabilityCore.class);
Set<Class<?>> 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<Class<?>> cores, Set<Class<?>> capabilities) {
List<String> coresValues = new ArrayList<>();
List<String> 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);
}
}

View File

@@ -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.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@Capability(value = "cache")
public interface CacheCapability { public interface CacheCapability {
HashMap<LocalDateTime, String> getDialogMap(); HashMap<LocalDateTime, String> getDialogMap();
ConcurrentHashMap<LocalDateTime, String> getUserDialogMap(String userId); ConcurrentHashMap<LocalDateTime, String> getUserDialogMap(String userId);

View File

@@ -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.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.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public interface CognationCapability { public interface CognationCapability {
List<Message> getChatMessages(); List<Message> getChatMessages();

View File

@@ -0,0 +1,4 @@
package work.slhaf.agent.core.cognation.capability.ability;
public interface DispatchCapability {
}

View File

@@ -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.common.pojo.MemoryResult;
import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice;

View File

@@ -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; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User;

View File

@@ -0,0 +1,7 @@
package work.slhaf.agent.core.cognation.capability.exception;
public class CapabilityRegisterFailedException extends RuntimeException {
public CapabilityRegisterFailedException(String message) {
super(message);
}
}

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -1,4 +1,4 @@
package work.slhaf.agent.core.cognation; package work.slhaf.agent.core.cognation.cognation;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -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 class UserNotExistsException extends RuntimeException {
public UserNotExistsException(String message) { public UserNotExistsException(String message) {

View File

@@ -1,7 +1,7 @@
package work.slhaf.agent.core.cognation.common.pojo; package work.slhaf.agent.core.cognation.cognation.pojo;
import lombok.Data; 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.HashMap;
import java.util.List; import java.util.List;

View File

@@ -4,6 +4,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import work.slhaf.agent.common.serialize.PersistableObject; 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.common.pojo.MemoryResult;
import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice;
@@ -16,6 +17,7 @@ import java.util.concurrent.ConcurrentHashMap;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
@Slf4j @Slf4j
@CapabilityCore(value = "cache")
public class CacheCore extends PersistableObject { public class CacheCore extends PersistableObject {
@Serial @Serial

View File

@@ -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(){
}
}

View File

@@ -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;
}

View File

@@ -3,8 +3,8 @@ package work.slhaf.agent.core.cognation.submodule.memory;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import work.slhaf.agent.common.serialize.PersistableObject; import work.slhaf.agent.common.serialize.PersistableObject;
import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException;
import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; 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.MemoryResult;
import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult;
import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice;

View File

@@ -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 class NullSliceListException extends RuntimeException {
public NullSliceListException(String message) { public NullSliceListException(String message) {

View File

@@ -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 class UnExistedDateIndexException extends RuntimeException {
public UnExistedDateIndexException(String message) { public UnExistedDateIndexException(String message) {

View File

@@ -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 class UnExistedTopicException extends RuntimeException {
public UnExistedTopicException(String message) { public UnExistedTopicException(String message) {

View File

@@ -1,4 +1,4 @@
package work.slhaf.agent.shared.memory; package work.slhaf.agent.core.cognation.submodule.memory.pojo;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import work.slhaf.agent.common.serialize.PersistableObject; 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 work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice;
import java.io.*; import java.io.*;

View File

@@ -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.ChatResponse;
import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.Message;
import work.slhaf.agent.common.chat.pojo.MetaMessage; 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.cognation.CognationManager;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.interaction.module.InteractionModule;

View File

@@ -3,13 +3,13 @@ package work.slhaf.agent.module.modules.memory.selector;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; 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.CognationManager;
import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException;
import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; 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.MemoryResult;
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.memory.MemoryCapability; 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.memory.pojo.MemorySlice;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.core.session.SessionManager; 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.MemorySelectExtractor;
import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; 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.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.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;

View File

@@ -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.EvaluatorInput;
import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorResult; 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.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.io.IOException;
import java.util.*; import java.util.*;

View File

@@ -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.chat.pojo.MetaMessage;
import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler; import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler;
import work.slhaf.agent.common.exception_handler.pojo.GlobalException; 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.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.interaction.data.context.InteractionContext;
import work.slhaf.agent.core.session.SessionManager; import work.slhaf.agent.core.session.SessionManager;
import work.slhaf.agent.module.common.Model; 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.ExtractorInput;
import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; 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.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.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.memory.selector.extractor.data;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import work.slhaf.agent.common.chat.pojo.Message; 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.time.LocalDate;
import java.util.List; import java.util.List;

View File

@@ -6,12 +6,12 @@ import lombok.extern.slf4j.Slf4j;
import work.slhaf.agent.common.chat.constant.ChatConstant; import work.slhaf.agent.common.chat.constant.ChatConstant;
import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.Message;
import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; 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.CognationManager;
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.memory.MemoryCapability; 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.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.data.context.InteractionContext;
import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.interaction.module.InteractionModule;
import work.slhaf.agent.core.session.SessionManager; import work.slhaf.agent.core.session.SessionManager;

View File

@@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.perceive.selector;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import work.slhaf.agent.core.cognation.CognationManager; 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.cognation.submodule.perceive.pojo.User;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.module.common.PreModule; import work.slhaf.agent.module.common.PreModule;

View File

@@ -4,9 +4,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; 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.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.cognation.submodule.perceive.pojo.User;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.interaction.module.InteractionModule;

View File

@@ -4,9 +4,9 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data; import lombok.Data;
import work.slhaf.agent.common.chat.pojo.ChatResponse; import work.slhaf.agent.common.chat.pojo.ChatResponse;
import work.slhaf.agent.common.chat.pojo.Message; 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.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.cognation.submodule.perceive.pojo.User;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.module.common.Model; import work.slhaf.agent.module.common.Model;

View File

@@ -5,9 +5,9 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import work.slhaf.agent.common.chat.pojo.ChatResponse; 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.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.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.module.common.Model; import work.slhaf.agent.module.common.Model;
import work.slhaf.agent.module.common.ModelConstant; import work.slhaf.agent.module.common.ModelConstant;

View File

@@ -2,7 +2,7 @@ package work.slhaf.agent.module.modules.process;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; 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.CognationManager;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;
import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.interaction.module.InteractionModule;

View File

@@ -2,9 +2,9 @@ package work.slhaf.agent.module.modules.process;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; 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.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.cognation.submodule.perceive.pojo.User;
import work.slhaf.agent.core.interaction.data.InteractionInputData; import work.slhaf.agent.core.interaction.data.InteractionInputData;
import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.data.context.InteractionContext;

View File

@@ -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<String, Integer> function = s -> {
return s.length();
};
}
}