From 036fd9e051761745c4d3721b15721b84390960bf Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 6 Mar 2026 14:58:13 +0800 Subject: [PATCH] refactor(ActionPlanner): support schedule or execute actions(or confirmed actions) immediately --- .../modules/action/planner/ActionPlanner.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java index 4fa0c40e..3f267a5e 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/module/modules/action/planner/ActionPlanner.java @@ -16,6 +16,9 @@ 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.PreRunningAbstractAgentModuleAbstract; +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.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; @@ -33,10 +36,12 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; /** - * 负责针对本次输入生成基础的行动计划,在主模型传达意愿后,执行行动或者放入计划池 + * 负责针对本次输入生成基础的行动计划 */ public class ActionPlanner extends PreRunningAbstractAgentModuleAbstract { + private final ActionAssemblyHelper assemblyHelper = new ActionAssemblyHelper(); + @InjectCapability private CognationCapability cognationCapability; @InjectCapability @@ -45,12 +50,18 @@ public class ActionPlanner extends PreRunningAbstractAgentModuleAbstract { private PerceiveCapability perceiveCapability; @InjectCapability private MemoryCapability memoryCapability; + @InjectModule private ActionEvaluator actionEvaluator; @InjectModule private ActionExtractor actionExtractor; @InjectModule private ActionConfirmer actionConfirmer; + @InjectModule + private ActionScheduler actionScheduler; + @InjectModule + private ActionExecutor actionExecutor; + private ExecutorService executor; @Init @@ -136,9 +147,17 @@ public class ActionPlanner extends PreRunningAbstractAgentModuleAbstract { } List pendingActions = actionCapability.popPendingAction(context.getSource()); for (ExecutableAction executableAction : pendingActions) { + // put action into ActionCore to record if (uuids.contains(executableAction.getUuid())) { actionCapability.putAction(executableAction); } + // execute or schedule it immediately + switch (executableAction) { + case SchedulableExecutableAction action -> actionScheduler.schedule(Set.of(action)); + case ImmediateExecutableAction action -> + actionExecutor.execute(new ActionExecutorInput(Set.of(action))); + default -> log.error("unknown executable action type: {}", executableAction.getClass().getSimpleName()); + } } }