perf: 优化自动压缩记忆的表现
This commit is contained in:
@@ -338,7 +338,7 @@ public class AgentScopeStatefulRuntimeTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotEmitAutoContextCompressionEventsWhenCompressionIsSkipped() {
|
||||
public void shouldEmitNoCompressionCompletedEventWhenCompressionIsSkipped() throws Exception {
|
||||
AgentInitRequest request = initRequest();
|
||||
AgentMemoryCompressionParameter parameter = new AgentMemoryCompressionParameter();
|
||||
parameter.setMsgThreshold(1);
|
||||
@@ -362,12 +362,18 @@ public class AgentScopeStatefulRuntimeTest {
|
||||
Sinks.Many<AgentRuntimeEvent> sink = Sinks.many().replay().all();
|
||||
AutoContextInterceptor interceptor = new AutoContextInterceptor(
|
||||
AgentRuntimeEventBridge.fixed(executionContext(), sink), memoryResult.getAutoContextConfig());
|
||||
CompletableFuture<List<AgentRuntimeEvent>> eventsFuture = sink.asFlux().take(2).collectList().toFuture();
|
||||
PreReasoningEvent event = new PreReasoningEvent(agent, "fake-model", null,
|
||||
List.of(Msg.builder().role(MsgRole.SYSTEM).textContent("system").build()));
|
||||
|
||||
interceptor.intercept(event).block();
|
||||
List<AgentRuntimeEvent> events = eventsFuture.get(3, TimeUnit.SECONDS);
|
||||
|
||||
Assert.assertTrue(sink.asFlux().take(Duration.ofMillis(100)).collectList().block().isEmpty());
|
||||
Assert.assertEquals(AgentRuntimeEventType.MEMORY_COMPRESSION_STARTED, events.get(0).getEventType());
|
||||
Assert.assertEquals(AgentRuntimeEventType.MEMORY_COMPRESSION_COMPLETED, events.get(1).getEventType());
|
||||
Assert.assertEquals(Boolean.FALSE, events.get(1).getPayload().get("compressed"));
|
||||
Assert.assertEquals("无需压缩上下文", events.get(1).getPayload().get("label"));
|
||||
Assert.assertEquals(0, ((Number) events.get(1).getPayload().get("eventCount")).intValue());
|
||||
Assert.assertTrue(event.getInputMessages().get(0).getTextContent().contains("CONTEXT_OFFLOAD"));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user