refactor(action): remove ActionDispatcher and related empty directory

This commit is contained in:
2026-03-06 15:06:32 +08:00
parent 036fd9e051
commit df25f488fa
22 changed files with 48 additions and 112 deletions

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.core.action.entity package work.slhaf.partner.core.action.entity
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.HistoryAction import work.slhaf.partner.module.modules.action.executor.entity.HistoryAction
import java.time.ZonedDateTime import java.time.ZonedDateTime
import java.util.* import java.util.*

View File

@@ -1,69 +0,0 @@
package work.slhaf.partner.module.modules.action.dispatcher;
import lombok.val;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
import work.slhaf.partner.core.action.ActionCapability;
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.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;
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
public class ActionDispatcher extends PostRunningAbstractAgentModuleAbstract {
@InjectCapability
private ActionCapability actionCapability;
@InjectModule
private ActionExecutor actionExecutor;
@InjectModule
private ActionScheduler actionScheduler;
private ExecutorService executor;
@Init
public void init() {
executor = actionCapability.getExecutor(ActionCore.ExecutorType.VIRTUAL);
}
@Override
public void doExecute(PartnerRunningFlowContext context) {
// 只需要处理prepared action因为pending action在用户确认后也将变为prepared action
// 将PLANNING action放入时间轮中IMMEDIATE action直接进入并发执行流
// 对于将触发的PLANNING
// action理想做法是将执行工具做成执行链的形式模型的自对话流程、是否通知用户都做成与普通工具同等的通用可选能力避免绑定固定流程
executor.execute(() -> {
String userId = context.getSource();
val preparedActions = actionCapability.listActions(ExecutableAction.Status.PREPARE, userId);
// 分类成PLANNING和IMMEDIATE两类
Set<SchedulableExecutableAction> scheduledActions = new HashSet<>();
Set<ImmediateExecutableAction> immediateActions = new HashSet<>();
for (ExecutableAction preparedAction : preparedActions) {
if (preparedAction instanceof SchedulableExecutableAction actionInfo) {
scheduledActions.add(actionInfo);
} else if (preparedAction instanceof ImmediateExecutableAction actionInfo) {
immediateActions.add(actionInfo);
}
}
actionExecutor.execute(new ActionExecutorInput(immediateActions));
actionScheduler.schedule(scheduledActions);
});
}
@Override
protected boolean relyOnMessage() {
return false;
}
@Override
public int order() {
return 7;
}
}

View File

