diff --git a/agentscope-core/src/main/java/io/agentscope/core/ReActAgent.java b/agentscope-core/src/main/java/io/agentscope/core/ReActAgent.java index 2de490fa0..ecf3693b8 100644 --- a/agentscope-core/src/main/java/io/agentscope/core/ReActAgent.java +++ b/agentscope-core/src/main/java/io/agentscope/core/ReActAgent.java @@ -648,7 +648,10 @@ protected Mono summarizing() { postEvent -> { Msg finalMsg = postEvent - .getSummaryMessage(); + .getSummaryMessage() + .withGenerateReason( + GenerateReason + .MAX_ITERATIONS); memory.addMessage(finalMsg); return finalMsg; })); diff --git a/agentscope-core/src/test/java/io/agentscope/core/agent/ReActAgentTest.java b/agentscope-core/src/test/java/io/agentscope/core/agent/ReActAgentTest.java index 46536c692..11faa9146 100644 --- a/agentscope-core/src/test/java/io/agentscope/core/agent/ReActAgentTest.java +++ b/agentscope-core/src/test/java/io/agentscope/core/agent/ReActAgentTest.java @@ -29,6 +29,7 @@ import io.agentscope.core.agent.test.TestUtils; import io.agentscope.core.memory.InMemoryMemory; import io.agentscope.core.message.ContentBlock; +import io.agentscope.core.message.GenerateReason; import io.agentscope.core.message.Msg; import io.agentscope.core.message.MsgRole; import io.agentscope.core.message.TextBlock; @@ -476,9 +477,13 @@ void testMaxIterations() { // Get response with timeout // Verify it completes within reasonable time (not infinite loop) - agent.call(userMsg) - .timeout(Duration.ofMillis(TestConstants.DEFAULT_TEST_TIMEOUT_MS)) - .block(Duration.ofMillis(TestConstants.DEFAULT_TEST_TIMEOUT_MS)); + Msg response = + agent.call(userMsg) + .timeout(Duration.ofMillis(TestConstants.DEFAULT_TEST_TIMEOUT_MS)) + .block(Duration.ofMillis(TestConstants.DEFAULT_TEST_TIMEOUT_MS)); + + // Verify max iterations generate reason was respected + assertEquals(GenerateReason.MAX_ITERATIONS, response.getGenerateReason()); // Verify max iterations was respected assertTrue(