diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java
index 6047e4c4..3a341de8 100644
--- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java
+++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/AgentRegisterFactory.java
@@ -48,6 +48,7 @@ public class AgentRegisterFactory {
new ComponentInjectorFactory().execute(registerContext);
//4. 加载检查Capability层内容后进行能力层的内容注册
new CapabilityAnnotationValidatorFactory().execute(registerContext);
+ //5. 根据 Capability 相关的扫描结果构造 Capability 实例
new CapabilityRegisterFactory().execute(registerContext);
//. 先一步注入Capability,避免因前hook逻辑存在针对能力的引用而报错
new CapabilityInjectFactory().execute(registerContext);
diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityRegisterFactory.java b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityRegisterFactory.java
deleted file mode 100644
index 8b47b6bb..00000000
--- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityRegisterFactory.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package work.slhaf.partner.api.agent.factory.capability;
-
-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.capability.annotation.*;
-import work.slhaf.partner.api.agent.factory.capability.exception.CapabilityCoreInstancesCreateFailedException;
-import work.slhaf.partner.api.agent.factory.capability.exception.CapabilityFactoryExecuteFailedException;
-import work.slhaf.partner.api.agent.factory.capability.exception.DuplicateMethodException;
-import work.slhaf.partner.api.agent.factory.component.annotation.AgentComponent;
-import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import static work.slhaf.partner.api.agent.util.AgentUtil.methodSignature;
-
-
-/**
- *
Agent启动流程 5
- *
- *
- * 负责收集注解 {@link Capability} 和 {@link CapabilityCore} 标识的类,并生成函数路由表、创建core、capability实例,以及放入instanceMap供后续进行注入操作
- *
- *
- *
- * -
- *
{@link CapabilityRegisterFactory#setCoreInstances()}
- * 通过反射调用无参构造函数创建core实例,并将实例放入instanceMap供后续使用
- *
- * -
- *
{@link CapabilityRegisterFactory#generateRouterTable()}
- * 生成函数路由表:
- *
- *
- * -
- * 函数路由表生成完毕、core实例创建完毕之后,将交由下一工厂完成能力(Capability)注入操作,注入到 {@link AgentRunningModule} 与 {@link AgentSubModule} 对应的实例中
- *
- *
- *
- * 下一步流程请参阅{@link CapabilityInjectFactory}
- */
-public class CapabilityRegisterFactory extends AgentBaseFactory {
-
- private Reflections reflections;
- private HashMap> methodsRouterTable;
- private HashMap> coordinatedMethodsRouterTable;
- private HashMap, Object> coreInstances;
- private HashMap, Object> capabilityHolderInstances;
- private Set> cores;
- private Set> capabilities;
-
- @Override
- protected void setVariables(AgentRegisterContext context) {
- CapabilityFactoryContext factoryContext = context.getCapabilityFactoryContext();
- reflections = context.getReflections();
- methodsRouterTable = factoryContext.getMethodsRouterTable();
- coordinatedMethodsRouterTable = factoryContext.getCoordinatedMethodsRouterTable();
- coreInstances = factoryContext.getCapabilityCoreInstances();
- cores = factoryContext.getCores();
- capabilities = factoryContext.getCapabilities();
- capabilityHolderInstances = factoryContext.getCapabilityHolderInstances();
- }
-
- @Override
- protected void run() {
- setCapabilityHolderInstances();
- setCoreInstances();
- generateRouterTable();
- }
-
- private void setCapabilityHolderInstances() {
- Set> collect = reflections.getTypesAnnotatedWith(AgentComponent.class).stream()
- .filter(ClassUtil::isNormalClass)
- .filter(clazz -> !capabilityHolderInstances.containsKey(clazz))
- .collect(Collectors.toSet());
- for (Class> clazz : collect) {
- try {
- Constructor> constructor = clazz.getDeclaredConstructor();
- if (constructor.canAccess(null)) {
- throw new CapabilityFactoryExecuteFailedException("缺少无参构造方法的类: " + clazz);
- }
- Object o = constructor.newInstance();
- capabilityHolderInstances.put(clazz, o);
- } catch (Exception e) {
- throw new CapabilityFactoryExecuteFailedException("创建代理对象失败: " + clazz, e);
- }
- }
- }
-
- /**
- * 生成函数路由表
- */
- private void generateRouterTable() {
- generateMethodsRouterTable();
- generateCoordinatedMethodsRouterTable();
- }
-
- /**
- * 生成协调函数对应的函数路由表
- */
- private void generateCoordinatedMethodsRouterTable() {
- Set methodsAnnotatedWith = reflections.getMethodsAnnotatedWith(Coordinated.class);
- if (methodsAnnotatedWith.isEmpty()) {
- return;
- }
- try {
- //获取所有CM实例
- HashMap coordinateManagerInstances = getCoordinateManagerInstances();
- methodsAnnotatedWith.forEach(method -> {
- String key = method.getAnnotation(Coordinated.class).capability() + "." + methodSignature(method);
- Function