diff --git a/.idea/misc.xml b/.idea/misc.xml index 1277c99b..ff5d8541 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + @@ -11,11 +11,12 @@ - - - - - + + + + + + diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCapability.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCapability.java index a887145f..7c021c06 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCapability.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCapability.java @@ -5,6 +5,7 @@ import work.slhaf.partner.api.agent.factory.capability.annotation.Capability; import work.slhaf.partner.core.action.entity.ActionData; 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.entity.cache.CacheAdjustData; import java.util.List; @@ -29,13 +30,13 @@ public interface ActionCapability { ExecutorService getExecutor(ActionCore.ExecutorType type); - void putPhaserRecord(Phaser phaser, ActionData actionData); + PhaserRecord putPhaserRecord(Phaser phaser, ActionData actionData); void removePhaserRecord(Phaser phaser); - List listPhaserRecords(); + List listPhaserRecords(); - ActionCore.PhaserRecord getPhaserRecord(String tendency, String source); + PhaserRecord getPhaserRecord(String tendency, String source); MetaAction loadMetaAction(@NonNull String actionKey); diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCore.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCore.java index 5ecc235c..cd519cf3 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCore.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/ActionCore.java @@ -10,6 +10,7 @@ import work.slhaf.partner.core.PartnerCore; import work.slhaf.partner.core.action.entity.ActionData; 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.entity.cache.ActionCacheData; import work.slhaf.partner.core.action.entity.cache.CacheAdjustData; import work.slhaf.partner.core.action.entity.cache.CacheAdjustMetaData; @@ -182,15 +183,17 @@ public class ActionCore extends PartnerCore { } @CapabilityMethod - public synchronized void putPhaserRecord(Phaser phaser, ActionData actionData) { - phaserRecords.add(new PhaserRecord(phaser, actionData)); + public synchronized PhaserRecord putPhaserRecord(Phaser phaser, ActionData actionData) { + PhaserRecord record = new PhaserRecord(phaser, actionData); + phaserRecords.add(record); + return record; } @CapabilityMethod public synchronized void removePhaserRecord(Phaser phaser) { PhaserRecord remove = null; for (PhaserRecord record : phaserRecords) { - if (record.phaser.equals(phaser)) { + if (record.phaser().equals(phaser)) { remove = record; } } @@ -203,7 +206,7 @@ public class ActionCore extends PartnerCore { @CapabilityMethod public PhaserRecord getPhaserRecord(String tendency, String source) { for (PhaserRecord record : phaserRecords) { - ActionData data = record.actionData; + ActionData data = record.actionData(); if (data.getTendency().equals(tendency) && data.getSource().equals(source)) { return record; } @@ -345,6 +348,4 @@ public class ActionCore extends PartnerCore { VIRTUAL, PLATFORM } - public record PhaserRecord(Phaser phaser, ActionData actionData) { - } } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/ActionData.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/ActionData.java index cdc63892..c56336b4 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/ActionData.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/ActionData.java @@ -65,6 +65,10 @@ public abstract class ActionData { * 执行中 */ EXECUTING, + /** + * 暂时中断 + */ + INTERRUPTED, /** * 预备执行 */ diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/PhaserRecord.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/PhaserRecord.java new file mode 100644 index 00000000..7b7b5c88 --- /dev/null +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/PhaserRecord.java @@ -0,0 +1,20 @@ +package work.slhaf.partner.core.action.entity; + +import java.util.concurrent.Phaser; + +public record PhaserRecord(Phaser phaser, ActionData actionData) { + + public void fail() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'fail'"); + } + + + public void interrupt() { + + } + + public void complete() { + + } +} diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionCorrector.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionCorrector.java new file mode 100644 index 00000000..a040d309 --- /dev/null +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionCorrector.java @@ -0,0 +1,30 @@ +package work.slhaf.partner.module.modules.action.dispatcher.executor; + +import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule; +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.module.modules.action.dispatcher.executor.entity.CorrectorInput; +import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.CorrectorResult; + +/** + * 负责在单组行动执行后,根据行动意图与结果检查后续行动是否符合目的,必要时直接调整行动链,或发起自对话请求进行干预 + */ +@AgentSubModule +public class ActionCorrector extends AgentRunningSubModule implements ActivateModel { + + @Override + public CorrectorResult execute(CorrectorInput data) { + return null; + } + + @Override + public String modelKey() { + return ""; + } + + @Override + public boolean withBasicPrompt() { + return false; + } + +} diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionExecutor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionExecutor.java index 2b06362e..0332a6f8 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionExecutor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionExecutor.java @@ -4,12 +4,16 @@ import lombok.extern.slf4j.Slf4j; import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability; import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule; import work.slhaf.partner.api.agent.factory.module.annotation.Init; +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.ActionData; import work.slhaf.partner.core.action.entity.ImmediateActionData; import work.slhaf.partner.core.action.entity.MetaAction; +import work.slhaf.partner.core.action.entity.PhaserRecord; +import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.*; +import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerResult.RepairerStatus; import java.util.ArrayList; import java.util.List; @@ -24,9 +28,18 @@ public class ActionExecutor extends AgentRunningSubModule platform = new ArrayList<>(); Phaser phaser = new Phaser(); phaser.register(); - actionCapability.putPhaserRecord(phaser, actionData); + PhaserRecord phaserRecord = actionCapability.putPhaserRecord(phaser, actionData); List orderList = new ArrayList<>(actionChain.keySet().stream().toList()); orderList.sort(Integer::compareTo); try { @@ -58,13 +71,15 @@ public class ActionExecutor extends AgentRunningSubModule actions, ExecutorService executor, Phaser phaser) { + private void runGroupAction(List actions, ExecutorService executor, PhaserRecord phaserRecord) { + Phaser phaser = phaserRecord.phaser(); phaser.bulkRegister(actions.size()); - for (MetaAction action : actions) { + //不可替换为增强for,因为单组的行动单元集合数量是可以被外部干预的 + //noinspection ForLoopReplaceableByForEach + for (int i = 0; i < actions.size(); i++) { + MetaAction action = actions.get(i); executor.execute(() -> { try { - //TODO 使用 ParamsExtractor 填充行动参数信息,如果已知内容不足以满足参数需求,则进行行动链调整(ActionRepairer) - - actionCapability.execute(action); - MetaAction.Result result = action.getResult(); + ExtractorInput extractorInput = assemblyHelper.buildExtractorInput(); + ExtractorResult extractorResult = paramsExtractor.execute(extractorInput); + // 两个循环需考虑最大次数,但为了达到最好融合,次数累计作用于 ActionRepairer 的修复策略选择上更合适 + if (!extractorResult.isOk()) { + // 修复的最终结果是 action 的参数补充完整,然后能够继续行动链 + // 如果无法补充,则该行动行动阶段可能确实有误,实际上应当在 actionRepairer 内部进行处理(行动链调整、自对话或请求用户进行干预) + // 所以无法补充时,行动链所属行动数据的状态需要置为 Interrupted ,等待状态变更,同时使用 Phaser 暂停(阻塞)当前行动链执行过程 + // 这个功能应该交给 PhaserRecord 实现,尽量确保功能一致性 + repairActionParams(action, phaserRecord); + } do { + actionCapability.execute(action); + MetaAction.Result result = action.getResult(); // 该循环对应LLM的调整参数后重试 if (!result.isSuccess()) { // LLM决策是重构参数、执行自对话反思、还是选择向用户求助(通过cognationCore暴露方法,可能需要修改其他模块以进行适应),仅重构参数时无需结束当前循环 // 若使用Phaser作为执行线程与反思、求助等调用流程的同步协调,应当需要额外维护Phaser全局字段,获取到反思结果或者用户反馈后, // 调用对应的phaser注册任务,在ActionExecutor中动态添加任务至actionChain,同时启动异步执行 // 而且由于执行与放入的为同一个MetaAction对象,所以执行结果可被当前行动链获取,但virtual、executor两个列表似乎不行,需要重构执行模式,建议将行动链直接重构为LinkedHashMap,order为键 - String input = buildFixInput(result.getData()); - // 执行时不可使用`for in`和`forEach`,因为在`Intervention`相关模块存在动态调整 + repairActionParams(action, phaserRecord); + } else { + break; } actionCapability.execute(action); - } while (!result.isSuccess()); - // TODO 将执行结果写入特定对话角色记忆(cognationCore暴露方法) - + } while (true); + //TODO 执行结果不再需要写入特定位置,当前的 ActionCapability 内部的行动池已经足以承担这个功能,但这也就意味着行动池或许需要考虑特殊的序列化形式避免内存占用过高,同时也需要在某些模块执行时加上行动结果的挑取作为输入内容 } finally { phaser.arriveAndDeregister(); } @@ -103,9 +130,42 @@ public class ActionExecutor extends AgentRunningSubModule action.setParams(repairerResult.getParams()); + // 修复失败则证明行动链不可行(外部因素,如果本身即不存在满足可能,则应当通过 ADJUST 或者 ACQUIRE 方式选择取消) + case RepairerStatus.FAILED -> phaserRecord.fail(); + // 按照逻辑设定,这里将不可能步入这个分支,除非 ActionRepairer 逻辑有误 + case RepairerStatus.ACQUIRE -> { + phaserRecord.interrupt(); + continue; + } + } + break; + } while (true); + } - return null; + @SuppressWarnings("InnerClassMayBeStatic") + private class AssemblyHelper { + + private AssemblyHelper() { + } + + public RepairerInput buildRepairerInput() { + return null; + } + + public ExtractorInput buildExtractorInput() { + return null; + } + + public CorrectorInput buildCorrectorInput() { + return null; + } } } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionRepairer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionRepairer.java index 479a5ab6..315d92c1 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionRepairer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ActionRepairer.java @@ -7,7 +7,18 @@ import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.Repai import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.RepairerResult; /** - * 负责识别行动链的调整,可通过协调 {@link DynamicActionGenerator} 生成新的行动单元(必要时持久化)、或者依据现有输出结果与已知信息和可选行动单元直接调整行动链、如果当前局部信息无法满足,将发起自对话借助干预模块进行操作或者借助自对话通道向用户发起沟通请求 + * 负责识别行动链的修复 + *
    + *
  1. + * 可通过协调 {@link DynamicActionGenerator} 生成新的行动单元并调用,获取所需的参数信息(必要时持久化); + *
  2. + *
  3. + * 也可以直接调用已存在的行动程序获取信息; + *
  4. + *
  5. + * 如果上述都无法满足,将发起自对话借助干预模块进行操作或者借助自对话通道向用户发起沟通请求,该请求的目的一般为行动程序生成/调用指导或者用户侧的信息补充,后续还需要再走一遍参数修复流程 + *
  6. + *
*/ @AgentSubModule public class ActionRepairer extends AgentRunningSubModule implements ActivateModel { diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ParamsExtractor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ParamsExtractor.java index f94b1aa6..d3eba6ef 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ParamsExtractor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/ParamsExtractor.java @@ -3,22 +3,23 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor; import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule; 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.module.modules.action.dispatcher.executor.entity.ParamsExtractorInput; +import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ExtractorInput; +import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.ExtractorResult; /** * 负责依据输入内容进行行动单元的参数信息提取 */ @AgentSubModule -public class ParamsExtractor extends AgentRunningSubModule implements ActivateModel { +public class ParamsExtractor extends AgentRunningSubModule implements ActivateModel { @Override - public String[] execute(ParamsExtractorInput data) { - return new String[0]; + public ExtractorResult execute(ExtractorInput data) { + return null; } @Override public String modelKey() { - return ""; + return "params_extractor"; } @Override diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorInput.java new file mode 100644 index 00000000..aad21e36 --- /dev/null +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorInput.java @@ -0,0 +1,7 @@ +package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; + +import lombok.Data; + +@Data +public class CorrectorInput { +} diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorResult.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorResult.java new file mode 100644 index 00000000..b65a2269 --- /dev/null +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/CorrectorResult.java @@ -0,0 +1,7 @@ +package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; + +import lombok.Data; + +@Data +public class CorrectorResult { +} diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ParamsExtractorInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorInput.java similarity index 75% rename from Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ParamsExtractorInput.java rename to Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorInput.java index b78dd7e0..826c1f06 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ParamsExtractorInput.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorInput.java @@ -3,6 +3,6 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; import lombok.Data; @Data -public class ParamsExtractorInput { +public class ExtractorInput { } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorResult.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorResult.java new file mode 100644 index 00000000..de05dfd5 --- /dev/null +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/ExtractorResult.java @@ -0,0 +1,9 @@ +package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; + +import lombok.Data; + +@Data +public class ExtractorResult { + private boolean ok; + private String[] params; +} diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/RepairerResult.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/RepairerResult.java index c8e56ce2..7f046b6d 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/RepairerResult.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/RepairerResult.java @@ -2,6 +2,27 @@ package work.slhaf.partner.module.modules.action.dispatcher.executor.entity; import lombok.Data; +/** + * 行动修复结果,包含行动状态和修复后的参数 + */ @Data public class RepairerResult { + + private RepairerStatus status; + private String[] params; + + public enum RepairerStatus { + /** + * 成功修复: 携带修复后参数; 此种情况对应 Repairer 通过某种方式获取到了完整的参数(调用额外的行动) + */ + OK, + /** + * 发送了自对话请求干预行动,这类一般是补充信息或者提供行动指导,后续必须再步入修复进程,但需要设置层级 + */ + ACQUIRE, + /** + * 修复失败(简单修复、自对话通道均出现错误,正常情况不应该出现) + */ + FAILED + } } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/ActionInterventor.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/ActionInterventor.java index cf2e5c94..92f68ba8 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/ActionInterventor.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/ActionInterventor.java @@ -7,8 +7,8 @@ import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule; import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule; import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel; import work.slhaf.partner.core.action.ActionCapability; -import work.slhaf.partner.core.action.ActionCore.PhaserRecord; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import work.slhaf.partner.core.cognation.CognationCapability; import work.slhaf.partner.core.memory.MemoryCapability; import work.slhaf.partner.module.common.module.PreRunningModule; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/InterventionEvaluator.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/InterventionEvaluator.java index bccd2154..f0391293 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/InterventionEvaluator.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/InterventionEvaluator.java @@ -10,8 +10,8 @@ import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.api.chat.pojo.Message; import work.slhaf.partner.core.action.ActionCapability; import work.slhaf.partner.core.action.ActionCore.ExecutorType; -import work.slhaf.partner.core.action.ActionCore.PhaserRecord; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import work.slhaf.partner.core.memory.pojo.EvaluatedSlice; import work.slhaf.partner.module.modules.action.interventor.evaluator.entity.EvaluatorInput; import work.slhaf.partner.module.modules.action.interventor.evaluator.entity.EvaluatorResult; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/entity/EvaluatorInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/entity/EvaluatorInput.java index 854f257e..ab3345dd 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/entity/EvaluatorInput.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/evaluator/entity/EvaluatorInput.java @@ -2,8 +2,8 @@ package work.slhaf.partner.module.modules.action.interventor.evaluator.entity; import lombok.Data; import work.slhaf.partner.api.chat.pojo.Message; -import work.slhaf.partner.core.action.ActionCore.PhaserRecord; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import work.slhaf.partner.core.memory.pojo.EvaluatedSlice; import java.util.List; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/InterventionHandler.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/InterventionHandler.java index e3c8667a..01eba94e 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/InterventionHandler.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/InterventionHandler.java @@ -6,10 +6,10 @@ import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule; 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.ExecutorType; -import work.slhaf.partner.core.action.ActionCore.PhaserRecord; 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.PhaserRecord; import work.slhaf.partner.module.modules.action.interventor.entity.InterventionType; import work.slhaf.partner.module.modules.action.interventor.entity.MetaIntervention; import work.slhaf.partner.module.modules.action.interventor.handler.entity.HandlerInput; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/entity/HandlerInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/entity/HandlerInput.java index 39b038ba..851e618d 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/entity/HandlerInput.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/handler/entity/HandlerInput.java @@ -2,8 +2,8 @@ package work.slhaf.partner.module.modules.action.interventor.handler.entity; import lombok.Data; import lombok.EqualsAndHashCode; -import work.slhaf.partner.core.action.ActionCore.PhaserRecord; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import work.slhaf.partner.module.modules.action.interventor.entity.MetaIntervention; import java.util.List; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/InterventionRecognizer.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/InterventionRecognizer.java index 6136d658..2616da62 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/InterventionRecognizer.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/InterventionRecognizer.java @@ -10,6 +10,7 @@ import work.slhaf.partner.api.chat.pojo.ChatResponse; import work.slhaf.partner.core.action.ActionCapability; import work.slhaf.partner.core.action.ActionCore; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import work.slhaf.partner.module.modules.action.interventor.recognizer.entity.MetaRecognizerResult; import work.slhaf.partner.module.modules.action.interventor.recognizer.entity.RecognizerInput; import work.slhaf.partner.module.modules.action.interventor.recognizer.entity.RecognizerResult; @@ -30,13 +31,13 @@ public class InterventionRecognizer extends AgentRunningSubModule executingActions = input.getExecutingActions(); + List executingActions = input.getExecutingActions(); List preparedActions = input.getPreparedActions(); CountDownLatch countDownLatch = new CountDownLatch(executingActions.size() + preparedActions.size()); // 创建结果容器 RecognizerResult recognizerResult = new RecognizerResult(); - Map executingInterventions = recognizerResult.getExecutingInterventions(); + Map executingInterventions = recognizerResult.getExecutingInterventions(); Map preparedInterventions = recognizerResult.getPreparedInterventions(); // 执行识别操作 @@ -74,7 +75,7 @@ public class InterventionRecognizer extends AgentRunningSubModule String buildPrompt(T data, RecognizerInput input) { ActionData actionData = switch (data) { - case ActionCore.PhaserRecord record -> record.actionData(); + case PhaserRecord record -> record.actionData(); case ActionData tempData -> tempData; default -> null; }; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerInput.java index 078b8613..2677aad8 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerInput.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerInput.java @@ -2,8 +2,8 @@ package work.slhaf.partner.module.modules.action.interventor.recognizer.entity; import lombok.Data; import work.slhaf.partner.api.chat.pojo.Message; -import work.slhaf.partner.core.action.ActionCore; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import java.util.List; @@ -18,6 +18,6 @@ public class RecognizerInput { /** * 正在执行的行动-Phaser记录列表,在Recognizer中结合本次输入并发评估(考虑到不同行动链之间对LLM的影响) */ - private List executingActions; + private List executingActions; private List preparedActions; } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerResult.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerResult.java index f7af4f89..202b3061 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerResult.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/interventor/recognizer/entity/RecognizerResult.java @@ -1,8 +1,8 @@ package work.slhaf.partner.module.modules.action.interventor.recognizer.entity; import lombok.Data; -import work.slhaf.partner.core.action.ActionCore; import work.slhaf.partner.core.action.entity.ActionData; +import work.slhaf.partner.core.action.entity.PhaserRecord; import java.util.HashMap; import java.util.Map; @@ -18,7 +18,7 @@ public class RecognizerResult { *
* value: 干预倾向将作用的 phaser 记录 */ - private Map executingInterventions = new HashMap<>(); + private Map executingInterventions = new HashMap<>(); /** *

将被干预的‘等待中行动’