refactor(ActionExecutor): correct input actions' type in ActionExecutor

This commit is contained in:
2026-02-06 23:38:13 +08:00
parent 08100aea8a
commit 050c39cbc7
4 changed files with 26 additions and 29 deletions

View File

@@ -16,8 +16,8 @@ import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.Actio
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler;
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutorService;
@AgentModule(name = "action_dispatcher", order = 7)
@@ -32,7 +32,6 @@ public class ActionDispatcher extends PostRunningModule {
private ActionScheduler actionScheduler;
private ExecutorService executor;
private final AssemblyHelper assemblyHelper = new AssemblyHelper();
@Init
public void init() {
@@ -49,8 +48,8 @@ public class ActionDispatcher extends PostRunningModule {
String userId = context.getUserId();
val preparedActions = actionCapability.listActions(ActionData.ActionStatus.PREPARE, userId);
// 分类成PLANNING和IMMEDIATE两类
List<ScheduledActionData> scheduledActions = new ArrayList<>();
List<ImmediateActionData> immediateActions = new ArrayList<>();
Set<ScheduledActionData> scheduledActions = new HashSet<>();
Set<ImmediateActionData> immediateActions = new HashSet<>();
for (ActionData preparedAction : preparedActions) {
if (preparedAction instanceof ScheduledActionData actionInfo) {
scheduledActions.add(actionInfo);
@@ -58,7 +57,11 @@ public class ActionDispatcher extends PostRunningModule {
immediateActions.add(actionInfo);
}
}
actionExecutor.execute(assemblyHelper.buildExecutorInput(immediateActions, userId));
val actionExecutorInput = ActionExecutorInput.builder()
.userId(userId)
.actions(immediateActions)
.build();
actionExecutor.execute(actionExecutorInput);
actionScheduler.execute(scheduledActions);
});
}
@@ -68,15 +71,4 @@ public class ActionDispatcher extends PostRunningModule {
return false;
}
@SuppressWarnings("InnerClassMayBeStatic")
private class AssemblyHelper {
public ActionExecutorInput buildExecutorInput(List<ImmediateActionData> immediateActions, String userId) {
ActionExecutorInput input = new ActionExecutorInput();
input.setImmediateActions(immediateActions);
input.setUserId(userId);
return input;
}
}
}

View File

@@ -9,8 +9,11 @@ import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.ActionCore;
import work.slhaf.partner.core.action.entity.*;
import work.slhaf.partner.core.action.entity.ActionData;
import work.slhaf.partner.core.action.entity.ActionData.ActionStatus;
import work.slhaf.partner.core.action.entity.MetaAction;
import work.slhaf.partner.core.action.entity.MetaActionInfo;
import work.slhaf.partner.core.action.entity.PhaserRecord;
import work.slhaf.partner.core.action.runner.RunnerClient;
import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.memory.MemoryCapability;
@@ -63,10 +66,10 @@ public class ActionExecutor extends AgentRunningSubModule<ActionExecutorInput, V
*/
@Override
public Void execute(ActionExecutorInput input) {
val immediateActions = input.getImmediateActions();
val immediateActions = input.getActions();
val userId = input.getUserId();
// 异步执行所有行动
for (ImmediateActionData actionData : immediateActions) {
for (ActionData actionData : immediateActions) {
platformExecutor.execute(() -> {
if (actionData.getStatus() != ActionData.ActionStatus.PREPARE) {
return;
@@ -298,7 +301,7 @@ public class ActionExecutor extends AgentRunningSubModule<ActionExecutorInput, V
return input;
}
private CorrectorInput buildCorrectorInput(ImmediateActionData actionData, String userId) {
private CorrectorInput buildCorrectorInput(ActionData actionData, String userId) {
return CorrectorInput.builder()
.tendency(actionData.getTendency())
.source(actionData.getSource())

View File

@@ -1,18 +1,20 @@
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity;
import lombok.Builder;
import lombok.Data;
import work.slhaf.partner.core.action.entity.ImmediateActionData;
import work.slhaf.partner.core.action.entity.ActionData;
import java.util.List;
import java.util.Set;
@Data
@Builder
public class ActionExecutorInput {
/**
* 用户ID
*/
private String userId;
/**
* 即时行动数据列表
* 将执行的行动数据列表
*/
private List<ImmediateActionData> immediateActions;
private Set<? extends ActionData> actions;
}

View File

@@ -369,10 +369,10 @@ class ActionExecutorTest {
}
private ActionExecutorInput buildInput(String userId, ImmediateActionData actionData) {
ActionExecutorInput input = new ActionExecutorInput();
input.setUserId(userId);
input.setImmediateActions(List.of(actionData));
return input;
return ActionExecutorInput.builder()
.userId(userId)
.actions(Set.of(actionData))
.build();
}
private ImmediateActionData buildActionData(Map<Integer, List<MetaAction>> actionChain) {