mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(framework): rename AgentRunningModule/SubModule to AbstractAgent* and migrate module inheritance usage
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package work.slhaf.partner.module.common.module;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
|
||||
public abstract class PostRunningModule extends AgentRunningModule<PartnerRunningFlowContext> {
|
||||
public abstract class PostRunningAbstractAgentModuleAbstract extends AbstractAgentRunningModule<PartnerRunningFlowContext> {
|
||||
|
||||
@Override
|
||||
public final void execute(PartnerRunningFlowContext context) {
|
||||
@@ -1,7 +1,7 @@
|
||||
package work.slhaf.partner.module.common.module;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.module.common.entity.AppendPromptData;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.Map;
|
||||
* 前置模块抽象类
|
||||
*/
|
||||
@Slf4j
|
||||
public abstract class PreRunningModule extends AgentRunningModule<PartnerRunningFlowContext> {
|
||||
public abstract class PreRunningAbstractAgentModuleAbstract extends AbstractAgentRunningModule<PartnerRunningFlowContext> {
|
||||
private synchronized void setAppendedPrompt(PartnerRunningFlowContext context) {
|
||||
AppendPromptData data = new AppendPromptData();
|
||||
data.setModuleName(moduleName());
|
||||
@@ -10,7 +10,7 @@ import work.slhaf.partner.core.action.ActionCore;
|
||||
import work.slhaf.partner.core.action.entity.ExecutableAction;
|
||||
import work.slhaf.partner.core.action.entity.ImmediateExecutableAction;
|
||||
import work.slhaf.partner.core.action.entity.SchedulableExecutableAction;
|
||||
import work.slhaf.partner.module.common.module.PostRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PostRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.executor.ActionExecutor;
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ActionExecutorInput;
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler;
|
||||
@@ -21,7 +21,7 @@ import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
@AgentModule(name = "action_dispatcher", order = 7)
|
||||
public class ActionDispatcher extends PostRunningModule {
|
||||
public class ActionDispatcher extends PostRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -2,8 +2,8 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.val;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorInput;
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorResult;
|
||||
@@ -12,7 +12,7 @@ import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.Corre
|
||||
* 负责在单组行动执行后,根据行动意图与结果检查后续行动是否符合目的,必要时直接调整行动链,或发起自对话请求进行干预
|
||||
*/
|
||||
@AgentSubModule
|
||||
public class ActionCorrector extends AgentRunningSubModule<CorrectorInput, CorrectorResult> implements ActivateModel {
|
||||
public class ActionCorrector extends AbstractAgentSubModule<CorrectorInput, CorrectorResult> implements ActivateModel {
|
||||
|
||||
@Override
|
||||
public CorrectorResult execute(CorrectorInput input) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import lombok.val;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
|
||||
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class ActionExecutor extends AgentRunningSubModule<ActionExecutorInput, Void> {
|
||||
public class ActionExecutor extends AbstractAgentSubModule<ActionExecutorInput, Void> {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.alibaba.fastjson2.TypeReference;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
|
||||
@@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
*/
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class ActionRepairer extends AgentRunningSubModule<RepairerInput, RepairerResult> implements ActivateModel {
|
||||
public class ActionRepairer extends AbstractAgentSubModule<RepairerInput, RepairerResult> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.val;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
@@ -20,7 +20,7 @@ import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.Gener
|
||||
* 负责依据输入内容生成可执行的动态行动单元,并选择是否持久化至 SandboxRunner 容器内
|
||||
*/
|
||||
@AgentSubModule
|
||||
public class DynamicActionGenerator extends AgentRunningSubModule<GeneratorInput, GeneratorResult>
|
||||
public class DynamicActionGenerator extends AbstractAgentSubModule<GeneratorInput, GeneratorResult>
|
||||
implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
|
||||
@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||
@@ -20,7 +20,7 @@ import java.util.List;
|
||||
*/
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class ParamsExtractor extends AgentRunningSubModule<ExtractorInput, ExtractorResult> implements ActivateModel {
|
||||
public class ParamsExtractor extends AbstractAgentSubModule<ExtractorInput, ExtractorResult> implements ActivateModel {
|
||||
|
||||
@Override
|
||||
public ExtractorResult execute(ExtractorInput input) {
|
||||
|
||||
@@ -12,7 +12,7 @@ import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import org.slf4j.LoggerFactory
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule
|
||||
@@ -31,7 +31,7 @@ import java.util.stream.Collectors
|
||||
import kotlin.jvm.optionals.getOrNull
|
||||
|
||||
@AgentSubModule
|
||||
class ActionScheduler : AgentRunningSubModule<Set<Schedulable>, Void>() {
|
||||
class ActionScheduler : AbstractAgentSubModule<Set<Schedulable>, Void>() {
|
||||
|
||||
@InjectCapability
|
||||
private lateinit var actionCapability: ActionCapability
|
||||
|
||||
@@ -13,7 +13,7 @@ import work.slhaf.partner.core.action.entity.ExecutableAction;
|
||||
import work.slhaf.partner.core.action.entity.PhaserRecord;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||
import work.slhaf.partner.module.common.module.PreRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.action.interventor.entity.InterventionType;
|
||||
import work.slhaf.partner.module.modules.action.interventor.entity.MetaIntervention;
|
||||
import work.slhaf.partner.module.modules.action.interventor.evaluator.InterventionEvaluator;
|
||||
@@ -35,7 +35,7 @@ import java.util.stream.Stream;
|
||||
* 负责识别潜在的行动干预信息,作用于正在进行或已存在的行动池中内容
|
||||
*/
|
||||
@AgentModule(name = "action_identifier", order = 2)
|
||||
public class ActionInterventor extends PreRunningModule implements ActivateModel {
|
||||
public class ActionInterventor extends PreRunningAbstractAgentModuleAbstract implements ActivateModel {
|
||||
|
||||
@InjectModule
|
||||
private InterventionRecognizer interventionRecognizer;
|
||||
|
||||
@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.action.interventor.evaluator;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.api.chat.pojo.Message;
|
||||
@@ -23,7 +23,7 @@ import java.util.concurrent.ExecutorService;
|
||||
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class InterventionEvaluator extends AgentRunningSubModule<EvaluatorInput, EvaluatorResult>
|
||||
public class InterventionEvaluator extends AbstractAgentSubModule<EvaluatorInput, EvaluatorResult>
|
||||
implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
|
||||
@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.action.interventor.recognizer;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.core.action.ActionCapability;
|
||||
@@ -21,7 +21,7 @@ import java.util.concurrent.ExecutorService;
|
||||
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class InterventionRecognizer extends AgentRunningSubModule<RecognizerInput, RecognizerResult> implements ActivateModel {
|
||||
public class InterventionRecognizer extends AbstractAgentSubModule<RecognizerInput, RecognizerResult> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -17,7 +17,7 @@ import work.slhaf.partner.core.action.entity.cache.CacheAdjustMetaData;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||
import work.slhaf.partner.core.perceive.PerceiveCapability;
|
||||
import work.slhaf.partner.module.common.module.PreRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.action.planner.confirmer.ActionConfirmer;
|
||||
import work.slhaf.partner.module.modules.action.planner.confirmer.entity.ConfirmerInput;
|
||||
import work.slhaf.partner.module.modules.action.planner.confirmer.entity.ConfirmerResult;
|
||||
@@ -39,7 +39,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
*/
|
||||
@Slf4j
|
||||
@AgentModule(name = "action_planner", order = 2)
|
||||
public class ActionPlanner extends PreRunningModule {
|
||||
public class ActionPlanner extends PreRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private CognationCapability cognationCapability;
|
||||
|
||||
@@ -4,8 +4,8 @@ import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.api.chat.pojo.Message;
|
||||
@@ -23,7 +23,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
|
||||
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class ActionConfirmer extends AgentRunningSubModule<ConfirmerInput, ConfirmerResult> implements ActivateModel {
|
||||
public class ActionConfirmer extends AbstractAgentSubModule<ConfirmerInput, ConfirmerResult> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
@@ -23,7 +23,7 @@ import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
@AgentSubModule
|
||||
public class ActionEvaluator extends AgentRunningSubModule<EvaluatorInput, List<EvaluatorResult>> implements ActivateModel {
|
||||
public class ActionEvaluator extends AbstractAgentSubModule<EvaluatorInput, List<EvaluatorResult>> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.action.planner.extractor;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.core.action.ActionCapability;
|
||||
@@ -15,7 +15,7 @@ import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class ActionExtractor extends AgentRunningSubModule<ExtractorInput, ExtractorResult> implements ActivateModel {
|
||||
public class ActionExtractor extends AbstractAgentSubModule<ExtractorInput, ExtractorResult> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private ActionCapability actionCapability;
|
||||
|
||||
@@ -5,8 +5,8 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.CoreModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.constant.ChatConstant;
|
||||
@@ -29,7 +29,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
|
||||
@Data
|
||||
@Slf4j
|
||||
@CoreModule
|
||||
public class CoreModel extends AgentRunningModule<PartnerRunningFlowContext> implements ActivateModel {
|
||||
public class CoreModel extends AbstractAgentRunningModule<PartnerRunningFlowContext> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private CognationCapability cognationCapability;
|
||||
|
||||
@@ -14,7 +14,7 @@ import work.slhaf.partner.core.memory.exception.UnExistedTopicException;
|
||||
import work.slhaf.partner.core.memory.pojo.EvaluatedSlice;
|
||||
import work.slhaf.partner.core.memory.pojo.MemoryResult;
|
||||
import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
||||
import work.slhaf.partner.module.common.module.PreRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.memory.selector.evaluator.SliceSelectEvaluator;
|
||||
import work.slhaf.partner.module.modules.memory.selector.evaluator.entity.EvaluatorInput;
|
||||
import work.slhaf.partner.module.modules.memory.selector.extractor.MemorySelectExtractor;
|
||||
@@ -29,7 +29,7 @@ import java.util.*;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentModule(name = "memory_selector", order = 2)
|
||||
public class MemorySelector extends PreRunningModule {
|
||||
public class MemorySelector extends PreRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private MemoryCapability memoryCapability;
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
||||
@@ -32,7 +32,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class SliceSelectEvaluator extends AgentRunningSubModule<EvaluatorInput, List<EvaluatedSlice>> implements ActivateModel {
|
||||
public class SliceSelectEvaluator extends AbstractAgentSubModule<EvaluatorInput, List<EvaluatedSlice>> implements ActivateModel {
|
||||
|
||||
private InteractionThreadPoolExecutor executor;
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.Message;
|
||||
import work.slhaf.partner.api.chat.pojo.MetaMessage;
|
||||
@@ -29,7 +29,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.fixTopicPath;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class MemorySelectExtractor extends AgentRunningSubModule<PartnerRunningFlowContext, ExtractorResult>
|
||||
public class MemorySelectExtractor extends AbstractAgentSubModule<PartnerRunningFlowContext, ExtractorResult>
|
||||
implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
|
||||
@@ -15,7 +15,7 @@ import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||
import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
||||
import work.slhaf.partner.core.perceive.PerceiveCapability;
|
||||
import work.slhaf.partner.module.common.module.PostRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PostRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.memory.updater.summarizer.MultiSummarizer;
|
||||
import work.slhaf.partner.module.modules.memory.updater.summarizer.SingleSummarizer;
|
||||
import work.slhaf.partner.module.modules.memory.updater.summarizer.TotalSummarizer;
|
||||
@@ -34,7 +34,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractUserId;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentModule(name = "memory_updater", order = 7)
|
||||
public class MemoryUpdater extends PostRunningModule {
|
||||
public class MemoryUpdater extends PostRunningAbstractAgentModuleAbstract {
|
||||
|
||||
private static final long SCHEDULED_UPDATE_INTERVAL = 10 * 1000;
|
||||
private static final long UPDATE_TRIGGER_INTERVAL = 60 * 60 * 1000;
|
||||
|
||||
@@ -5,8 +5,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
@@ -23,7 +23,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.fixTopicPath;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class MultiSummarizer extends AgentRunningSubModule<SummarizeInput, SummarizeResult> implements ActivateModel {
|
||||
public class MultiSummarizer extends AbstractAgentSubModule<SummarizeInput, SummarizeResult> implements ActivateModel {
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
|
||||
@@ -4,8 +4,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.constant.ChatConstant;
|
||||
@@ -23,7 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
@Slf4j
|
||||
@Data
|
||||
@AgentSubModule
|
||||
public class SingleSummarizer extends AgentRunningSubModule<List<Message>,Void> implements ActivateModel {
|
||||
public class SingleSummarizer extends AbstractAgentSubModule<List<Message>, Void> implements ActivateModel {
|
||||
|
||||
private InteractionThreadPoolExecutor executor;
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
@@ -19,7 +19,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentSubModule
|
||||
public class TotalSummarizer extends AgentRunningSubModule<HashMap<String, String>, String> implements ActivateModel {
|
||||
public class TotalSummarizer extends AbstractAgentSubModule<HashMap<String, String>, String> implements ActivateModel {
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
|
||||
@@ -6,7 +6,7 @@ import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapabili
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.core.perceive.PerceiveCapability;
|
||||
import work.slhaf.partner.core.perceive.pojo.User;
|
||||
import work.slhaf.partner.module.common.module.PreRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -15,7 +15,7 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
@Setter
|
||||
@AgentModule(name = "perceive_selector",order = 2)
|
||||
public class PerceiveSelector extends PreRunningModule {
|
||||
public class PerceiveSelector extends PreRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private PerceiveCapability perceiveCapability;
|
||||
|
||||
@@ -11,7 +11,7 @@ import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.perceive.PerceiveCapability;
|
||||
import work.slhaf.partner.core.perceive.pojo.User;
|
||||
import work.slhaf.partner.module.common.module.PostRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PostRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.module.modules.perceive.updater.relation_extractor.RelationExtractor;
|
||||
import work.slhaf.partner.module.modules.perceive.updater.relation_extractor.entity.RelationExtractResult;
|
||||
import work.slhaf.partner.module.modules.perceive.updater.static_extractor.StaticMemoryExtractor;
|
||||
@@ -30,7 +30,7 @@ import java.util.concurrent.locks.ReentrantLock;
|
||||
@Slf4j
|
||||
@Data
|
||||
@AgentModule(name = "perceive_updater", order = 7)
|
||||
public class PerceiveUpdater extends PostRunningModule {
|
||||
public class PerceiveUpdater extends PostRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private PerceiveCapability perceiveCapability;
|
||||
|
||||
@@ -4,8 +4,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.api.chat.pojo.Message;
|
||||
@@ -23,7 +23,7 @@ import java.util.List;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@AgentSubModule
|
||||
public class RelationExtractor extends AgentRunningSubModule<PartnerRunningFlowContext, RelationExtractResult> implements ActivateModel {
|
||||
public class RelationExtractor extends AbstractAgentSubModule<PartnerRunningFlowContext, RelationExtractResult> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private CognationCapability cognationCapability;
|
||||
|
||||
@@ -5,8 +5,8 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
@@ -19,7 +19,7 @@ import java.util.HashMap;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@AgentSubModule
|
||||
public class StaticMemoryExtractor extends AgentRunningSubModule<PartnerRunningFlowContext, HashMap<String, String>> implements ActivateModel {
|
||||
public class StaticMemoryExtractor extends AbstractAgentSubModule<PartnerRunningFlowContext, HashMap<String, String>> implements ActivateModel {
|
||||
|
||||
@InjectCapability
|
||||
private CognationCapability cognationCapability;
|
||||
|
||||
@@ -4,7 +4,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
@@ -13,7 +13,7 @@ import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowCon
|
||||
@Slf4j
|
||||
@Data
|
||||
@AgentModule(name = "postprocess_executor", order = 6)
|
||||
public class PostprocessExecutor extends AgentRunningModule<PartnerRunningFlowContext> {
|
||||
public class PostprocessExecutor extends AbstractAgentRunningModule<PartnerRunningFlowContext> {
|
||||
|
||||
private static final int POST_PROCESS_TRIGGER_ROLL_LIMIT = 36;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.perceive.PerceiveCapability;
|
||||
import work.slhaf.partner.core.perceive.pojo.User;
|
||||
import work.slhaf.partner.module.common.module.PreRunningModule;
|
||||
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.subcontext.CoreContext;
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.Map;
|
||||
@Data
|
||||
@Slf4j
|
||||
@AgentModule(name = "preprocess_executor", order = 1)
|
||||
public class PreprocessExecutor extends PreRunningModule {
|
||||
public class PreprocessExecutor extends PreRunningAbstractAgentModuleAbstract {
|
||||
|
||||
@InjectCapability
|
||||
private CognationCapability cognationCapability;
|
||||
|
||||
@@ -4,9 +4,9 @@ import cn.hutool.core.util.ClassUtil;
|
||||
import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
@@ -31,7 +31,7 @@ import static work.slhaf.partner.api.agent.util.AgentUtil.getMethodAnnotationTyp
|
||||
* <ol>
|
||||
* <li>
|
||||
* <p>{@link ModuleCheckFactory#annotationAbstractCheck(Set, Class)}</p>
|
||||
* 所有添加了 {@link AgentModule} 注解的类都将作为Agent的执行模块,为规范模块入口,都必须实现抽象类: {@link AgentRunningModule}; {@link AgentSubModule} 注解所在类则必须实现 {@link AgentRunningSubModule}
|
||||
* 所有添加了 {@link AgentModule} 注解的类都将作为Agent的执行模块,为规范模块入口,都必须实现抽象类: {@link AbstractAgentRunningModule}; {@link AgentSubModule} 注解所在类则必须实现 {@link AbstractAgentSubModule}
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>{@link ModuleCheckFactory#moduleConstructorsCheck(Set)}</p>
|
||||
@@ -60,8 +60,8 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
ExtendedModules extendedModules = getExtendedModules();
|
||||
checkIfClassCorresponds(annotatedModules, extendedModules);
|
||||
//检查注解AgentModule或AgentSubModule所在类是否继承了对应的抽象类
|
||||
annotationAbstractCheck(annotatedModules.moduleTypes(), AgentRunningModule.class);
|
||||
annotationAbstractCheck(annotatedModules.subModuleTypes(), AgentRunningSubModule.class);
|
||||
annotationAbstractCheck(annotatedModules.moduleTypes(), AbstractAgentRunningModule.class);
|
||||
annotationAbstractCheck(annotatedModules.subModuleTypes(), AbstractAgentSubModule.class);
|
||||
//检查AgentModule是否具备无参构造方法
|
||||
moduleConstructorsCheck(annotatedModules.moduleTypes());
|
||||
moduleConstructorsCheck(annotatedModules.subModuleTypes());
|
||||
@@ -72,11 +72,11 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
private ExtendedModules getExtendedModules() {
|
||||
Set<Class<?>> moduleTypes = reflections.getSubTypesOf(AgentRunningModule.class)
|
||||
Set<Class<?>> moduleTypes = reflections.getSubTypesOf(AbstractAgentRunningModule.class)
|
||||
.stream()
|
||||
.filter(ClassUtil::isNormalClass)
|
||||
.collect(Collectors.toSet());
|
||||
Set<Class<?>> subModuleTypes = reflections.getSubTypesOf(AgentRunningSubModule.class)
|
||||
Set<Class<?>> subModuleTypes = reflections.getSubTypesOf(AbstractAgentSubModule.class)
|
||||
.stream()
|
||||
.filter(ClassUtil::isNormalClass)
|
||||
.collect(Collectors.toSet());
|
||||
@@ -156,10 +156,10 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
|
||||
private void checkLocation(Set<Class<?>> types) {
|
||||
for (Class<?> type : types) {
|
||||
if (AgentRunningModule.class.isAssignableFrom(type)) {
|
||||
if (AbstractAgentRunningModule.class.isAssignableFrom(type)) {
|
||||
continue;
|
||||
}
|
||||
if (AgentRunningSubModule.class.isAssignableFrom(type)) {
|
||||
if (AbstractAgentSubModule.class.isAssignableFrom(type)) {
|
||||
continue;
|
||||
}
|
||||
if (ActivateModel.class.isAssignableFrom(type)) {
|
||||
|
||||
@@ -4,9 +4,9 @@ import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.AgentRegisterFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.agent.factory.module.exception.ModuleInitHookExecuteFailedException;
|
||||
import work.slhaf.partner.api.agent.factory.module.pojo.BaseMetaModule;
|
||||
@@ -59,12 +59,12 @@ public class ModuleInitHookExecuteFactory extends AgentBaseFactory {
|
||||
protected void run() {
|
||||
//遍历模块列表,并向上查找@Init注解
|
||||
for (MetaSubModule metaSubModule : subModuleList) {
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaSubModule.getClazz(),AgentRunningModule.class);
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaSubModule.getClazz(), AbstractAgentRunningModule.class);
|
||||
proceedInitMethods(metaSubModule, initHookMethods);
|
||||
}
|
||||
|
||||
for (MetaModule metaModule : moduleList) {
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaModule.getClazz(), AgentRunningSubModule.class);
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaModule.getClazz(), AbstractAgentSubModule.class);
|
||||
proceedInitMethods(metaModule, initHookMethods);
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ public class ModuleInitHookExecuteFactory extends AgentBaseFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private List<MetaMethod> collectInitHookMethods(Class<?> clazz, Class<? extends Module> target) {
|
||||
private List<MetaMethod> collectInitHookMethods(Class<?> clazz, Class<? extends AbstractAgentModule> target) {
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, target);
|
||||
return classes.stream()
|
||||
.map(Class::getDeclaredMethods)
|
||||
|
||||
@@ -10,9 +10,9 @@ import work.slhaf.partner.api.agent.factory.capability.CapabilityCheckFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.CapabilityFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.BeforeExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
|
||||
@@ -96,8 +96,8 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
private void createProxiedInstances() {
|
||||
generateModuleProxy(moduleList, AgentRunningModule.class);
|
||||
generateModuleProxy(subModuleList, AgentRunningSubModule.class);
|
||||
generateModuleProxy(moduleList, AbstractAgentRunningModule.class);
|
||||
generateModuleProxy(subModuleList, AbstractAgentSubModule.class);
|
||||
updateInstanceMap(moduleInstances, moduleList);
|
||||
updateInstanceMap(subModuleInstances, subModuleList);
|
||||
updateCapabilityHolderInstances();
|
||||
@@ -115,7 +115,7 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
|
||||
private void generateModuleProxy(List<? extends BaseMetaModule> list, Class<? extends Module> overrideSource) {
|
||||
private void generateModuleProxy(List<? extends BaseMetaModule> list, Class<? extends AbstractAgentModule> overrideSource) {
|
||||
for (BaseMetaModule module : list) {
|
||||
Class<?> clazz = module.getClazz();
|
||||
try {
|
||||
@@ -128,10 +128,10 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private void generateProxiedInstances(MethodsListRecord record, BaseMetaModule module, Class<? extends Module> overrideSource) {
|
||||
private void generateProxiedInstances(MethodsListRecord record, BaseMetaModule module, Class<? extends AbstractAgentModule> overrideSource) {
|
||||
try {
|
||||
Class<? extends Module> clazz = module.getClazz();
|
||||
Class<? extends Module> proxyClass = new ByteBuddy()
|
||||
Class<? extends AbstractAgentModule> clazz = module.getClazz();
|
||||
Class<? extends AbstractAgentModule> proxyClass = new ByteBuddy()
|
||||
.subclass(clazz)
|
||||
.method(ElementMatchers.isOverriddenFrom(overrideSource))
|
||||
.intercept(MethodDelegation.to(new ModuleProxyInterceptor(record.post, record.pre)))
|
||||
@@ -159,7 +159,7 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
//获取该类本身的hook逻辑
|
||||
collectHookMethods(post, pre, clazz);
|
||||
//获取它所继承、实现的抽象类或接口, 以Module为终点,收集继承链上所有父类和接口
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, Module.class);
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, AbstractAgentModule.class);
|
||||
//获取这些类中的hook逻辑
|
||||
collectHookMethods(post, pre, classes);
|
||||
return new MethodsListRecord(post, pre);
|
||||
|
||||
@@ -5,8 +5,8 @@ import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.CoreModule;
|
||||
@@ -60,34 +60,7 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
setSubModuleList();
|
||||
}
|
||||
|
||||
private void setSubModuleList() {
|
||||
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
|
||||
for (Class<?> subModule : subModules) {
|
||||
if (!ClassUtil.isNormalClass(subModule)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AgentRunningSubModule> clazz = subModule.asSubclass(AgentRunningSubModule.class);
|
||||
MetaSubModule metaSubModule = new MetaSubModule();
|
||||
metaSubModule.setClazz(clazz);
|
||||
subModuleList.add(metaSubModule);
|
||||
}
|
||||
}
|
||||
|
||||
private void setModuleList() {
|
||||
//反射扫描获取@AgentModule所在类, 该部分为Agent流程执行模块
|
||||
Set<Class<?>> modules = reflections.getTypesAnnotatedWith(AgentModule.class);
|
||||
for (Class<?> module : modules) {
|
||||
if (!ClassUtil.isNormalClass(module)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AgentRunningModule> clazz = module.asSubclass(AgentRunningModule.class);
|
||||
MetaModule metaModule = getMetaModule(clazz);
|
||||
moduleList.add(metaModule);
|
||||
}
|
||||
moduleList.sort(Comparator.comparing(MetaModule::getOrder));
|
||||
}
|
||||
|
||||
private static MetaModule getMetaModule(Class<? extends AgentRunningModule> clazz) {
|
||||
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
|
||||
MetaModule metaModule = new MetaModule();
|
||||
AgentModule agentModule;
|
||||
if (clazz.isAnnotationPresent(CoreModule.class)){
|
||||
@@ -101,4 +74,31 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
return metaModule;
|
||||
}
|
||||
|
||||
private void setSubModuleList() {
|
||||
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
|
||||
for (Class<?> subModule : subModules) {
|
||||
if (!ClassUtil.isNormalClass(subModule)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AbstractAgentSubModule> clazz = subModule.asSubclass(AbstractAgentSubModule.class);
|
||||
MetaSubModule metaSubModule = new MetaSubModule();
|
||||
metaSubModule.setClazz(clazz);
|
||||
subModuleList.add(metaSubModule);
|
||||
}
|
||||
}
|
||||
|
||||
private void setModuleList() {
|
||||
//反射扫描获取@AgentModule所在类, 该部分为Agent流程执行模块
|
||||
Set<Class<?>> modules = reflections.getTypesAnnotatedWith(AgentModule.class);
|
||||
for (Class<?> module : modules) {
|
||||
if (!ClassUtil.isNormalClass(module)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AbstractAgentRunningModule> clazz = module.asSubclass(AbstractAgentRunningModule.class);
|
||||
MetaModule metaModule = getMetaModule(clazz);
|
||||
moduleList.add(metaModule);
|
||||
}
|
||||
moduleList.sort(Comparator.comparing(MetaModule::getOrder));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.Model;
|
||||
/**
|
||||
* 模块基类
|
||||
*/
|
||||
public abstract class Module {
|
||||
public abstract class AbstractAgentModule {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -11,7 +11,7 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowC
|
||||
* 流程执行模块基类
|
||||
*/
|
||||
@Slf4j
|
||||
public abstract class AgentRunningModule<C extends RunningFlowContext> extends Module {
|
||||
public abstract class AbstractAgentRunningModule<C extends RunningFlowContext> extends AbstractAgentModule {
|
||||
public abstract void execute(C context);
|
||||
|
||||
@BeforeExecute
|
||||
@@ -30,7 +30,7 @@ public abstract class AgentRunningModule<C extends RunningFlowContext> extends M
|
||||
} else if (this.getClass().isAnnotationPresent(CoreModule.class)) {
|
||||
return CoreModule.class.getAnnotation(AgentModule.class).name();
|
||||
}else {
|
||||
return "Unknown Module";
|
||||
return "Unknown AbstractAgentModule";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.abstracts;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public abstract class AbstractAgentSubModule<I, O> extends AbstractAgentModule {
|
||||
|
||||
public abstract O execute(I data);
|
||||
|
||||
}
|
||||
@@ -80,11 +80,11 @@ public interface ActivateModel {
|
||||
* @return 持有的model实例
|
||||
*/
|
||||
default Model getModel() {
|
||||
return ((Module) this).getModel();
|
||||
return ((AbstractAgentModule) this).getModel();
|
||||
}
|
||||
|
||||
default void setModel(Model model) {
|
||||
((Module) this).setModel(model);
|
||||
((AbstractAgentModule) this).setModel(model);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.abstracts;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.BeforeExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.CoreModule;
|
||||
|
||||
@Slf4j
|
||||
public abstract class AgentRunningSubModule<I, O> extends Module {
|
||||
|
||||
public abstract O execute(I data);
|
||||
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import java.lang.annotation.Target;
|
||||
* 仅适用于以下类中的方法:
|
||||
* 1. <code>@AgentModule</code>注解所在类
|
||||
* 2. <code>ActivateModel</code>子类
|
||||
* 3. <code>AgentRunningModule</code>或者<code>AgentRunningSubModule</code>子类
|
||||
* 3. <code>AbstractAgentRunningModule</code>或者<code>AbstractAgentSubModule</code>子类
|
||||
*/
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
|
||||
* 仅适用于以下类中的方法:
|
||||
* 1. <code>@AgentModule</code>注解所在类
|
||||
* 2. <code>ActivateModel</code>子类
|
||||
* 3. <code>AgentRunningModule</code>或者<code>AgentRunningSubModule</code>子类
|
||||
* 3. <code>AbstractAgentRunningModule</code>或者<code>AbstractAgentSubModule</code>子类
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
|
||||
@Data
|
||||
public abstract class BaseMetaModule <C extends Module> {
|
||||
public abstract class BaseMetaModule<C extends AbstractAgentModule> {
|
||||
private Class<? extends C> clazz;
|
||||
private C instance;
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MetaModule extends BaseMetaModule<AgentRunningModule>{
|
||||
public class MetaModule extends BaseMetaModule<AbstractAgentRunningModule> {
|
||||
private String name;
|
||||
private int order;
|
||||
private boolean enabled = true;
|
||||
|
||||
@@ -2,9 +2,9 @@ package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MetaSubModule extends BaseMetaModule<AgentRunningSubModule>{
|
||||
public class MetaSubModule extends BaseMetaModule<AbstractAgentSubModule> {
|
||||
}
|
||||
|
||||
@@ -4,21 +4,21 @@ import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.implementation.MethodDelegation;
|
||||
import net.bytebuddy.matcher.ElementMatchers;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class ModuleProxyTest {
|
||||
public class AbstractAgentModuleProxyTest {
|
||||
@Test
|
||||
public void test() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException, IOException, ClassNotFoundException {
|
||||
Class<? extends AgentRunningModule> clazz = new ByteBuddy().subclass(MyAgentRunningModule.class)
|
||||
.method(ElementMatchers.isOverriddenFrom(AgentRunningModule.class))
|
||||
Class<? extends AbstractAgentRunningModule> clazz = new ByteBuddy().subclass(MyAbstractAgentRunningAbstractAgentModule.class)
|
||||
.method(ElementMatchers.isOverriddenFrom(AbstractAgentRunningModule.class))
|
||||
.intercept(MethodDelegation.to(
|
||||
new MyModuleProxyInterceptor()
|
||||
))
|
||||
.make()
|
||||
.load(ModuleProxyTest.class.getClassLoader())
|
||||
.load(AbstractAgentModuleProxyTest.class.getClassLoader())
|
||||
.getLoaded();
|
||||
clazz.getConstructor().newInstance().execute(null);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package module;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
|
||||
|
||||
public class MyAbstractAgentRunningAbstractAgentModule extends AbstractAgentRunningModule {
|
||||
@Override
|
||||
public void execute(RunningFlowContext context) {
|
||||
System.out.println("MyAbstractAgentRunningAbstractAgentModule");
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package module;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
|
||||
|
||||
public class MyAgentRunningModule extends AgentRunningModule {
|
||||
@Override
|
||||
public void execute(RunningFlowContext context) {
|
||||
System.out.println("MyAgentRunningModule");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user