mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(cognition): rename Cognation core/capability and package references to Cognition
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package work.slhaf.partner.core.cognation;
|
package work.slhaf.partner.core.cognition;
|
||||||
|
|
||||||
import work.slhaf.partner.api.agent.factory.capability.annotation.Capability;
|
import work.slhaf.partner.api.agent.factory.capability.annotation.Capability;
|
||||||
import work.slhaf.partner.api.chat.pojo.Message;
|
import work.slhaf.partner.api.chat.pojo.Message;
|
||||||
@@ -6,8 +6,8 @@ import work.slhaf.partner.api.chat.pojo.Message;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
|
|
||||||
@Capability("cognation")
|
@Capability("cognition")
|
||||||
public interface CognationCapability {
|
public interface CognitionCapability {
|
||||||
|
|
||||||
String initiateTurn(String input, String target);
|
String initiateTurn(String input, String target);
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package work.slhaf.partner.core.cognation;
|
package work.slhaf.partner.core.cognition;
|
||||||
|
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -20,10 +20,10 @@ import java.util.concurrent.locks.ReentrantLock;
|
|||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@CapabilityCore(value = "cognation")
|
@CapabilityCore(value = "cognition")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class CognationCore extends PartnerCore<CognationCore> {
|
public class CognitionCore extends PartnerCore<CognitionCore> {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@@ -34,7 +34,8 @@ public class CognationCore extends PartnerCore<CognationCore> {
|
|||||||
* 主模型的聊天记录
|
* 主模型的聊天记录
|
||||||
*/
|
*/
|
||||||
private List<Message> chatMessages = new ArrayList<>();
|
private List<Message> chatMessages = new ArrayList<>();
|
||||||
public CognationCore() throws IOException, ClassNotFoundException {
|
|
||||||
|
public CognitionCore() throws IOException, ClassNotFoundException {
|
||||||
}
|
}
|
||||||
|
|
||||||
@CapabilityMethod
|
@CapabilityMethod
|
||||||
@@ -89,6 +90,6 @@ public class CognationCore extends PartnerCore<CognationCore> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getCoreKey() {
|
protected String getCoreKey() {
|
||||||
return "cognation-core";
|
return "cognition-core";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package work.slhaf.partner.core.cognation.exception;
|
package work.slhaf.partner.core.cognition.exception;
|
||||||
|
|
||||||
public class UserNotExistsException extends RuntimeException {
|
public class UserNotExistsException extends RuntimeException {
|
||||||
public UserNotExistsException(String message) {
|
public UserNotExistsException(String message) {
|
||||||
@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
|
|||||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||||
import work.slhaf.partner.api.agent.factory.component.annotation.AgentComponent;
|
import work.slhaf.partner.api.agent.factory.component.annotation.AgentComponent;
|
||||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
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;
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ class BuiltinCapabilityActionProvider implements BuiltinActionProvider {
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private PerceiveCapability perceiveCapability;
|
private PerceiveCapability perceiveCapability;
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ class BuiltinCapabilityActionProvider implements BuiltinActionProvider {
|
|||||||
Function<Map<String, Object>, String> invoker = params -> {
|
Function<Map<String, Object>, String> invoker = params -> {
|
||||||
String input = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "input");
|
String input = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "input");
|
||||||
String target = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "target");
|
String target = BuiltinActionRegistry.BuiltinActionDefinition.requireString(params, "target");
|
||||||
return cognationCapability.initiateTurn(input, target);
|
return cognitionCapability.initiateTurn(input, target);
|
||||||
};
|
};
|
||||||
|
|
||||||
return new BuiltinActionRegistry.BuiltinActionDefinition(
|
return new BuiltinActionRegistry.BuiltinActionDefinition(
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import work.slhaf.partner.core.action.ActionCapability;
|
|||||||
import work.slhaf.partner.core.action.ActionCore;
|
import work.slhaf.partner.core.action.ActionCore;
|
||||||
import work.slhaf.partner.core.action.entity.*;
|
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.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.module.modules.action.executor.entity.*;
|
import work.slhaf.partner.module.modules.action.executor.entity.*;
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ public class ActionExecutor extends AbstractAgentModule.Standalone {
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
private ParamsExtractor paramsExtractor;
|
private ParamsExtractor paramsExtractor;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
@@ -356,7 +356,7 @@ public class ActionExecutor extends AbstractAgentModule.Standalone {
|
|||||||
MetaActionInfo metaActionInfo = actionCapability.loadMetaActionInfo(action.getKey());
|
MetaActionInfo metaActionInfo = actionCapability.loadMetaActionInfo(action.getKey());
|
||||||
input.setHistoryActionResults(historyActionsResults);
|
input.setHistoryActionResults(historyActionsResults);
|
||||||
input.setParams(metaActionInfo.getParams());
|
input.setParams(metaActionInfo.getParams());
|
||||||
input.setRecentMessages(cognationCapability.getChatMessages());
|
input.setRecentMessages(cognitionCapability.getChatMessages());
|
||||||
input.setActionDescription(metaActionInfo.getDescription());
|
input.setActionDescription(metaActionInfo.getDescription());
|
||||||
input.setUserId(userId);
|
input.setUserId(userId);
|
||||||
return input;
|
return input;
|
||||||
@@ -366,7 +366,7 @@ public class ActionExecutor extends AbstractAgentModule.Standalone {
|
|||||||
List<String> additionalContext) {
|
List<String> additionalContext) {
|
||||||
ExtractorInput input = new ExtractorInput();
|
ExtractorInput input = new ExtractorInput();
|
||||||
input.setActivatedMemorySlices(memoryCapability.getActivatedSlices());
|
input.setActivatedMemorySlices(memoryCapability.getActivatedSlices());
|
||||||
input.setRecentMessages(cognationCapability.getChatMessages());
|
input.setRecentMessages(cognitionCapability.getChatMessages());
|
||||||
input.setMetaActionInfo(actionCapability.loadMetaActionInfo(action.getKey()));
|
input.setMetaActionInfo(actionCapability.loadMetaActionInfo(action.getKey()));
|
||||||
input.setHistoryActionResults(historyActionResults);
|
input.setHistoryActionResults(historyActionResults);
|
||||||
input.setAdditionalContext(additionalContext);
|
input.setAdditionalContext(additionalContext);
|
||||||
@@ -381,7 +381,7 @@ public class ActionExecutor extends AbstractAgentModule.Standalone {
|
|||||||
.description(executableAction.getDescription())
|
.description(executableAction.getDescription())
|
||||||
.history(executableAction.getHistory().get(executableAction.getExecutingStage()))
|
.history(executableAction.getHistory().get(executableAction.getExecutingStage()))
|
||||||
.status(executableAction.getStatus())
|
.status(executableAction.getStatus())
|
||||||
.recentMessages(cognationCapability.getChatMessages())
|
.recentMessages(cognitionCapability.getChatMessages())
|
||||||
.activatedSlices(memoryCapability.getActivatedSlices())
|
.activatedSlices(memoryCapability.getActivatedSlices())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import work.slhaf.partner.core.action.ActionCore.ExecutorType;
|
|||||||
import work.slhaf.partner.core.action.entity.MetaAction;
|
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.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.module.modules.action.executor.entity.GeneratorInput;
|
import work.slhaf.partner.module.modules.action.executor.entity.GeneratorInput;
|
||||||
import work.slhaf.partner.module.modules.action.executor.entity.GeneratorResult;
|
import work.slhaf.partner.module.modules.action.executor.entity.GeneratorResult;
|
||||||
import work.slhaf.partner.module.modules.action.executor.entity.RepairerInput;
|
import work.slhaf.partner.module.modules.action.executor.entity.RepairerInput;
|
||||||
@@ -46,7 +46,7 @@ public class ActionRepairer extends AbstractAgentModule.Sub<RepairerInput, Repai
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private ActionCapability actionCapability;
|
private ActionCapability actionCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
private DynamicActionGenerator dynamicActionGenerator;
|
private DynamicActionGenerator dynamicActionGenerator;
|
||||||
private RunnerClient runnerClient;
|
private RunnerClient runnerClient;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import work.slhaf.partner.core.action.ActionCore;
|
|||||||
import work.slhaf.partner.core.action.entity.*;
|
import work.slhaf.partner.core.action.entity.*;
|
||||||
import work.slhaf.partner.core.action.entity.cache.CacheAdjustData;
|
import work.slhaf.partner.core.action.entity.cache.CacheAdjustData;
|
||||||
import work.slhaf.partner.core.action.entity.cache.CacheAdjustMetaData;
|
import work.slhaf.partner.core.action.entity.cache.CacheAdjustMetaData;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
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.modules.action.executor.ActionExecutor;
|
import work.slhaf.partner.module.modules.action.executor.ActionExecutor;
|
||||||
@@ -50,7 +50,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
private final ActionAssemblyHelper assemblyHelper = new ActionAssemblyHelper();
|
private final ActionAssemblyHelper assemblyHelper = new ActionAssemblyHelper();
|
||||||
|
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private ActionCapability actionCapability;
|
private ActionCapability actionCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
@@ -228,7 +228,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// TODO target 指定行为待补充; 主动回复链路待补充
|
// TODO target 指定行为待补充; 主动回复链路待补充
|
||||||
cognationCapability.initiateTurn("系统提醒:存在待确认行动即将过期,请确认是否继续执行。pendingId=" + pendingId, userId);
|
cognitionCapability.initiateTurn("系统提醒:存在待确认行动即将过期,请确认是否继续执行。pendingId=" + pendingId, userId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("触发待确认行动提醒失败, pendingId: {}", pendingId, e);
|
log.warn("触发待确认行动提醒失败, pendingId: {}", pendingId, e);
|
||||||
}
|
}
|
||||||
@@ -294,7 +294,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
result == null ? "" : result //将会在 ActionExecutor
|
result == null ? "" : result //将会在 ActionExecutor
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
cognationCapability.initiateTurn(structuredSignal, action.getSource());
|
cognitionCapability.initiateTurn(structuredSignal, action.getSource());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("触发 immediate 行动完成自对话失败, actionUuid: {}", action.getUuid(), e);
|
log.warn("触发 immediate 行动完成自对话失败, actionUuid: {}", action.getUuid(), e);
|
||||||
}
|
}
|
||||||
@@ -312,7 +312,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
private ExtractorInput buildExtractorInput(PartnerRunningFlowContext context) {
|
private ExtractorInput buildExtractorInput(PartnerRunningFlowContext context) {
|
||||||
ExtractorInput input = new ExtractorInput();
|
ExtractorInput input = new ExtractorInput();
|
||||||
input.setInput(context.getInput());
|
input.setInput(context.getInput());
|
||||||
List<Message> chatMessages = cognationCapability.snapshotChatMessages();
|
List<Message> chatMessages = cognitionCapability.snapshotChatMessages();
|
||||||
List<Message> recentMessages = new ArrayList<>();
|
List<Message> recentMessages = new ArrayList<>();
|
||||||
if (chatMessages.size() > 5) {
|
if (chatMessages.size() > 5) {
|
||||||
recentMessages.addAll(chatMessages.subList(chatMessages.size() - 5, chatMessages.size() - 1));
|
recentMessages.addAll(chatMessages.subList(chatMessages.size() - 5, chatMessages.size() - 1));
|
||||||
@@ -326,7 +326,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
private EvaluatorInput buildEvaluatorInput(ExtractorResult extractorResult, String userId) {
|
private EvaluatorInput buildEvaluatorInput(ExtractorResult extractorResult, String userId) {
|
||||||
EvaluatorInput input = new EvaluatorInput();
|
EvaluatorInput input = new EvaluatorInput();
|
||||||
input.setTendencies(extractorResult.getTendencies());
|
input.setTendencies(extractorResult.getTendencies());
|
||||||
input.setRecentMessages(cognationCapability.snapshotChatMessages());
|
input.setRecentMessages(cognitionCapability.snapshotChatMessages());
|
||||||
input.setActivatedSlices(memoryCapability.getActivatedSlices());
|
input.setActivatedSlices(memoryCapability.getActivatedSlices());
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
@@ -432,7 +432,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
ConfirmerInput confirmerInput = new ConfirmerInput();
|
ConfirmerInput confirmerInput = new ConfirmerInput();
|
||||||
confirmerInput.setInput(context.getInput());
|
confirmerInput.setInput(context.getInput());
|
||||||
List<PendingActionRecord> pendingActions = actionCapability.listActivePendingActions(context.getSource());
|
List<PendingActionRecord> pendingActions = actionCapability.listActivePendingActions(context.getSource());
|
||||||
confirmerInput.setRecentMessages(cognationCapability.snapshotChatMessages());
|
confirmerInput.setRecentMessages(cognitionCapability.snapshotChatMessages());
|
||||||
confirmerInput.setPendingActions(pendingActions);
|
confirmerInput.setPendingActions(pendingActions);
|
||||||
return confirmerInput;
|
return confirmerInput;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
|
|||||||
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
|
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
|
||||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.ContextBlock;
|
import work.slhaf.partner.api.agent.runtime.interaction.flow.ContextBlock;
|
||||||
import work.slhaf.partner.api.chat.pojo.Message;
|
import work.slhaf.partner.api.chat.pojo.Message;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
@@ -42,7 +42,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
|
|||||||
""";
|
""";
|
||||||
|
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
|
|
||||||
@Init
|
@Init
|
||||||
public void init() {
|
public void init() {
|
||||||
@@ -112,9 +112,9 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateModuleContextAndChatMessages(PartnerRunningFlowContext runningFlowContext, String response) {
|
private void updateModuleContextAndChatMessages(PartnerRunningFlowContext runningFlowContext, String response) {
|
||||||
cognationCapability.getMessageLock().lock();
|
cognitionCapability.getMessageLock().lock();
|
||||||
try {
|
try {
|
||||||
List<Message> chatMessages = cognationCapability.getChatMessages();
|
List<Message> chatMessages = cognitionCapability.getChatMessages();
|
||||||
chatMessages.removeIf(this::isStructuredUserMessage);
|
chatMessages.removeIf(this::isStructuredUserMessage);
|
||||||
Message primaryUserMessage = new Message(
|
Message primaryUserMessage = new Message(
|
||||||
Message.Character.USER,
|
Message.Character.USER,
|
||||||
@@ -124,12 +124,12 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
|
|||||||
Message assistantMessage = new Message(Message.Character.ASSISTANT, response);
|
Message assistantMessage = new Message(Message.Character.ASSISTANT, response);
|
||||||
chatMessages.add(assistantMessage);
|
chatMessages.add(assistantMessage);
|
||||||
} finally {
|
} finally {
|
||||||
cognationCapability.getMessageLock().unlock();
|
cognitionCapability.getMessageLock().unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Message> snapshotConversationMessages() {
|
private List<Message> snapshotConversationMessages() {
|
||||||
List<Message> snapshot = new ArrayList<>(cognationCapability.snapshotChatMessages());
|
List<Message> snapshot = new ArrayList<>(cognitionCapability.snapshotChatMessages());
|
||||||
snapshot.removeIf(this::isStructuredUserMessage);
|
snapshot.removeIf(this::isStructuredUserMessage);
|
||||||
return snapshot;
|
return snapshot;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import work.slhaf.partner.api.agent.factory.component.annotation.Init;
|
|||||||
import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader;
|
import work.slhaf.partner.api.agent.runtime.config.AgentConfigLoader;
|
||||||
import work.slhaf.partner.api.common.entity.PersistableObject;
|
import work.slhaf.partner.api.common.entity.PersistableObject;
|
||||||
import work.slhaf.partner.common.config.PartnerAgentConfigLoader;
|
import work.slhaf.partner.common.config.PartnerAgentConfigLoader;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException;
|
import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException;
|
||||||
import work.slhaf.partner.core.memory.exception.UnExistedTopicException;
|
import work.slhaf.partner.core.memory.exception.UnExistedTopicException;
|
||||||
@@ -41,7 +41,7 @@ public class MemoryRuntime extends AbstractAgentModule.Standalone {
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
|
|
||||||
private final ReentrantLock runtimeLock = new ReentrantLock();
|
private final ReentrantLock runtimeLock = new ReentrantLock();
|
||||||
private Map<String, CopyOnWriteArrayList<SliceRef>> topicSlices = new HashMap<>();
|
private Map<String, CopyOnWriteArrayList<SliceRef>> topicSlices = new HashMap<>();
|
||||||
@@ -57,7 +57,7 @@ public class MemoryRuntime extends AbstractAgentModule.Standalone {
|
|||||||
|
|
||||||
private void checkAndSetMemoryId() {
|
private void checkAndSetMemoryId() {
|
||||||
String currentMemoryId = memoryCapability.getMemorySessionId();
|
String currentMemoryId = memoryCapability.getMemorySessionId();
|
||||||
if (currentMemoryId == null || cognationCapability.getChatMessages().isEmpty()) {
|
if (currentMemoryId == null || cognitionCapability.getChatMessages().isEmpty()) {
|
||||||
memoryCapability.refreshMemorySession();
|
memoryCapability.refreshMemorySession();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
|
||||||
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.annotation.InjectModule;
|
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException;
|
import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException;
|
||||||
import work.slhaf.partner.core.memory.exception.UnExistedTopicException;
|
import work.slhaf.partner.core.memory.exception.UnExistedTopicException;
|
||||||
@@ -31,7 +31,7 @@ public class MemorySelector extends AbstractAgentModule.Running<PartnerRunningFl
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
private MemoryRuntime memoryRuntime;
|
private MemoryRuntime memoryRuntime;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
@@ -58,7 +58,7 @@ public class MemorySelector extends AbstractAgentModule.Running<PartnerRunningFl
|
|||||||
EvaluatorInput evaluatorInput = EvaluatorInput.builder()
|
EvaluatorInput evaluatorInput = EvaluatorInput.builder()
|
||||||
.input(runningFlowContext.getInput())
|
.input(runningFlowContext.getInput())
|
||||||
.memorySlices(new ArrayList<>(candidates.values()))
|
.memorySlices(new ArrayList<>(candidates.values()))
|
||||||
.messages(cognationCapability.getChatMessages())
|
.messages(cognitionCapability.getChatMessages())
|
||||||
.build();
|
.build();
|
||||||
log.debug("[MemorySelector] 切片评估输入: {}", JSONObject.toJSONString(evaluatorInput));
|
log.debug("[MemorySelector] 切片评估输入: {}", JSONObject.toJSONString(evaluatorInput));
|
||||||
List<ActivatedMemorySlice> memorySlices = sliceSelectEvaluator.execute(evaluatorInput);
|
List<ActivatedMemorySlice> memorySlices = sliceSelectEvaluator.execute(evaluatorInput);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ 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.agent.factory.component.annotation.InjectModule;
|
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
|
||||||
import work.slhaf.partner.api.chat.pojo.Message;
|
import work.slhaf.partner.api.chat.pojo.Message;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.core.memory.pojo.ActivatedMemorySlice;
|
import work.slhaf.partner.core.memory.pojo.ActivatedMemorySlice;
|
||||||
import work.slhaf.partner.module.modules.memory.runtime.MemoryRuntime;
|
import work.slhaf.partner.module.modules.memory.runtime.MemoryRuntime;
|
||||||
@@ -28,14 +28,14 @@ public class MemorySelectExtractor extends AbstractAgentModule.Sub<PartnerRunnin
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectModule
|
@InjectModule
|
||||||
private MemoryRuntime memoryRuntime;
|
private MemoryRuntime memoryRuntime;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ExtractorResult execute(PartnerRunningFlowContext context) {
|
public ExtractorResult execute(PartnerRunningFlowContext context) {
|
||||||
log.debug("[MemorySelectExtractor] 主题提取模块开始...");
|
log.debug("[MemorySelectExtractor] 主题提取模块开始...");
|
||||||
List<Message> chatMessages = cognationCapability.snapshotChatMessages();
|
List<Message> chatMessages = cognitionCapability.snapshotChatMessages();
|
||||||
ExtractorResult extractorResult;
|
ExtractorResult extractorResult;
|
||||||
try {
|
try {
|
||||||
List<ActivatedMemorySlice> activatedMemorySlices = memoryCapability.getActivatedSlices();
|
List<ActivatedMemorySlice> activatedMemorySlices = memoryCapability.getActivatedSlices();
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import work.slhaf.partner.api.chat.pojo.Message;
|
|||||||
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
|
||||||
import work.slhaf.partner.core.action.entity.Schedulable;
|
import work.slhaf.partner.core.action.entity.Schedulable;
|
||||||
import work.slhaf.partner.core.action.entity.StateAction;
|
import work.slhaf.partner.core.action.entity.StateAction;
|
||||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
||||||
import work.slhaf.partner.core.memory.pojo.MemoryUnit;
|
import work.slhaf.partner.core.memory.pojo.MemoryUnit;
|
||||||
@@ -40,7 +40,7 @@ public class MemoryUpdater extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
private static final int MEMORY_UPDATE_TRIGGER_ROLL_LIMIT = 36;
|
private static final int MEMORY_UPDATE_TRIGGER_ROLL_LIMIT = 36;
|
||||||
|
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private CognationCapability cognationCapability;
|
private CognitionCapability cognitionCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
private MemoryCapability memoryCapability;
|
private MemoryCapability memoryCapability;
|
||||||
@InjectCapability
|
@InjectCapability
|
||||||
@@ -82,7 +82,7 @@ public class MemoryUpdater extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(PartnerRunningFlowContext context) {
|
public void execute(PartnerRunningFlowContext context) {
|
||||||
boolean trigger = cognationCapability.getChatMessages().size() >= MEMORY_UPDATE_TRIGGER_ROLL_LIMIT;
|
boolean trigger = cognitionCapability.getChatMessages().size() >= MEMORY_UPDATE_TRIGGER_ROLL_LIMIT;
|
||||||
if (!trigger) {
|
if (!trigger) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ public class MemoryUpdater extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
|
|
||||||
private void tryAutoUpdate() {
|
private void tryAutoUpdate() {
|
||||||
long currentTime = System.currentTimeMillis();
|
long currentTime = System.currentTimeMillis();
|
||||||
int chatCount = cognationCapability.snapshotChatMessages().size();
|
int chatCount = cognitionCapability.snapshotChatMessages().size();
|
||||||
if (currentTime - perceiveCapability.showLastInteract().toEpochMilli() > UPDATE_TRIGGER_INTERVAL && chatCount > 1) {
|
if (currentTime - perceiveCapability.showLastInteract().toEpochMilli() > UPDATE_TRIGGER_INTERVAL && chatCount > 1) {
|
||||||
triggerMemoryUpdate(true);
|
triggerMemoryUpdate(true);
|
||||||
log.info("[MemoryUpdater] 记忆更新: 自动触发");
|
log.info("[MemoryUpdater] 记忆更新: 自动触发");
|
||||||
@@ -107,12 +107,12 @@ public class MemoryUpdater extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
List<Message> chatSnapshot = cognationCapability.snapshotChatMessages();
|
List<Message> chatSnapshot = cognitionCapability.snapshotChatMessages();
|
||||||
if (chatSnapshot.size() <= 1) {
|
if (chatSnapshot.size() <= 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
updateMemory(chatSnapshot);
|
updateMemory(chatSnapshot);
|
||||||
cognationCapability.rollChatMessagesWithSnapshot(chatSnapshot.size(), CONTEXT_RETAIN_DIVISOR);
|
cognitionCapability.rollChatMessagesWithSnapshot(chatSnapshot.size(), CONTEXT_RETAIN_DIVISOR);
|
||||||
if (refreshMemoryId) {
|
if (refreshMemoryId) {
|
||||||
memoryCapability.refreshMemorySession();
|
memoryCapability.refreshMemorySession();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import work.slhaf.partner.core.action.ActionCapability;
|
|||||||
import work.slhaf.partner.core.action.ActionCore;
|
import work.slhaf.partner.core.action.ActionCore;
|
||||||
import work.slhaf.partner.core.action.entity.*;
|
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.cognition.CognitionCapability;
|
||||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||||
import work.slhaf.partner.module.modules.action.executor.ActionCorrector;
|
import work.slhaf.partner.module.modules.action.executor.ActionCorrector;
|
||||||
import work.slhaf.partner.module.modules.action.executor.ActionExecutor;
|
import work.slhaf.partner.module.modules.action.executor.ActionExecutor;
|
||||||
@@ -59,7 +59,7 @@ class ActionExecutorTest {
|
|||||||
@Mock
|
@Mock
|
||||||
MemoryCapability memoryCapability;
|
MemoryCapability memoryCapability;
|
||||||
@Mock
|
@Mock
|
||||||
CognationCapability cognationCapability;
|
CognitionCapability cognitionCapability;
|
||||||
@Mock
|
@Mock
|
||||||
ParamsExtractor paramsExtractor;
|
ParamsExtractor paramsExtractor;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -74,7 +74,7 @@ class ActionExecutorTest {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() {
|
void setUp() {
|
||||||
lenient().when(cognationCapability.getChatMessages()).thenReturn(Collections.emptyList());
|
lenient().when(cognitionCapability.getChatMessages()).thenReturn(Collections.emptyList());
|
||||||
lenient().when(memoryCapability.getActivatedSlices()).thenReturn(Collections.emptyList());
|
lenient().when(memoryCapability.getActivatedSlices()).thenReturn(Collections.emptyList());
|
||||||
lenient().when(actionCapability.putPhaserRecord(any(Phaser.class), any(ExecutableAction.class)))
|
lenient().when(actionCapability.putPhaserRecord(any(Phaser.class), any(ExecutableAction.class)))
|
||||||
.thenAnswer(inv -> new PhaserRecord(inv.getArgument(0), inv.getArgument(1)));
|
.thenAnswer(inv -> new PhaserRecord(inv.getArgument(0), inv.getArgument(1)));
|
||||||
|
|||||||
Reference in New Issue
Block a user