This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-a2a.git


The following commit(s) were added to refs/heads/main by this push:
     new 5d2648b  Optimize the example (#13)
5d2648b is described below

commit 5d2648b5d94ae7b474c3c99dc69e6959d83c895a
Author: Drizzle <[email protected]>
AuthorDate: Thu Dec 25 10:07:41 2025 +0800

    Optimize the example (#13)
    
    * update
    
    Change-Id: Icb48afcf44893ad3c07fc0e243e333096d8e3ec0
    
    * optimize the code
    
    Change-Id: Iaa158a2bd2bc55475e7c55e7ae3392b4e2f28fa0
    
    * optimize the code
    
    Change-Id: I9fba77a503e387b5d9feab13cd144021b938ec1f
    
    ---------
    
    Co-authored-by: drizzle.zk <[email protected]>
---
 .../Common/src/main/java/common/QWModel.java          |  1 +
 .../src/main/java/org/example/common/TaskInfo.java    | 19 +++++++++++++++++++
 .../main/java/org/example/service/AgentService.java   | 16 +++++++++++-----
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git 
a/example/rocketmq-multiagent-base-adk/Common/src/main/java/common/QWModel.java 
b/example/rocketmq-multiagent-base-adk/Common/src/main/java/common/QWModel.java
index 3446ca6..5b05d4c 100644
--- 
a/example/rocketmq-multiagent-base-adk/Common/src/main/java/common/QWModel.java
+++ 
b/example/rocketmq-multiagent-base-adk/Common/src/main/java/common/QWModel.java
@@ -66,6 +66,7 @@ public class QWModel extends BaseLlm {
             .apiKey(API_KEY)
             .model(MODEL_NAME)
             .messages(messages)
+            .enableThinking(false)
             .resultFormat(GenerationParam.ResultFormat.MESSAGE)
             .build();
         return gen.call(param);
diff --git 
a/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/common/TaskInfo.java
 
b/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/common/TaskInfo.java
index ccd09ff..fe800bb 100644
--- 
a/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/common/TaskInfo.java
+++ 
b/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/common/TaskInfo.java
@@ -23,6 +23,7 @@ public class TaskInfo {
     private String taskDesc;
     private String userId;
     private String sessionId;
+    private String lastOutput = "";
     private Sinks.Many<String> sink;
 
     public TaskInfo(String taskId, String taskDesc, String sessionId, String 
userId, Sinks.Many<String> sink) {
@@ -33,6 +34,16 @@ public class TaskInfo {
         this.sink = sink;
     }
 
+    public TaskInfo(String taskId, String taskDesc, String userId, String 
sessionId, String lastOutput,
+        Many<String> sink) {
+        this.taskId = taskId;
+        this.taskDesc = taskDesc;
+        this.userId = userId;
+        this.sessionId = sessionId;
+        this.lastOutput = lastOutput;
+        this.sink = sink;
+    }
+
     public TaskInfo() {
     }
 
@@ -75,4 +86,12 @@ public class TaskInfo {
     public void setSink(Many<String> sink) {
         this.sink = sink;
     }
+
+    public String getLastOutput() {
+        return lastOutput;
+    }
+
+    public void setLastOutput(String lastOutput) {
+        this.lastOutput = lastOutput;
+    }
 }
diff --git 
a/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/service/AgentService.java
 
b/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/service/AgentService.java
index 512e17e..8d8c915 100644
--- 
a/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/service/AgentService.java
+++ 
b/example/rocketmq-multiagent-base-adk/SupervisorAgent-Web/src/main/java/org/example/service/AgentService.java
@@ -293,9 +293,13 @@ public class AgentService {
                     TaskState state = task.getStatus().state();
                     String msg = 
extractTextFromMessage(artifacts.get(artifacts.size() - 1));
                     log.info("receive msg: {}", msg);
-                    boolean result = emitMessage(sink, msg, false);
-                    if (!result) {
-                        throw new RuntimeException("client close stream");
+                    String lastOutput = taskInfo.getLastOutput();
+                    if (!lastOutput.equals(msg)) {
+                        boolean result = emitMessage(sink, msg, false);
+                        if (!result) {
+                            throw new RuntimeException("client close stream");
+                        }
+                        taskInfo.setLastOutput(msg);
                     }
                     if (state == TaskState.COMPLETED) {
                         StringBuilder stringBuilder = new StringBuilder();
@@ -361,13 +365,15 @@ public class AgentService {
         Flowable<Event> events = runner.runAsync(userId, sessionId, userMsg);
         events.blockingForEach(eventSub -> {
             boolean equals = lastQuestion.equals(eventSub.stringifyContent());
+            TaskInfo taskInfo = taskMap.get(taskId);
+            Many<String> sink = taskInfo.getSink();
             if (equals) {
+                sink.tryEmitComplete();
+                completeTask(taskInfo);
                 return;
             }
             lastQuestion = eventSub.stringifyContent();
             String content = lastQuestion;
-            TaskInfo taskInfo = taskMap.get(taskId);
-            Many<String> sink = taskInfo.getSink();
             if (!StringUtils.isEmpty(content)) {
                 if (content.startsWith("{")) {
                     try {

Reply via email to