mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(context): rename VisibleDomain into FocusedDomain, and optimize related context usage
This commit is contained in:
@@ -108,7 +108,7 @@ public class CognitionCore implements StateSerializable {
|
|||||||
appendRepeatedElements(document, root, "chat_message", resolveRecentChatMessages());
|
appendRepeatedElements(document, root, "chat_message", resolveRecentChatMessages());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Set.of(ContextBlock.VisibleDomain.COGNITION),
|
Set.of(ContextBlock.FocusedDomain.COMMUNICATION),
|
||||||
100,
|
100,
|
||||||
10,
|
10,
|
||||||
4
|
4
|
||||||
|
|||||||
@@ -27,10 +27,10 @@ class ContextWorkspace {
|
|||||||
private val lock = ReentrantReadWriteLock()
|
private val lock = ReentrantReadWriteLock()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据传入的 [ContextBlock.VisibleDomain] 列表,获取上下文块
|
* 根据传入的 [ContextBlock.FocusedDomain] 列表,获取上下文块
|
||||||
* @param domains 需要获取上下文的域列表,顺序将决定权重优先级,按照列表排序将具备线性权重分层,最终反映到 blockContent 列表的排序上
|
* @param domains 需要获取上下文的域列表,顺序将决定权重优先级,按照列表排序将具备线性权重分层,最终反映到 blockContent 列表的排序上
|
||||||
*/
|
*/
|
||||||
fun resolve(domains: List<ContextBlock.VisibleDomain>): ResolvedContext = lock.write {
|
fun resolve(domains: List<ContextBlock.FocusedDomain>): ResolvedContext = lock.write {
|
||||||
if (domains.isEmpty()) {
|
if (domains.isEmpty()) {
|
||||||
return@write ResolvedContext(emptyList())
|
return@write ResolvedContext(emptyList())
|
||||||
}
|
}
|
||||||
@@ -51,7 +51,7 @@ class ContextWorkspace {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
val matchedDomains = block.visibleTo.intersect(domainWeights.keys)
|
val matchedDomains = block.focusedOn.intersect(domainWeights.keys)
|
||||||
if (matchedDomains.isEmpty()) {
|
if (matchedDomains.isEmpty()) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -158,7 +158,7 @@ class ContextWorkspace {
|
|||||||
val payload = JSONObject()
|
val payload = JSONObject()
|
||||||
payload["blockName"] = block.sourceKey.blockName
|
payload["blockName"] = block.sourceKey.blockName
|
||||||
payload["source"] = block.sourceKey.source
|
payload["source"] = block.sourceKey.source
|
||||||
payload["visibleTo"] = block.visibleTo.map { it.name }
|
payload["focusedOn"] = block.focusedOn.map { it.name }
|
||||||
payload["fullRendered"] = block.blockContent.encodeToXmlString()
|
payload["fullRendered"] = block.blockContent.encodeToXmlString()
|
||||||
payload["compactRendered"] = block.compactBlock.encodeToXmlString()
|
payload["compactRendered"] = block.compactBlock.encodeToXmlString()
|
||||||
payload["abstractRendered"] = block.abstractBlock.encodeToXmlString()
|
payload["abstractRendered"] = block.abstractBlock.encodeToXmlString()
|
||||||
@@ -179,9 +179,9 @@ data class ContextBlock @JvmOverloads constructor(
|
|||||||
val compactBlock: BlockContent = blockContent,
|
val compactBlock: BlockContent = blockContent,
|
||||||
val abstractBlock: BlockContent = blockContent,
|
val abstractBlock: BlockContent = blockContent,
|
||||||
/**
|
/**
|
||||||
* 对哪些域可见
|
* 该 block 集中在哪些域
|
||||||
*/
|
*/
|
||||||
val visibleTo: Set<VisibleDomain>,
|
val focusedOn: Set<FocusedDomain>,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新的 [blockContent] 属性与其相同时,发生的衰退步长
|
* 新的 [blockContent] 属性与其相同时,发生的衰退步长
|
||||||
@@ -216,7 +216,7 @@ data class ContextBlock @JvmOverloads constructor(
|
|||||||
private var activationScore = 100.0
|
private var activationScore = 100.0
|
||||||
private var lastTouchedAt = Instant.now()
|
private var lastTouchedAt = Instant.now()
|
||||||
|
|
||||||
enum class VisibleDomain {
|
enum class FocusedDomain {
|
||||||
ACTION,
|
ACTION,
|
||||||
MEMORY,
|
MEMORY,
|
||||||
PERCEIVE,
|
PERCEIVE,
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class BuiltinCapabilityActionProvider implements BuiltinActionProvider {
|
|||||||
MemoryUnit unit = memoryCapability.getMemoryUnit(unitId);
|
MemoryUnit unit = memoryCapability.getMemoryUnit(unitId);
|
||||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||||
buildMemoryRecallFullBlock(unit, slice),
|
buildMemoryRecallFullBlock(unit, slice),
|
||||||
Set.of(ContextBlock.VisibleDomain.MEMORY),
|
Set.of(ContextBlock.FocusedDomain.MEMORY),
|
||||||
60,
|
60,
|
||||||
16,
|
16,
|
||||||
28
|
28
|
||||||
|
|||||||
@@ -12,10 +12,7 @@ import work.slhaf.partner.core.action.entity.MetaAction;
|
|||||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||||
import work.slhaf.partner.core.action.entity.intervention.InterventionType;
|
import work.slhaf.partner.core.action.entity.intervention.InterventionType;
|
||||||
import work.slhaf.partner.core.action.entity.intervention.MetaIntervention;
|
import work.slhaf.partner.core.action.entity.intervention.MetaIntervention;
|
||||||
import work.slhaf.partner.core.cognition.BlockContent;
|
import work.slhaf.partner.core.cognition.*;
|
||||||
import work.slhaf.partner.core.cognition.CognitionCapability;
|
|
||||||
import work.slhaf.partner.core.cognition.ContextBlock;
|
|
||||||
import work.slhaf.partner.core.cognition.ContextWorkspace;
|
|
||||||
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
|
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
|
||||||
import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler;
|
import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler;
|
||||||
import work.slhaf.partner.framework.agent.factory.capability.annotation.InjectCapability;
|
import work.slhaf.partner.framework.agent.factory.capability.annotation.InjectCapability;
|
||||||
@@ -133,7 +130,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
|||||||
String blockName = "acquire_intervention-" + actionId;
|
String blockName = "acquire_intervention-" + actionId;
|
||||||
String source = "action_executor";
|
String source = "action_executor";
|
||||||
contextWorkspace.register(new ContextBlock(
|
contextWorkspace.register(new ContextBlock(
|
||||||
new BlockContent(blockName, source) {
|
new CommunicationBlockContent(blockName, source, BlockContent.Urgency.HIGH, CommunicationBlockContent.Projection.SUPPLY) {
|
||||||
@Override
|
@Override
|
||||||
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||||
appendTextElement(document, root, "action_id", actionId);
|
appendTextElement(document, root, "action_id", actionId);
|
||||||
@@ -141,7 +138,7 @@ class BuiltinInterventionActionProvider implements BuiltinActionProvider {
|
|||||||
appendTextElement(document, root, "demand", demand);
|
appendTextElement(document, root, "demand", demand);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.COMMUNICATION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
10,
|
10,
|
||||||
10,
|
10,
|
||||||
20
|
20
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ public class ActionCorrectionRecognizer extends AbstractAgentModule.Sub<Correcti
|
|||||||
|
|
||||||
private Message resolveContextMessage() {
|
private Message resolveContextMessage() {
|
||||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.ACTION,
|
ContextBlock.FocusedDomain.ACTION,
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COGNITION,
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
)).encodeToMessage();
|
)).encodeToMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,9 +63,10 @@ public class ActionCorrector extends AbstractAgentModule.Sub<CorrectorInput, Res
|
|||||||
|
|
||||||
private Message resolveContextMessage() {
|
private Message resolveContextMessage() {
|
||||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.ACTION,
|
ContextBlock.FocusedDomain.ACTION,
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.COGNITION,
|
||||||
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
)).encodeToMessage();
|
)).encodeToMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildExecutingActionRecoveredFullBlock(snapshots, blockName, emittedAt, event),
|
buildExecutingActionRecoveredFullBlock(snapshots, blockName, emittedAt, event),
|
||||||
buildExecutingActionRecoveredCompactBlock(snapshots, blockName, emittedAt, event),
|
buildExecutingActionRecoveredCompactBlock(snapshots, blockName, emittedAt, event),
|
||||||
buildExecutingActionRecoveredAbstractBlock(snapshots, blockName, event),
|
buildExecutingActionRecoveredAbstractBlock(snapshots, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
100,
|
100,
|
||||||
12,
|
12,
|
||||||
1
|
1
|
||||||
@@ -97,7 +97,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildStateActionFullBlock(snapshot, blockName, emittedAt, event),
|
buildStateActionFullBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildStateActionCompactBlock(snapshot, blockName, emittedAt, event),
|
buildStateActionCompactBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildStateActionAbstractBlock(snapshot, blockName, event),
|
buildStateActionAbstractBlock(snapshot, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
70,
|
70,
|
||||||
18,
|
18,
|
||||||
10
|
10
|
||||||
@@ -151,7 +151,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildActionLaunchedFullBlock(snapshot, blockName, event, emittedAt),
|
buildActionLaunchedFullBlock(snapshot, blockName, event, emittedAt),
|
||||||
buildActionCompactBlock(snapshot, blockName, event, emittedAt),
|
buildActionCompactBlock(snapshot, blockName, event, emittedAt),
|
||||||
buildActionAbstractBlock(snapshot, blockName, event),
|
buildActionAbstractBlock(snapshot, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
28,
|
28,
|
||||||
6,
|
6,
|
||||||
18
|
18
|
||||||
@@ -230,7 +230,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildActionStageFullBlock(snapshot, blockName, emittedAt, event),
|
buildActionStageFullBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildActionStageCompactBlock(snapshot, blockName, emittedAt, event),
|
buildActionStageCompactBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildActionStageAbstractBlock(snapshot, blockName, event),
|
buildActionStageAbstractBlock(snapshot, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
55,
|
55,
|
||||||
10,
|
10,
|
||||||
12
|
12
|
||||||
@@ -305,7 +305,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildActionCorrectionFullBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
buildActionCorrectionFullBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
||||||
buildActionCorrectionCompactBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
buildActionCorrectionCompactBlock(snapshot, reason, interventions, blockName, emittedAt, event),
|
||||||
buildActionCorrectionAbstractBlock(snapshot, interventions, blockName, event),
|
buildActionCorrectionAbstractBlock(snapshot, interventions, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
22,
|
22,
|
||||||
5,
|
5,
|
||||||
22
|
22
|
||||||
@@ -372,7 +372,7 @@ class ExecutingActionBlockManager {
|
|||||||
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
buildActionFinishedFullBlock(snapshot, blockName, emittedAt, event),
|
||||||
buildActionFinishedAbstractBlock(snapshot, blockName, event),
|
buildActionFinishedAbstractBlock(snapshot, blockName, event),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
35,
|
35,
|
||||||
14,
|
14,
|
||||||
24
|
24
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ public class ParamsExtractor extends AbstractAgentModule.Sub<ExtractorInput, Res
|
|||||||
private Message resolveContextMessage() {
|
private Message resolveContextMessage() {
|
||||||
return cognitionCapability.contextWorkspace()
|
return cognitionCapability.contextWorkspace()
|
||||||
.resolve(List.of(
|
.resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.ACTION,
|
ContextBlock.FocusedDomain.ACTION,
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
))
|
))
|
||||||
.encodeToMessage();
|
.encodeToMessage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
buildTendenciesEvaluatingFullBlock(tendencies),
|
buildTendenciesEvaluatingFullBlock(tendencies),
|
||||||
buildTendenciesEvaluatingCompactBlock(tendencies, datetime, input),
|
buildTendenciesEvaluatingCompactBlock(tendencies, datetime, input),
|
||||||
buildTendenciesEvaluatingAbstractBlock(tendencies, datetime, input),
|
buildTendenciesEvaluatingAbstractBlock(tendencies, datetime, input),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.COMMUNICATION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
60,
|
60,
|
||||||
18,
|
18,
|
||||||
4
|
4
|
||||||
@@ -200,7 +200,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
buildPendingBlock(blockName, executableAction, evaluatorResult),
|
buildPendingBlock(blockName, executableAction, evaluatorResult),
|
||||||
buildPendingCompactBlock(blockName, executableAction, evaluatorResult, input),
|
buildPendingCompactBlock(blockName, executableAction, evaluatorResult, input),
|
||||||
buildPendingAbstractBlock(blockName, executableAction, evaluatorResult, input),
|
buildPendingAbstractBlock(blockName, executableAction, evaluatorResult, input),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.FocusedDomain.ACTION),
|
||||||
30,
|
30,
|
||||||
10,
|
10,
|
||||||
5
|
5
|
||||||
|
|||||||
@@ -55,9 +55,10 @@ public class ActionEvaluator extends AbstractAgentModule.Sub<EvaluatorInput, Lis
|
|||||||
try {
|
try {
|
||||||
List<Message> messages = List.of(
|
List<Message> messages = List.of(
|
||||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.ACTION,
|
ContextBlock.FocusedDomain.ACTION,
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.COGNITION,
|
||||||
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
)).encodeToMessage(),
|
)).encodeToMessage(),
|
||||||
availableMetaActionContext(),
|
availableMetaActionContext(),
|
||||||
new Message(Message.Character.USER, tendency)
|
new Message(Message.Character.USER, tendency)
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ public class ActionExtractor extends AbstractAgentModule.Sub<String, Result<Extr
|
|||||||
protected @NotNull Result<ExtractorResult> doExecute(String input) {
|
protected @NotNull Result<ExtractorResult> doExecute(String input) {
|
||||||
List<Message> messages = List.of(
|
List<Message> messages = List.of(
|
||||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COMMUNICATION,
|
||||||
ContextBlock.VisibleDomain.ACTION
|
ContextBlock.FocusedDomain.ACTION
|
||||||
)).encodeToMessage(),
|
)).encodeToMessage(),
|
||||||
new Message(Message.Character.USER, input)
|
new Message(Message.Character.USER, input)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
|
|||||||
|
|
||||||
private List<Message> buildChatMessages(PartnerRunningFlowContext runningFlowContext) {
|
private List<Message> buildChatMessages(PartnerRunningFlowContext runningFlowContext) {
|
||||||
ResolvedContext resolvedContext = cognitionCapability.contextWorkspace()
|
ResolvedContext resolvedContext = cognitionCapability.contextWorkspace()
|
||||||
.resolve(List.of(ContextBlock.VisibleDomain.COMMUNICATION, ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION));
|
.resolve(List.of(ContextBlock.FocusedDomain.COGNITION, ContextBlock.FocusedDomain.ACTION, ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.PERCEIVE));
|
||||||
List<BlockContent> communicationBlocks = resolvedContext.getBlocks();
|
List<BlockContent> communicationBlocks = resolvedContext.getBlocks();
|
||||||
List<Message> historyMessages = snapshotConversationMessages();
|
List<Message> historyMessages = snapshotConversationMessages();
|
||||||
List<Message> temp = new ArrayList<>(historyMessages.size() + 2);
|
List<Message> temp = new ArrayList<>(historyMessages.size() + 2);
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ public class DialogRolling extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
private void applyRolling(RollingResult result) {
|
private void applyRolling(RollingResult result) {
|
||||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||||
buildDialogAbstractBlock(result.summary(), result.memoryUnit().getId(), result.memorySlice().getId()),
|
buildDialogAbstractBlock(result.summary(), result.memoryUnit().getId(), result.memorySlice().getId()),
|
||||||
Set.of(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.COMMUNICATION),
|
Set.of(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.COMMUNICATION),
|
||||||
20,
|
20,
|
||||||
5,
|
5,
|
||||||
10
|
10
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class MemorySelector extends AbstractAgentModule.Running<PartnerRunningFl
|
|||||||
buildMemoryFullBlock(activatedSlices),
|
buildMemoryFullBlock(activatedSlices),
|
||||||
buildMemoryCompactBlock(activatedSlices),
|
buildMemoryCompactBlock(activatedSlices),
|
||||||
buildMemoryAbstractBlock(activatedSlices),
|
buildMemoryAbstractBlock(activatedSlices),
|
||||||
Set.of(ContextBlock.VisibleDomain.MEMORY),
|
Set.of(ContextBlock.FocusedDomain.MEMORY),
|
||||||
18,
|
18,
|
||||||
8,
|
8,
|
||||||
16
|
16
|
||||||
|
|||||||
@@ -50,8 +50,7 @@ public class SliceSelectEvaluator extends AbstractAgentModule.Sub<EvaluatorInput
|
|||||||
CountDownLatch latch = new CountDownLatch(preparedSlices.size());
|
CountDownLatch latch = new CountDownLatch(preparedSlices.size());
|
||||||
|
|
||||||
Message contextMessage = cognitionCapability.contextWorkspace().resolve(List.of(
|
Message contextMessage = cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
|
||||||
)).encodeToMessage();
|
)).encodeToMessage();
|
||||||
|
|
||||||
for (ActivatedMemorySlice slice : preparedSlices) {
|
for (ActivatedMemorySlice slice : preparedSlices) {
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class MemorySelectExtractor extends AbstractAgentModule.Sub<ExtractorInpu
|
|||||||
|
|
||||||
private Message resolveContextMessage() {
|
private Message resolveContextMessage() {
|
||||||
return cognitionCapability.contextWorkspace().resolve(List.of(
|
return cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.COGNITION, ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.COMMUNICATION, ContextBlock.FocusedDomain.MEMORY
|
||||||
)).encodeToMessage();
|
)).encodeToMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ public class MemoryUpdater extends AbstractAgentModule.Standalone implements Aft
|
|||||||
Result<MemoryTopicResult> extractResult = formattedChat(
|
Result<MemoryTopicResult> extractResult = formattedChat(
|
||||||
List.of(
|
List.of(
|
||||||
cognitionCapability.contextWorkspace().resolve(List.of(
|
cognitionCapability.contextWorkspace().resolve(List.of(
|
||||||
ContextBlock.VisibleDomain.COGNITION,
|
ContextBlock.FocusedDomain.COGNITION,
|
||||||
ContextBlock.VisibleDomain.MEMORY
|
ContextBlock.FocusedDomain.MEMORY
|
||||||
)).encodeToMessage(),
|
)).encodeToMessage(),
|
||||||
resolveTopicTaskMessage(result, slicedMessages)
|
resolveTopicTaskMessage(result, slicedMessages)
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class PerceiveMonitor extends AbstractAgentModule.Running<PartnerRunningF
|
|||||||
appendTextElement(document, root, "current_time", ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
appendTextElement(document, root, "current_time", ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Set.of(ContextBlock.VisibleDomain.COMMUNICATION),
|
Set.of(ContextBlock.FocusedDomain.PERCEIVE),
|
||||||
100,
|
100,
|
||||||
30,
|
30,
|
||||||
0
|
0
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class ContextExceptionReporter implements ExceptionReporter {
|
|||||||
ExceptionReport report = exception.toReport();
|
ExceptionReport report = exception.toReport();
|
||||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||||
buildExceptionReportBlock(report),
|
buildExceptionReportBlock(report),
|
||||||
Set.of(ContextBlock.VisibleDomain.COGNITION),
|
Set.of(ContextBlock.FocusedDomain.COGNITION),
|
||||||
10,
|
10,
|
||||||
10,
|
10,
|
||||||
0
|
0
|
||||||
|
|||||||
@@ -36,19 +36,19 @@ class ContextWorkspaceTest {
|
|||||||
blockName = "low",
|
blockName = "low",
|
||||||
source = "source-low",
|
source = "source-low",
|
||||||
content = "low",
|
content = "low",
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.COGNITION)
|
visibleTo = setOf(ContextBlock.FocusedDomain.COGNITION)
|
||||||
)
|
)
|
||||||
val midWeight = contextBlock(
|
val midWeight = contextBlock(
|
||||||
blockName = "mid",
|
blockName = "mid",
|
||||||
source = "source-mid",
|
source = "source-mid",
|
||||||
content = "mid",
|
content = "mid",
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
val highWeight = contextBlock(
|
val highWeight = contextBlock(
|
||||||
blockName = "high",
|
blockName = "high",
|
||||||
source = "source-high",
|
source = "source-high",
|
||||||
content = "high",
|
content = "high",
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION, ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.ACTION, ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
|
|
||||||
manager.register(highWeight)
|
manager.register(highWeight)
|
||||||
@@ -57,9 +57,9 @@ class ContextWorkspaceTest {
|
|||||||
|
|
||||||
val resolved = manager.resolve(
|
val resolved = manager.resolve(
|
||||||
listOf(
|
listOf(
|
||||||
ContextBlock.VisibleDomain.ACTION,
|
ContextBlock.FocusedDomain.ACTION,
|
||||||
ContextBlock.VisibleDomain.MEMORY,
|
ContextBlock.FocusedDomain.MEMORY,
|
||||||
ContextBlock.VisibleDomain.COGNITION
|
ContextBlock.FocusedDomain.COGNITION
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -77,27 +77,27 @@ class ContextWorkspaceTest {
|
|||||||
source = "main",
|
source = "main",
|
||||||
content = "older",
|
content = "older",
|
||||||
replaceFadeFactor = 20.0,
|
replaceFadeFactor = 20.0,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
val newer = contextBlock(
|
val newer = contextBlock(
|
||||||
blockName = "memory",
|
blockName = "memory",
|
||||||
source = "main",
|
source = "main",
|
||||||
content = "newer",
|
content = "newer",
|
||||||
replaceFadeFactor = 20.0,
|
replaceFadeFactor = 20.0,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
val otherSource = contextBlock(
|
val otherSource = contextBlock(
|
||||||
blockName = "memory",
|
blockName = "memory",
|
||||||
source = "secondary",
|
source = "secondary",
|
||||||
content = "other-source",
|
content = "other-source",
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
|
|
||||||
manager.register(older)
|
manager.register(older)
|
||||||
manager.register(newer)
|
manager.register(newer)
|
||||||
manager.register(otherSource)
|
manager.register(otherSource)
|
||||||
|
|
||||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||||
|
|
||||||
assertEquals(2, resolved.blocks.size)
|
assertEquals(2, resolved.blocks.size)
|
||||||
assertEquals("other-source", (resolved.blocks[1] as TestBlockContent).content)
|
assertEquals("other-source", (resolved.blocks[1] as TestBlockContent).content)
|
||||||
@@ -117,7 +117,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = AttributedTestBlockContent("memory", "main", "older", "historic"),
|
blockContent = AttributedTestBlockContent("memory", "main", "older", "historic"),
|
||||||
compactBlock = AttributedTestBlockContent("memory", "main", "older-compact", "historic"),
|
compactBlock = AttributedTestBlockContent("memory", "main", "older-compact", "historic"),
|
||||||
abstractBlock = AttributedTestBlockContent("memory", "main", "older-abstract", "historic"),
|
abstractBlock = AttributedTestBlockContent("memory", "main", "older-abstract", "historic"),
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||||
replaceFadeFactor = 20.0,
|
replaceFadeFactor = 20.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
@@ -128,14 +128,14 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = AttributedTestBlockContent("memory", "main", "newer", "latest"),
|
blockContent = AttributedTestBlockContent("memory", "main", "newer", "latest"),
|
||||||
compactBlock = AttributedTestBlockContent("memory", "main", "newer-compact", "latest"),
|
compactBlock = AttributedTestBlockContent("memory", "main", "newer-compact", "latest"),
|
||||||
abstractBlock = AttributedTestBlockContent("memory", "main", "newer-abstract", "latest"),
|
abstractBlock = AttributedTestBlockContent("memory", "main", "newer-abstract", "latest"),
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||||
replaceFadeFactor = 20.0,
|
replaceFadeFactor = 20.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||||
|
|
||||||
val aggregatedXml = resolved.blocks.single().encodeToXmlString()
|
val aggregatedXml = resolved.blocks.single().encodeToXmlString()
|
||||||
assertTrue(aggregatedXml.contains("<snapshot category=\"latest\" source=\"main\" urgency=\"normal\">"))
|
assertTrue(aggregatedXml.contains("<snapshot category=\"latest\" source=\"main\" urgency=\"normal\">"))
|
||||||
@@ -152,20 +152,20 @@ class ContextWorkspaceTest {
|
|||||||
source = "main",
|
source = "main",
|
||||||
content = "evicted",
|
content = "evicted",
|
||||||
replaceFadeFactor = 100.0,
|
replaceFadeFactor = 100.0,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
val replacement = contextBlock(
|
val replacement = contextBlock(
|
||||||
blockName = "memory",
|
blockName = "memory",
|
||||||
source = "main",
|
source = "main",
|
||||||
content = "replacement",
|
content = "replacement",
|
||||||
replaceFadeFactor = 100.0,
|
replaceFadeFactor = 100.0,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY)
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY)
|
||||||
)
|
)
|
||||||
|
|
||||||
manager.register(evicted)
|
manager.register(evicted)
|
||||||
manager.register(replacement)
|
manager.register(replacement)
|
||||||
|
|
||||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||||
|
|
||||||
assertEquals(listOf("replacement"), resolved.blocks.map { (it as TestBlockContent).content })
|
assertEquals(listOf("replacement"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||||
}
|
}
|
||||||
@@ -195,7 +195,7 @@ class ContextWorkspaceTest {
|
|||||||
|
|
||||||
manager.expire("memory", "main")
|
manager.expire("memory", "main")
|
||||||
|
|
||||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||||
|
|
||||||
assertEquals(listOf("survivor"), resolved.blocks.map { (it as TestBlockContent).content })
|
assertEquals(listOf("survivor"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||||
}
|
}
|
||||||
@@ -218,7 +218,7 @@ class ContextWorkspaceTest {
|
|||||||
manager.expire("memory", "main")
|
manager.expire("memory", "main")
|
||||||
manager.register(restored)
|
manager.register(restored)
|
||||||
|
|
||||||
val resolved = manager.resolve(listOf(ContextBlock.VisibleDomain.MEMORY))
|
val resolved = manager.resolve(listOf(ContextBlock.FocusedDomain.MEMORY))
|
||||||
|
|
||||||
assertEquals(listOf("restored"), resolved.blocks.map { (it as TestBlockContent).content })
|
assertEquals(listOf("restored"), resolved.blocks.map { (it as TestBlockContent).content })
|
||||||
}
|
}
|
||||||
@@ -233,7 +233,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = original,
|
blockContent = original,
|
||||||
compactBlock = compact,
|
compactBlock = compact,
|
||||||
abstractBlock = summary,
|
abstractBlock = summary,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||||
replaceFadeFactor = 40.0,
|
replaceFadeFactor = 40.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
@@ -245,7 +245,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = original,
|
blockContent = original,
|
||||||
compactBlock = compact,
|
compactBlock = compact,
|
||||||
abstractBlock = summary,
|
abstractBlock = summary,
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY),
|
focusedOn = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||||
replaceFadeFactor = 80.0,
|
replaceFadeFactor = 80.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
@@ -375,17 +375,17 @@ class ContextWorkspaceTest {
|
|||||||
content = "full",
|
content = "full",
|
||||||
compactContent = "compact",
|
compactContent = "compact",
|
||||||
abstractContent = "abstract",
|
abstractContent = "abstract",
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.ACTION),
|
visibleTo = setOf(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.ACTION),
|
||||||
replaceFadeFactor = 80.0
|
replaceFadeFactor = 80.0
|
||||||
)
|
)
|
||||||
block.applyReplaceFade()
|
block.applyReplaceFade()
|
||||||
manager.register(block)
|
manager.register(block)
|
||||||
|
|
||||||
val primaryResolved = manager.resolve(
|
val primaryResolved = manager.resolve(
|
||||||
listOf(ContextBlock.VisibleDomain.MEMORY, ContextBlock.VisibleDomain.ACTION)
|
listOf(ContextBlock.FocusedDomain.MEMORY, ContextBlock.FocusedDomain.ACTION)
|
||||||
)
|
)
|
||||||
val secondaryResolved = manager.resolve(
|
val secondaryResolved = manager.resolve(
|
||||||
listOf(ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION)
|
listOf(ContextBlock.FocusedDomain.PERCEIVE, ContextBlock.FocusedDomain.ACTION)
|
||||||
)
|
)
|
||||||
|
|
||||||
assertEquals(listOf("compact"), primaryResolved.blocks.map { (it as TestBlockContent).content })
|
assertEquals(listOf("compact"), primaryResolved.blocks.map { (it as TestBlockContent).content })
|
||||||
@@ -400,7 +400,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = TestBlockContent("memory", "main", "full-critical", BlockContent.Urgency.CRITICAL),
|
blockContent = TestBlockContent("memory", "main", "full-critical", BlockContent.Urgency.CRITICAL),
|
||||||
compactBlock = TestBlockContent("memory", "main", "compact-low", BlockContent.Urgency.LOW),
|
compactBlock = TestBlockContent("memory", "main", "compact-low", BlockContent.Urgency.LOW),
|
||||||
abstractBlock = TestBlockContent("memory", "main", "abstract-low", BlockContent.Urgency.LOW),
|
abstractBlock = TestBlockContent("memory", "main", "abstract-low", BlockContent.Urgency.LOW),
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION),
|
focusedOn = setOf(ContextBlock.FocusedDomain.ACTION),
|
||||||
replaceFadeFactor = 20.0,
|
replaceFadeFactor = 20.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
@@ -411,7 +411,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = TestBlockContent("memory", "main", "full-normal", BlockContent.Urgency.NORMAL),
|
blockContent = TestBlockContent("memory", "main", "full-normal", BlockContent.Urgency.NORMAL),
|
||||||
compactBlock = TestBlockContent("memory", "main", "compact-normal", BlockContent.Urgency.NORMAL),
|
compactBlock = TestBlockContent("memory", "main", "compact-normal", BlockContent.Urgency.NORMAL),
|
||||||
abstractBlock = TestBlockContent("memory", "main", "abstract-normal", BlockContent.Urgency.NORMAL),
|
abstractBlock = TestBlockContent("memory", "main", "abstract-normal", BlockContent.Urgency.NORMAL),
|
||||||
visibleTo = setOf(ContextBlock.VisibleDomain.ACTION),
|
focusedOn = setOf(ContextBlock.FocusedDomain.ACTION),
|
||||||
replaceFadeFactor = 80.0,
|
replaceFadeFactor = 80.0,
|
||||||
timeFadeFactor = 0.0,
|
timeFadeFactor = 0.0,
|
||||||
activateFactor = 0.0
|
activateFactor = 0.0
|
||||||
@@ -419,7 +419,7 @@ class ContextWorkspaceTest {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val resolved = manager.resolve(
|
val resolved = manager.resolve(
|
||||||
listOf(ContextBlock.VisibleDomain.PERCEIVE, ContextBlock.VisibleDomain.ACTION)
|
listOf(ContextBlock.FocusedDomain.PERCEIVE, ContextBlock.FocusedDomain.ACTION)
|
||||||
)
|
)
|
||||||
|
|
||||||
val aggregated = resolved.blocks.single()
|
val aggregated = resolved.blocks.single()
|
||||||
@@ -439,7 +439,7 @@ class ContextWorkspaceTest {
|
|||||||
content: String,
|
content: String,
|
||||||
compactContent: String = "${content}-compact",
|
compactContent: String = "${content}-compact",
|
||||||
abstractContent: String = "${content}-abstract",
|
abstractContent: String = "${content}-abstract",
|
||||||
visibleTo: Set<ContextBlock.VisibleDomain> = setOf(ContextBlock.VisibleDomain.MEMORY),
|
visibleTo: Set<ContextBlock.FocusedDomain> = setOf(ContextBlock.FocusedDomain.MEMORY),
|
||||||
replaceFadeFactor: Double = 10.0,
|
replaceFadeFactor: Double = 10.0,
|
||||||
timeFadeFactor: Double = 0.0,
|
timeFadeFactor: Double = 0.0,
|
||||||
activateFactor: Double = 0.0
|
activateFactor: Double = 0.0
|
||||||
@@ -448,7 +448,7 @@ class ContextWorkspaceTest {
|
|||||||
blockContent = TestBlockContent(blockName, source, content),
|
blockContent = TestBlockContent(blockName, source, content),
|
||||||
compactBlock = TestBlockContent(blockName, source, compactContent),
|
compactBlock = TestBlockContent(blockName, source, compactContent),
|
||||||
abstractBlock = TestBlockContent(blockName, source, abstractContent),
|
abstractBlock = TestBlockContent(blockName, source, abstractContent),
|
||||||
visibleTo = visibleTo,
|
focusedOn = visibleTo,
|
||||||
replaceFadeFactor = replaceFadeFactor,
|
replaceFadeFactor = replaceFadeFactor,
|
||||||
timeFadeFactor = timeFadeFactor,
|
timeFadeFactor = timeFadeFactor,
|
||||||
activateFactor = activateFactor
|
activateFactor = activateFactor
|
||||||
|
|||||||
Reference in New Issue
Block a user