From 412ce895d9fa2403d1b290329f968563570e55d6 Mon Sep 17 00:00:00 2001 From: ichaobuster Date: Fri, 5 Dec 2025 11:08:09 +0800 Subject: [PATCH] fix(deepresearch): fix ResearchTeamNode error and missing edge from research_team to planner, preventing possible infinite loop --- .../example/deepresearch/config/DeepResearchConfiguration.java | 2 +- .../cloud/ai/example/deepresearch/node/ResearchTeamNode.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/cloud/ai/example/deepresearch/config/DeepResearchConfiguration.java b/src/main/java/com/alibaba/cloud/ai/example/deepresearch/config/DeepResearchConfiguration.java index 1c28272..b71e7fa 100644 --- a/src/main/java/com/alibaba/cloud/ai/example/deepresearch/config/DeepResearchConfiguration.java +++ b/src/main/java/com/alibaba/cloud/ai/example/deepresearch/config/DeepResearchConfiguration.java @@ -260,7 +260,7 @@ public StateGraph deepResearch(ChatClient researchAgent) throws GraphStateExcept Map.of("planner", "planner", "research_team", "research_team", END, END)) .addConditionalEdges("research_team", edge_async(new ResearchTeamDispatcher()), Map.of("professional_kb_decision", "professional_kb_decision", "parallel_executor", - "parallel_executor", END, END)) + "parallel_executor", "planner", "planner", END, END)) .addConditionalEdges("professional_kb_decision", edge_async(new ProfessionalKbDispatcher()), Map.of("professional_kb_rag", "professional_kb_rag", "reporter", "reporter", END, END)) .addEdge("professional_kb_rag", "reporter") diff --git a/src/main/java/com/alibaba/cloud/ai/example/deepresearch/node/ResearchTeamNode.java b/src/main/java/com/alibaba/cloud/ai/example/deepresearch/node/ResearchTeamNode.java index 577d7db..78cff07 100644 --- a/src/main/java/com/alibaba/cloud/ai/example/deepresearch/node/ResearchTeamNode.java +++ b/src/main/java/com/alibaba/cloud/ai/example/deepresearch/node/ResearchTeamNode.java @@ -54,7 +54,7 @@ public Map apply(OverAllState state) throws Exception { public boolean areAllExecutionResultsPresent(Plan plan) { if (CollectionUtils.isEmpty(plan.getSteps())) { - return false; + return true; } return plan.getSteps()