perf: 优化自动压缩记忆的表现

This commit is contained in:
2026-05-28 11:15:52 +08:00
parent 5c7182ac3f
commit 8b600f9d6c
2 changed files with 14 additions and 9 deletions

View File

@@ -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"));
}