mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(MetaActionInfo): remove key attribute and update related logic
Context: MetaActionInfo was previously located via its own key attribute. This is now redundant, as ActionCore already uses the key of existedMetaActions as the single source of truth.
This commit is contained in:
@@ -10,6 +10,7 @@ import work.slhaf.partner.core.action.entity.cache.CacheAdjustData;
|
|||||||
import work.slhaf.partner.core.action.runner.SandboxRunnerClient;
|
import work.slhaf.partner.core.action.runner.SandboxRunnerClient;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Phaser;
|
import java.util.concurrent.Phaser;
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ public interface ActionCapability {
|
|||||||
|
|
||||||
MetaActionInfo loadMetaActionInfo(@NonNull String actionKey);
|
MetaActionInfo loadMetaActionInfo(@NonNull String actionKey);
|
||||||
|
|
||||||
List<MetaActionInfo> listAvailableActions();
|
Map<String, MetaActionInfo> listAvailableActions();
|
||||||
|
|
||||||
boolean checkExists(String... actionKeys);
|
boolean checkExists(String... actionKeys);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package work.slhaf.partner.core.action;
|
package work.slhaf.partner.core.action;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityCore;
|
import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityCore;
|
||||||
@@ -183,8 +182,8 @@ public class ActionCore extends PartnerCore<ActionCore> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
public List<MetaActionInfo> listAvailableActions() {
|
public Map<String, MetaActionInfo> listAvailableActions() {
|
||||||
return existedMetaActions.values().stream().toList();
|
return existedMetaActions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
@@ -221,14 +220,15 @@ public class ActionCore extends PartnerCore<ActionCore> {
|
|||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
public MetaAction loadMetaAction(@NonNull String actionKey) {
|
public MetaAction loadMetaAction(@NonNull String actionKey) {
|
||||||
for (MetaActionInfo actionInfo : existedMetaActions.values()) {
|
MetaActionInfo metaActionInfo = existedMetaActions.get(actionKey);
|
||||||
if (actionInfo.getKey().equals(actionKey)) {
|
if (metaActionInfo == null) {
|
||||||
MetaAction metaAction = new MetaAction();
|
throw new MetaActionNotFoundException("未找到对应的行动程序信息" + actionKey);
|
||||||
BeanUtil.copyProperties(actionInfo, metaAction);
|
|
||||||
return metaAction;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
throw new MetaActionNotFoundException("未找到对应的行动程序信息" + actionKey);
|
MetaAction metaAction = new MetaAction();
|
||||||
|
metaAction.setParams(metaActionInfo.getParams());
|
||||||
|
metaAction.setType(metaActionInfo.getType());
|
||||||
|
metaAction.setIo(metaActionInfo.isIo());
|
||||||
|
return metaAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import java.util.Map;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class MetaActionInfo {
|
public class MetaActionInfo {
|
||||||
private String key;
|
|
||||||
private boolean io;
|
private boolean io;
|
||||||
private MetaActionType type;
|
private MetaActionType type;
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ public abstract class RunnerClient {
|
|||||||
// 忽略非文本类型,行动描述信息只会以文本形式存在
|
// 忽略非文本类型,行动描述信息只会以文本形式存在
|
||||||
if (resourceContent instanceof McpSchema.TextResourceContents content) {
|
if (resourceContent instanceof McpSchema.TextResourceContents content) {
|
||||||
MetaActionInfo metaActionInfo = JSONObject.parseObject(content.text(), MetaActionInfo.class);
|
MetaActionInfo metaActionInfo = JSONObject.parseObject(content.text(), MetaActionInfo.class);
|
||||||
existedMetaActions.put(id + "::" + metaActionInfo.getKey(), metaActionInfo);
|
existedMetaActions.put(id + "::" + resource.name(), metaActionInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunn
|
|||||||
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
import work.slhaf.partner.api.chat.pojo.ChatResponse;
|
||||||
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
||||||
import work.slhaf.partner.core.action.ActionCapability;
|
import work.slhaf.partner.core.action.ActionCapability;
|
||||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
|
||||||
import work.slhaf.partner.core.memory.pojo.EvaluatedSlice;
|
import work.slhaf.partner.core.memory.pojo.EvaluatedSlice;
|
||||||
import work.slhaf.partner.module.modules.action.planner.evaluator.entity.EvaluatorBatchInput;
|
import work.slhaf.partner.module.modules.action.planner.evaluator.entity.EvaluatorBatchInput;
|
||||||
import work.slhaf.partner.module.modules.action.planner.evaluator.entity.EvaluatorInput;
|
import work.slhaf.partner.module.modules.action.planner.evaluator.entity.EvaluatorInput;
|
||||||
@@ -69,9 +68,7 @@ public class ActionEvaluator extends AgentRunningSubModule<EvaluatorInput, List<
|
|||||||
BeanUtil.copyProperties(data, temp);
|
BeanUtil.copyProperties(data, temp);
|
||||||
temp.setTendency(tendency);
|
temp.setTendency(tendency);
|
||||||
Map<String, String> availableActions = new HashMap<>();
|
Map<String, String> availableActions = new HashMap<>();
|
||||||
for (MetaActionInfo metaActionInfo : actionCapability.listAvailableActions()) {
|
actionCapability.listAvailableActions().forEach((key, info) -> availableActions.put(key, info.getDescription()));
|
||||||
availableActions.put(metaActionInfo.getKey(), metaActionInfo.getDescription());
|
|
||||||
}
|
|
||||||
temp.setAvailableActions(availableActions);
|
temp.setAvailableActions(availableActions);
|
||||||
list.add(temp);
|
list.add(temp);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user