@@ -1,11 +1,11 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor; package work.slhaf.partner.module.modules.action.executor;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import lombok.val; import lombok.val;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule; import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel; import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorInput; import work.slhaf.partner.module.modules.action.executor.entity.CorrectorInput;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorResult; import work.slhaf.partner.module.modules.action.executor.entity.CorrectorResult;
/** /**
* 负责在单组行动执行后根据行动意图与结果检查后续行动是否符合目的必要时直接调整行动链或发起自对话请求进行干预 * 负责在单组行动执行后根据行动意图与结果检查后续行动是否符合目的必要时直接调整行动链或发起自对话请求进行干预

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor; package work.slhaf.partner.module.modules.action.executor;
import lombok.val; import lombok.val;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability; import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
@@ -12,8 +12,8 @@ import work.slhaf.partner.core.action.entity.ExecutableAction.Status;
import work.slhaf.partner.core.action.runner.RunnerClient; import work.slhaf.partner.core.action.runner.RunnerClient;
import work.slhaf.partner.core.cognation.CognationCapability; import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.memory.MemoryCapability; import work.slhaf.partner.core.memory.MemoryCapability;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.*; import work.slhaf.partner.module.modules.action.executor.entity.*;
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler; import work.slhaf.partner.module.modules.action.scheduler.ActionScheduler;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor; package work.slhaf.partner.module.modules.action.executor;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
@@ -16,11 +16,11 @@ import work.slhaf.partner.core.action.entity.MetaAction;
import work.slhaf.partner.core.action.entity.MetaAction.Result; import work.slhaf.partner.core.action.entity.MetaAction.Result;
import work.slhaf.partner.core.action.runner.RunnerClient; import work.slhaf.partner.core.action.runner.RunnerClient;
import work.slhaf.partner.core.cognation.CognationCapability; import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.GeneratorInput; import work.slhaf.partner.module.modules.action.executor.entity.GeneratorInput;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.GeneratorResult; import work.slhaf.partner.module.modules.action.executor.entity.GeneratorResult;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerInput; import work.slhaf.partner.module.modules.action.executor.entity.RepairerInput;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerResult; import work.slhaf.partner.module.modules.action.executor.entity.RepairerResult;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerResult.RepairerStatus; import work.slhaf.partner.module.modules.action.executor.entity.RepairerResult.RepairerStatus;
import java.util.List; import java.util.List;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor; package work.slhaf.partner.module.modules.action.executor;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import lombok.val; import lombok.val;
@@ -12,8 +12,8 @@ import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.entity.GeneratedData; import work.slhaf.partner.core.action.entity.GeneratedData;
import work.slhaf.partner.core.action.entity.MetaAction; import work.slhaf.partner.core.action.entity.MetaAction;
import work.slhaf.partner.core.action.runner.RunnerClient; import work.slhaf.partner.core.action.runner.RunnerClient;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.GeneratorInput; import work.slhaf.partner.module.modules.action.executor.entity.GeneratorInput;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.GeneratorResult; import work.slhaf.partner.module.modules.action.executor.entity.GeneratorResult;
/** /**
* 负责依据输入内容生成可执行的动态行动单元并选择是否持久化至 SandboxRunner 容器内 * 负责依据输入内容生成可执行的动态行动单元并选择是否持久化至 SandboxRunner 容器内

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor; package work.slhaf.partner.module.modules.action.executor;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
@@ -6,9 +6,9 @@ import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentMod
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel; import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.api.chat.pojo.ChatResponse;
import work.slhaf.partner.core.action.entity.MetaActionInfo; import work.slhaf.partner.core.action.entity.MetaActionInfo;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ExtractorInput; import work.slhaf.partner.module.modules.action.executor.entity.ExtractorInput;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ExtractorResult; import work.slhaf.partner.module.modules.action.executor.entity.ExtractorResult;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.HistoryAction; import work.slhaf.partner.module.modules.action.executor.entity.HistoryAction;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity package work.slhaf.partner.module.modules.action.executor.entity
import work.slhaf.partner.core.action.entity.ExecutableAction import work.slhaf.partner.core.action.entity.ExecutableAction

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;
import work.slhaf.partner.module.modules.action.interventor.entity.MetaIntervention; import work.slhaf.partner.module.modules.action.interventor.entity.MetaIntervention;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;
import work.slhaf.partner.api.chat.pojo.Message; import work.slhaf.partner.api.chat.pojo.Message;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;
import work.slhaf.partner.core.action.entity.MetaAction; import work.slhaf.partner.core.action.entity.MetaAction;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
public record HistoryAction(String actionKey, String description, String result) { public record HistoryAction(String actionKey, String description, String result) {
} }

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;
import work.slhaf.partner.api.chat.pojo.Message; import work.slhaf.partner.api.chat.pojo.Message;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; package work.slhaf.partner.module.modules.action.executor.entity;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.exception; package work.slhaf.partner.module.modules.action.executor.exception;
import work.slhaf.partner.api.agent.runtime.exception.AgentRuntimeException; import work.slhaf.partner.api.agent.runtime.exception.AgentRuntimeException;

View File

@@ -16,9 +16,8 @@ import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.memory.MemoryCapability; import work.slhaf.partner.core.memory.MemoryCapability;
import work.slhaf.partner.core.perceive.PerceiveCapability; import work.slhaf.partner.core.perceive.PerceiveCapability;
import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract; import work.slhaf.partner.module.common.module.PreRunningAbstractAgentModuleAbstract;
import work.slhaf.partner.module.modules.action.dispatcher.executor.ActionExecutor; import work.slhaf.partner.module.modules.action.executor.ActionExecutor;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ActionExecutorInput; import work.slhaf.partner.module.modules.action.executor.entity.ActionExecutorInput;
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler;
import work.slhaf.partner.module.modules.action.planner.confirmer.ActionConfirmer; 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.ConfirmerInput;
import work.slhaf.partner.module.modules.action.planner.confirmer.entity.ConfirmerResult; import work.slhaf.partner.module.modules.action.planner.confirmer.entity.ConfirmerResult;
@@ -28,6 +27,7 @@ import work.slhaf.partner.module.modules.action.planner.evaluator.entity.Evaluat
import work.slhaf.partner.module.modules.action.planner.extractor.ActionExtractor; import work.slhaf.partner.module.modules.action.planner.extractor.ActionExtractor;
import work.slhaf.partner.module.modules.action.planner.extractor.entity.ExtractorInput; import work.slhaf.partner.module.modules.action.planner.extractor.entity.ExtractorInput;
import work.slhaf.partner.module.modules.action.planner.extractor.entity.ExtractorResult; import work.slhaf.partner.module.modules.action.planner.extractor.entity.ExtractorResult;
import work.slhaf.partner.module.modules.action.scheduler.ActionScheduler;
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext; import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
import java.util.*; import java.util.*;

View File

@@ -1,4 +1,4 @@
package work.slhaf.partner.module.modules.action.dispatcher.scheduler package work.slhaf.partner.module.modules.action.scheduler
import com.cronutils.model.CronType import com.cronutils.model.CronType
import com.cronutils.model.definition.CronDefinition import com.cronutils.model.definition.CronDefinition
@@ -20,8 +20,8 @@ import work.slhaf.partner.core.action.ActionCore
import work.slhaf.partner.core.action.entity.Schedulable import work.slhaf.partner.core.action.entity.Schedulable
import work.slhaf.partner.core.action.entity.SchedulableExecutableAction import work.slhaf.partner.core.action.entity.SchedulableExecutableAction
import work.slhaf.partner.core.action.entity.StateAction import work.slhaf.partner.core.action.entity.StateAction
import work.slhaf.partner.module.modules.action.dispatcher.executor.ActionExecutor import work.slhaf.partner.module.modules.action.executor.ActionExecutor
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ActionExecutorInput import work.slhaf.partner.module.modules.action.executor.entity.ActionExecutorInput
import java.io.Closeable import java.io.Closeable
import java.time.Duration import java.time.Duration
import java.time.ZonedDateTime import java.time.ZonedDateTime

View File

@@ -13,10 +13,14 @@ import work.slhaf.partner.core.action.entity.*;
import work.slhaf.partner.core.action.runner.RunnerClient; import work.slhaf.partner.core.action.runner.RunnerClient;
import work.slhaf.partner.core.cognation.CognationCapability; import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.memory.MemoryCapability; import work.slhaf.partner.core.memory.MemoryCapability;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ActionExecutorInput; import work.slhaf.partner.module.modules.action.executor.ActionCorrector;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorResult; import work.slhaf.partner.module.modules.action.executor.ActionExecutor;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ExtractorResult; import work.slhaf.partner.module.modules.action.executor.ActionRepairer;
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerResult; import work.slhaf.partner.module.modules.action.executor.ParamsExtractor;
import work.slhaf.partner.module.modules.action.executor.entity.ActionExecutorInput;
import work.slhaf.partner.module.modules.action.executor.entity.CorrectorResult;
import work.slhaf.partner.module.modules.action.executor.entity.ExtractorResult;
import work.slhaf.partner.module.modules.action.executor.entity.RepairerResult;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;

View File

@@ -17,8 +17,9 @@ import work.slhaf.partner.core.action.ActionCapability
import work.slhaf.partner.core.action.entity.ExecutableAction import work.slhaf.partner.core.action.entity.ExecutableAction
import work.slhaf.partner.core.action.entity.Schedulable import work.slhaf.partner.core.action.entity.Schedulable
import work.slhaf.partner.core.action.entity.SchedulableExecutableAction import work.slhaf.partner.core.action.entity.SchedulableExecutableAction
import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ActionExecutorInput import work.slhaf.partner.module.modules.action.executor.ActionExecutor
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler import work.slhaf.partner.module.modules.action.executor.entity.ActionExecutorInput
import work.slhaf.partner.module.modules.action.scheduler.ActionScheduler
import java.time.ZonedDateTime import java.time.ZonedDateTime
import java.time.temporal.ChronoUnit import java.time.temporal.ChronoUnit