diff --git a/.gitignore b/.gitignore index cdaaab3c..7d2a2b10 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ build/ /Partner-Core/src/main/java/src/main/resources/prompt/module/memory/topic_extractor.json.bak /backup/ /Partner-Main/src/test/java/text/test.json +/CLAUDE.md diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/Agent.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/Agent.java index d09d2f22..45d4fc5c 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/Agent.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/Agent.java @@ -1,77 +1,114 @@ package work.slhaf.partner.api.agent; import work.slhaf.partner.api.agent.factory.AgentRegisterFactory; -import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; -import work.slhaf.partner.api.agent.flow.AgentRunningFlow; -import work.slhaf.partner.api.agent.flow.entity.RunningFlowContext; import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; import work.slhaf.partner.api.agent.runtime.exception.AgentExceptionCallback; import work.slhaf.partner.api.agent.runtime.exception.AgentLaunchFailedException; import work.slhaf.partner.api.agent.runtime.exception.GlobalExceptionHandler; +import work.slhaf.partner.api.agent.runtime.interaction.AgentGateway; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -/** - * Agent启动类 - */ -public class Agent { +public final class Agent { - private final List runners = new ArrayList<>(); - private final Class applicationClass; - private final RunningFlowContext interactionContext; - - private Agent(Class clazz, RunningFlowContext interactionContext) { - this.applicationClass = clazz; - this.interactionContext = interactionContext; - } - - public static Agent newAgent(Class clazz, RunningFlowContext interactionContext) { - if (clazz == null || interactionContext == null) { + public static AgentGatewayStep newAgent(Class clazz) { + if (clazz == null) { throw new AgentLaunchFailedException("Agent class 和 interaction flow context 不能为 null"); } - return new Agent(clazz, interactionContext); + return new AgentApp(clazz); } - public void run() { - List moduleList = AgentRegisterFactory.launch(applicationClass.getPackage().getName()); - AgentRunningFlow.launch(moduleList, interactionContext); - launchRunners(); + public interface AgentGatewayStep { + AgentStep setGateway(AgentGateway gateway); + } + + public interface AgentStep { + AgentStep addBeforeLaunchRunners(Runnable... runners); + + AgentStep addAfterLaunchRunners(Runnable... runners); + + AgentStep setAgentConfigManager(AgentConfigManager agentConfigManager); + + AgentStep setAgentExceptionCallback(AgentExceptionCallback agentExceptionCallback); + + AgentStep addScanPackage(String packageName); + + AgentStep addScanDir(String externalPackagePath); + + void launch(); } - private void launchRunners() { - ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor(); - for (Runnable runner : runners) { - executorService.execute(runner); + public static class AgentApp implements AgentStep, AgentGatewayStep { + + private final ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor(); + private final List beforeLaunchRunners = new ArrayList<>(); + private final List afterLaunchRunners = new ArrayList<>(); + private AgentGateway gateway; + private final Class applicationClass; + + private AgentApp(Class clazz) { + this.applicationClass = clazz; } - } - public Agent addRunners(Runnable... runnable) { - runners.addAll(List.of(runnable)); - return this; - } + @Override + public AgentStep setGateway(AgentGateway gateway) { + this.gateway = gateway; + return this; + } - public Agent setAgentConfigManager(AgentConfigManager agentConfigManager) { - AgentConfigManager.setINSTANCE(agentConfigManager); - return this; - } + @Override + public AgentStep addBeforeLaunchRunners(Runnable... runners) { + this.beforeLaunchRunners.addAll(List.of(runners)); + return this; + } - public Agent setAgentExceptionCallback(AgentExceptionCallback agentExceptionCallback){ - GlobalExceptionHandler.setExceptionCallback(agentExceptionCallback); - return this; - } + @Override + public AgentStep addAfterLaunchRunners(Runnable... runners) { + this.afterLaunchRunners.addAll(List.of(runners)); + return this; + } - public Agent addScanPackage(String packageName) { - AgentRegisterFactory.addScanPackage(packageName); - return this; - } + @Override + public AgentStep setAgentConfigManager(AgentConfigManager agentConfigManager) { + AgentConfigManager.setINSTANCE(agentConfigManager); + return this; + } - public Agent addScanDir(String externalPackagePath) { - AgentRegisterFactory.addScanDir(externalPackagePath); - return this; + @Override + public AgentStep setAgentExceptionCallback(AgentExceptionCallback agentExceptionCallback) { + GlobalExceptionHandler.setExceptionCallback(agentExceptionCallback); + return this; + } + + @Override + public AgentStep addScanPackage(String packageName) { + AgentRegisterFactory.addScanPackage(packageName); + return this; + } + + @Override + public AgentStep addScanDir(String externalPackagePath) { + AgentRegisterFactory.addScanDir(externalPackagePath); + return this; + } + + @Override + public void launch() { + launchRunners(beforeLaunchRunners); + AgentRegisterFactory.launch(applicationClass.getPackageName()); + executorService.execute(() -> gateway.launch()); + launchRunners(afterLaunchRunners); + } + + private void launchRunners(List runners) { + for (Runnable runner : runners) { + executorService.execute(runner); + } + } } } diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java index 9f41a67a..bccfa344 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java @@ -1,5 +1,6 @@ package work.slhaf.partner.api.agent.factory; +import cn.hutool.core.bean.BeanUtil; import org.reflections.util.ClasspathHelper; import work.slhaf.partner.api.agent.factory.capability.CapabilityCheckFactory; import work.slhaf.partner.api.agent.factory.capability.CapabilityInjectFactory; @@ -13,6 +14,7 @@ import work.slhaf.partner.api.agent.factory.module.ModuleInitHookExecuteFactory; import work.slhaf.partner.api.agent.factory.module.ModuleProxyFactory; import work.slhaf.partner.api.agent.factory.module.ModuleRegisterFactory; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; +import work.slhaf.partner.api.agent.runtime.data.AgentContext; import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; import java.io.File; @@ -27,7 +29,7 @@ public class AgentRegisterFactory { private AgentRegisterFactory() { } - public static List launch(String packageName) { + public static void launch(String packageName) { urls.addAll(packageNameToURL(packageName)); AgentRegisterContext registerContext = new AgentRegisterContext(urls); //流程 @@ -47,7 +49,9 @@ public class AgentRegisterFactory { new ModuleInitHookExecuteFactory().execute(registerContext); List moduleList = registerContext.getModuleFactoryContext().getModuleList(); - return AgentConfigManager.INSTANCE.moduleEnabledStatusFilter(moduleList); + AgentConfigManager.INSTANCE.moduleEnabledStatusFilterAndRecord(moduleList); + + BeanUtil.copyProperties(registerContext, AgentContext.INSTANCE); } @@ -89,5 +93,4 @@ public class AgentRegisterFactory { return ClasspathHelper.forPackage(packageName).stream().toList(); } - } diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/config/ConfigLoaderFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/config/ConfigLoaderFactory.java index deeb419c..d3fb05d6 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/config/ConfigLoaderFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/config/ConfigLoaderFactory.java @@ -1,6 +1,5 @@ package work.slhaf.partner.api.agent.factory.config; -import lombok.Setter; import work.slhaf.partner.api.agent.factory.AgentBaseFactory; import work.slhaf.partner.api.agent.factory.config.pojo.ModelConfig; import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext; diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleCheckFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleCheckFactory.java index 61695d3c..c8eccff5 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleCheckFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleCheckFactory.java @@ -9,10 +9,10 @@ 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.Init; import work.slhaf.partner.api.agent.factory.module.exception.ModuleCheckException; -import work.slhaf.partner.api.agent.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningModule; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import java.lang.reflect.Method; import java.util.HashSet; @@ -134,7 +134,7 @@ public class ModuleCheckFactory extends AgentBaseFactory { if (type.isAnnotation()) { continue; } - if (type.isAssignableFrom(AgentRunningModule.class)) { + if (AgentRunningModule.class.isAssignableFrom(type) && ClassUtil.isNormalClass(type)) { continue; } throw new ModuleCheckException("存在未继承AgentInteractionModule.class的AgentModule实现: " + type.getSimpleName()); diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleInitHookExecuteFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleInitHookExecuteFactory.java index 7108641c..b3c67da5 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleInitHookExecuteFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleInitHookExecuteFactory.java @@ -7,7 +7,7 @@ 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.MetaMethod; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; import java.lang.reflect.InvocationTargetException; import java.util.Arrays; diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleProxyFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleProxyFactory.java index 7f9732c1..a53c737f 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleProxyFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleProxyFactory.java @@ -13,7 +13,7 @@ import work.slhaf.partner.api.agent.factory.module.exception.ModuleInstanceGener import work.slhaf.partner.api.agent.factory.module.exception.ModuleProxyGenerateFailedException; import work.slhaf.partner.api.agent.factory.module.pojo.MetaMethod; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -57,8 +57,8 @@ public class ModuleProxyFactory extends AgentBaseFactory { private void generateProxiedInstances(MethodsListRecord record, MetaModule metaModule) { try { - Class clazz = metaModule.getClazz(); - Class proxyClass = new ByteBuddy() + Class clazz = metaModule.getClazz(); + Class proxyClass = new ByteBuddy() .subclass(clazz) .method(ElementMatchers.isOverriddenFrom(AgentRunningModule.class)) .intercept(MethodDelegation.to(new ModuleProxyInterceptor(record.post, record.pre))) @@ -137,8 +137,8 @@ public class ModuleProxyFactory extends AgentBaseFactory { private void generateInstances() { for (MetaModule metaModule : moduleList) { try { - Class clazz = metaModule.getClazz(); - Object instance = clazz.getConstructor().newInstance(); + Class clazz = metaModule.getClazz(); + AgentRunningModule instance = clazz.getConstructor().newInstance(); metaModule.setInstance(instance); } catch (Exception e) { throw new ModuleInstanceGenerateFailedException("模块实例构造失败:" + e.getMessage()); @@ -148,17 +148,17 @@ public class ModuleProxyFactory extends AgentBaseFactory { private record ModuleProxyInterceptor(List postHookMethods, List preHookMethods) { @RuntimeType - public Object intercept(@Origin Method method, @AllArguments Object[] allArguments, @SuperCall Callable zuper, @This Object proxy) throws Exception { - for (MetaMethod metaMethod : preHookMethods) { - metaMethod.getMethod().invoke(proxy); - } - Object res = zuper.call(); - for (MetaMethod metaMethod : postHookMethods) { - metaMethod.getMethod().invoke(proxy); - } - return res; + public Object intercept(@Origin Method method, @AllArguments Object[] allArguments, @SuperCall Callable zuper, @This Object proxy) throws Exception { + for (MetaMethod metaMethod : preHookMethods) { + metaMethod.getMethod().invoke(proxy); } + Object res = zuper.call(); + for (MetaMethod metaMethod : postHookMethods) { + metaMethod.getMethod().invoke(proxy); + } + return res; } + } record MethodsListRecord(List post, List pre) { public MethodsListRecord { diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleRegisterFactory.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleRegisterFactory.java index 2e1b5bd9..0a6df073 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleRegisterFactory.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/ModuleRegisterFactory.java @@ -1,11 +1,13 @@ package work.slhaf.partner.api.agent.factory.module; +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.context.ModuleFactoryContext; import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; import java.util.Comparator; import java.util.List; @@ -35,14 +37,17 @@ public class ModuleRegisterFactory extends AgentBaseFactory { //反射扫描获取@AgentModule所在类, 该部分为Agent流程执行模块 Set> modules = reflections.getTypesAnnotatedWith(AgentModule.class); for (Class module : modules) { - AgentModule agentModule = module.getAnnotation(AgentModule.class); + if (!ClassUtil.isNormalClass(module)) { + continue; + } + Class clazz = module.asSubclass(AgentRunningModule.class); + AgentModule agentModule = clazz.getAnnotation(AgentModule.class); MetaModule metaModule = new MetaModule(); metaModule.setName(agentModule.name()); metaModule.setOrder(agentModule.order()); - metaModule.setClazz(module); + metaModule.setClazz(clazz); moduleList.add(metaModule); } moduleList.sort(Comparator.comparing(MetaModule::getOrder)); - } } diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/pojo/MetaModule.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/pojo/MetaModule.java index 58f3494c..fcb5babe 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/pojo/MetaModule.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/factory/module/pojo/MetaModule.java @@ -1,12 +1,13 @@ package work.slhaf.partner.api.agent.factory.module.pojo; import lombok.Data; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; @Data public class MetaModule { private String name; private int order; - private Class clazz; - private Object instance; + private Class clazz; + private AgentRunningModule instance; private boolean enabled = true; } diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/AgentRunningFlow.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/AgentRunningFlow.java deleted file mode 100644 index 2083fcb2..00000000 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/AgentRunningFlow.java +++ /dev/null @@ -1,23 +0,0 @@ -package work.slhaf.partner.api.agent.flow; - -import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; -import work.slhaf.partner.api.agent.flow.entity.RunningFlowContext; -import work.slhaf.partner.api.agent.runtime.exception.GlobalExceptionHandler; - -import java.util.List; - -/** - * Agent执行流程 - */ -public class AgentRunningFlow { - - private AgentRunningFlow(){} - - public static void launch(List moduleList, RunningFlowContext interactionContext){ - try { - //流程执行启动,需考虑模块热插拔,可结合http调整模块启用情况,并序列化至本地或数据库中 - }catch (Exception e){ - GlobalExceptionHandler.INSTANCE.handle(e); - } - } -} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningModule.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningModule.java deleted file mode 100644 index f0bef0bf..00000000 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningModule.java +++ /dev/null @@ -1,10 +0,0 @@ -package work.slhaf.partner.api.agent.flow.abstracts; - -import work.slhaf.partner.api.agent.flow.entity.RunningFlowContext; - -/** - * 流程执行模块基类 - */ -public abstract class AgentRunningModule extends Module { - public abstract void execute(RunningFlowContext context); -} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java index f238e302..b348029a 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/config/AgentConfigManager.java @@ -1,6 +1,6 @@ package work.slhaf.partner.api.agent.runtime.config; -import lombok.Getter; +import lombok.Data; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import work.slhaf.partner.api.agent.factory.config.exception.ConfigNotExistException; @@ -16,21 +16,16 @@ import java.util.List; import java.util.Set; @Slf4j +@Data public abstract class AgentConfigManager { @Setter public static AgentConfigManager INSTANCE; private static final String DEFAULT_KEY = "default"; - @Getter protected HashMap modelConfigMap; - @Getter protected HashMap> modelPromptMap; - - @Getter - @Setter protected HashMap moduleEnabledStatus; - protected List moduleList; public void load() { @@ -48,7 +43,7 @@ public abstract class AgentConfigManager { protected abstract HashMap loadModuleEnabledStatusMap(); - public List moduleEnabledStatusFilter(List moduleList) { + public void moduleEnabledStatusFilterAndRecord(List moduleList) { this.moduleList = moduleList; this.moduleEnabledStatus = loadModuleEnabledStatusMap(); @@ -65,7 +60,6 @@ public abstract class AgentConfigManager { if (unmatch) { dumpModuleEnabledStatus(); } - return moduleList; } /** diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/AgentContext.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/data/AgentContext.java similarity index 84% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/AgentContext.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/data/AgentContext.java index 0ee45ec0..883224a1 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/AgentContext.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/data/AgentContext.java @@ -1,4 +1,4 @@ -package work.slhaf.partner.api.agent.runtime; +package work.slhaf.partner.api.agent.runtime.data; import lombok.Data; import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; @@ -10,6 +10,9 @@ import java.util.function.Function; @Data public class AgentContext { + + public static AgentContext INSTANCE = new AgentContext(); + private HashMap> methodsRouterTable; private HashMap> coordinatedMethodsRouterTable; private HashMap, Object> capabilityCoreInstances; diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentGateway.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentGateway.java new file mode 100644 index 00000000..9f2d2977 --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentGateway.java @@ -0,0 +1,12 @@ +package work.slhaf.partner.api.agent.runtime.interaction; + +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData; +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; + +public interface AgentGateway { + + void launch(); + + AgentInteractionAdapter adapter(); +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java new file mode 100644 index 00000000..6946e812 --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/AgentInteractionAdapter.java @@ -0,0 +1,41 @@ +package work.slhaf.partner.api.agent.runtime.interaction; + +import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; +import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData; +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData; +import work.slhaf.partner.api.agent.runtime.interaction.flow.AgentRunningFlow; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; + +import java.util.List; + +public abstract class AgentInteractionAdapter { + + private static AgentInteractionAdapter INSTANCE; + + protected AgentRunningFlow agentRunningFlow = new AgentRunningFlow<>(); + protected List moduleList = AgentConfigManager.INSTANCE.getModuleList(); + + public void receive(I inputData) { + C finalInputData = parseInputData(inputData); + C outputContext = agentRunningFlow.launch(moduleList, finalInputData); + O outputData = parseOutputData(outputContext); + send(outputData); + } + + protected abstract O parseOutputData(C outputContext); + + protected abstract C parseInputData(I inputData); + + public abstract void send(O outputData); + + public static AgentInteractionAdapter getInstance() { + @SuppressWarnings("unchecked") + AgentInteractionAdapter instance = (AgentInteractionAdapter) INSTANCE; + return instance; + } + + public static void setInstance(AgentInteractionAdapter instance) { + INSTANCE = instance; + } +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentInputData.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentInputData.java new file mode 100644 index 00000000..f92a889c --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentInputData.java @@ -0,0 +1,9 @@ +package work.slhaf.partner.api.agent.runtime.interaction.data; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public abstract class AgentInputData extends InteractionData{ +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentOutputData.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentOutputData.java new file mode 100644 index 00000000..c3b8cbcb --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/AgentOutputData.java @@ -0,0 +1,16 @@ +package work.slhaf.partner.api.agent.runtime.interaction.data; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public abstract class AgentOutputData extends InteractionData{ + + private int code; + + public static class StatusCode { + public static final int SUCCESS = 1; + public static final int FAILED = 0; + } +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/InteractionData.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/InteractionData.java new file mode 100644 index 00000000..edfeb303 --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/data/InteractionData.java @@ -0,0 +1,12 @@ +package work.slhaf.partner.api.agent.runtime.interaction.data; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public abstract class InteractionData { + protected String userInfo; + protected String content; + protected LocalDateTime dateTime; +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/AgentRunningFlow.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/AgentRunningFlow.java new file mode 100644 index 00000000..a206856f --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/AgentRunningFlow.java @@ -0,0 +1,25 @@ +package work.slhaf.partner.api.agent.runtime.interaction.flow; + +import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule; +import work.slhaf.partner.api.agent.runtime.exception.GlobalExceptionHandler; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; + +import java.util.List; + +/** + * Agent执行流程 + */ +public class AgentRunningFlow { + + public C launch(List moduleList, C interactionContext){ + try { + //流程执行启动 + for (MetaModule metaModule : moduleList) { + metaModule.getInstance().execute(interactionContext); + } + }catch (Exception e){ + GlobalExceptionHandler.INSTANCE.handle(e); + } + return interactionContext; + } +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/ActivateModel.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/ActivateModel.java similarity index 95% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/ActivateModel.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/ActivateModel.java index 5c2bd467..78f7d900 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/ActivateModel.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/ActivateModel.java @@ -1,10 +1,10 @@ -package work.slhaf.partner.api.agent.flow.abstracts; +package work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts; import cn.hutool.core.bean.BeanUtil; import work.slhaf.partner.api.agent.factory.config.pojo.ModelConfig; import work.slhaf.partner.api.agent.factory.module.annotation.Init; -import work.slhaf.partner.api.agent.flow.entity.Model; import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.Model; import work.slhaf.partner.api.chat.ChatClient; import work.slhaf.partner.api.chat.constant.ChatConstant; import work.slhaf.partner.api.chat.pojo.ChatResponse; diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningModule.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningModule.java new file mode 100644 index 00000000..6ed3a7db --- /dev/null +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningModule.java @@ -0,0 +1,10 @@ +package work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts; + +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; + +/** + * 流程执行模块基类 + */ +public abstract class AgentRunningModule extends Module { + public abstract void execute(RunningFlowContext context); +} diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningSubModule.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningSubModule.java similarity index 73% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningSubModule.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningSubModule.java index 0ea53a1a..2278a835 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/AgentRunningSubModule.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/AgentRunningSubModule.java @@ -1,4 +1,4 @@ -package work.slhaf.partner.api.agent.flow.abstracts; +package work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts; /** diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/Module.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/Module.java similarity index 64% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/Module.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/Module.java index 844625d3..d6921543 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/abstracts/Module.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/abstracts/Module.java @@ -1,9 +1,9 @@ -package work.slhaf.partner.api.agent.flow.abstracts; +package work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts; import lombok.Getter; import lombok.Setter; import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityHolder; -import work.slhaf.partner.api.agent.flow.entity.Model; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.Model; /** * 模块基类 diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/Model.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/Model.java similarity index 80% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/Model.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/Model.java index fec5a7b3..fab5e01b 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/Model.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/Model.java @@ -1,4 +1,4 @@ -package work.slhaf.partner.api.agent.flow.entity; +package work.slhaf.partner.api.agent.runtime.interaction.flow.entity; import lombok.Data; import work.slhaf.partner.api.chat.ChatClient; diff --git a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/RunningFlowContext.java b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/RunningFlowContext.java similarity index 59% rename from Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/RunningFlowContext.java rename to Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/RunningFlowContext.java index ba676eab..0fe991a4 100644 --- a/Partner-Api/src/main/java/work/slhaf/partner/api/agent/flow/entity/RunningFlowContext.java +++ b/Partner-Api/src/main/java/work/slhaf/partner/api/agent/runtime/interaction/flow/entity/RunningFlowContext.java @@ -1,4 +1,4 @@ -package work.slhaf.partner.api.agent.flow.entity; +package work.slhaf.partner.api.agent.runtime.interaction.flow.entity; import lombok.Data; diff --git a/Partner-Api/src/test/java/module/ModuleProxyTest.java b/Partner-Api/src/test/java/module/ModuleProxyTest.java index f35d58e3..b5c67a24 100644 --- a/Partner-Api/src/test/java/module/ModuleProxyTest.java +++ b/Partner-Api/src/test/java/module/ModuleProxyTest.java @@ -4,7 +4,7 @@ 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.flow.abstracts.AgentRunningModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; import java.lang.reflect.InvocationTargetException; diff --git a/Partner-Api/src/test/java/module/MyAgentRunningModule.java b/Partner-Api/src/test/java/module/MyAgentRunningModule.java index 777f56f2..5253da59 100644 --- a/Partner-Api/src/test/java/module/MyAgentRunningModule.java +++ b/Partner-Api/src/test/java/module/MyAgentRunningModule.java @@ -1,7 +1,7 @@ package module; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningModule; -import work.slhaf.partner.api.agent.flow.entity.RunningFlowContext; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; public class MyAgentRunningModule extends AgentRunningModule { @Override diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/core/CoreModel.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/core/CoreModel.java index c6451fc0..8ac206ed 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/core/CoreModel.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/core/CoreModel.java @@ -5,7 +5,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.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; import work.slhaf.partner.api.chat.constant.ChatConstant; import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.api.chat.pojo.Message; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java index 4c3a24f5..7092f7cd 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor; import work.slhaf.partner.core.cognation.common.pojo.MemoryResult; import work.slhaf.partner.core.cognation.common.pojo.MemorySliceResult; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/extractor/MemorySelectExtractor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/extractor/MemorySelectExtractor.java index 22259c6e..2c5073e8 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/extractor/MemorySelectExtractor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/selector/extractor/MemorySelectExtractor.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.pojo.Message; import work.slhaf.partner.api.chat.pojo.MetaMessage; import work.slhaf.partner.common.exception_handler.GlobalExceptionHandler; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MemorySummarizer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MemorySummarizer.java index 35e0f083..a443fe9a 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MemorySummarizer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MemorySummarizer.java @@ -3,7 +3,7 @@ package work.slhaf.partner.module.modules.memory.updater.summarizer; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor; import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeInput; import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeResult; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MultiSummarizer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MultiSummarizer.java index 0d1b37fe..46df6584 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MultiSummarizer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/MultiSummarizer.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeInput; import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeResult; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/SingleSummarizer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/SingleSummarizer.java index 40f8c0cc..688d9025 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/SingleSummarizer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/SingleSummarizer.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.constant.ChatConstant; import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.api.chat.pojo.Message; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/TotalSummarizer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/TotalSummarizer.java index aa714c9e..469ded60 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/TotalSummarizer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/memory/updater/summarizer/TotalSummarizer.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.pojo.ChatResponse; import java.util.HashMap; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/relation_extractor/RelationExtractor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/relation_extractor/RelationExtractor.java index 615e9d83..79b25c77 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/relation_extractor/RelationExtractor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/relation_extractor/RelationExtractor.java @@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.perceive.updater.relation_extractor; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.EqualsAndHashCode; -import work.slhaf.partner.api.agent.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.api.chat.pojo.Message; import work.slhaf.partner.core.cognation.cognation.CognationCapability; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java index 6d5786ff..125189ff 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java @@ -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.flow.abstracts.ActivateModel; -import work.slhaf.partner.api.agent.flow.abstracts.AgentRunningSubModule; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; +import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule; import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.core.cognation.cognation.CognationCapability; import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability; diff --git a/Partner-Test-Demo/src/main/java/work/slhaf/demo/AgentDemoApplication.java b/Partner-Test-Demo/src/main/java/work/slhaf/demo/AgentDemoApplication.java index f0499b0c..2a2b1926 100644 --- a/Partner-Test-Demo/src/main/java/work/slhaf/demo/AgentDemoApplication.java +++ b/Partner-Test-Demo/src/main/java/work/slhaf/demo/AgentDemoApplication.java @@ -1,12 +1,25 @@ package work.slhaf.demo; -import work.slhaf.demo.flow.AgentDemoFlowContext; import work.slhaf.partner.api.agent.Agent; +import work.slhaf.partner.api.agent.runtime.interaction.AgentGateway; +import work.slhaf.partner.api.agent.runtime.interaction.AgentInteractionAdapter; +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData; +import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; public class AgentDemoApplication { public static void main(String[] args) { - Agent.newAgent(AgentDemoApplication.class, new AgentDemoFlowContext()) - .run(); + Agent.newAgent(AgentDemoApplication.class).setGateway(new AgentGateway() { + @Override + public void launch() { + + } + + @Override + public AgentInteractionAdapter adapter() { + return null; + } + }).launch(); } } \ No newline at end of file diff --git a/Partner-Test-Demo/src/main/java/work/slhaf/demo/flow/AgentDemoFlowContext.java b/Partner-Test-Demo/src/main/java/work/slhaf/demo/flow/AgentDemoFlowContext.java index 7e979814..27b395a5 100644 --- a/Partner-Test-Demo/src/main/java/work/slhaf/demo/flow/AgentDemoFlowContext.java +++ b/Partner-Test-Demo/src/main/java/work/slhaf/demo/flow/AgentDemoFlowContext.java @@ -1,6 +1,6 @@ package work.slhaf.demo.flow; -import work.slhaf.partner.api.agent.flow.entity.RunningFlowContext; +import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext; public class AgentDemoFlowContext extends RunningFlowContext { }