From 7b298a51d0fb9153c4e054bab28bf99dde3ed409 Mon Sep 17 00:00:00 2001 From: fudawei Date: Sun, 8 Feb 2026 14:17:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E8=B0=83=E7=94=A8=E7=9A=84=E5=90=8E=E5=8F=B0=E5=92=8C?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/run/ToolCallingView.vue | 263 +++++++++++++++ data-agent-frontend/src/services/graph.ts | 3 + data-agent-frontend/src/views/AgentRun.vue | 201 ++++++++--- data-agent-management/pom.xml | 6 + .../dataagent/controller/GraphController.java | 14 +- .../ai/dataagent/dto/tool/ToolCallDTO.java | 15 + .../interceptor/ToolsInterceptor.java | 72 ++++ .../ai/dataagent/prompt/PromptConstant.java | 5 + .../ai/dataagent/prompt/PromptHelper.java | 6 + .../aimodelconfig/ReactAgentRegistry.java | 65 ++++ .../service/aimodelconfig/ToolFactory.java | 54 +++ .../service/graph/Context/StreamContext.java | 2 + .../service/react/ReactAgentService.java | 29 ++ .../service/react/ReactAgentServiceImpl.java | 313 ++++++++++++++++++ .../dataagent/tools/ListTableSchemaTool.java | 179 ++++++++++ .../tools/SequentialThinkingTool.java | 240 ++++++++++++++ .../ai/dataagent/tools/SqlExecuteTool.java | 165 +++++++++ .../ai/dataagent/tools/TodoWriteTool.java | 244 ++++++++++++++ .../prompts/default-data-analysis.txt | 68 ++++ pom.xml | 20 +- 20 files changed, 1910 insertions(+), 54 deletions(-) create mode 100644 data-agent-frontend/src/components/run/ToolCallingView.vue create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/dto/tool/ToolCallDTO.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/interceptor/ToolsInterceptor.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/aimodelconfig/ReactAgentRegistry.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/aimodelconfig/ToolFactory.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/react/ReactAgentService.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/react/ReactAgentServiceImpl.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/tools/ListTableSchemaTool.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/tools/SequentialThinkingTool.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/tools/SqlExecuteTool.java create mode 100644 data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/tools/TodoWriteTool.java create mode 100644 data-agent-management/src/main/resources/prompts/default-data-analysis.txt diff --git a/data-agent-frontend/src/components/run/ToolCallingView.vue b/data-agent-frontend/src/components/run/ToolCallingView.vue new file mode 100644 index 000000000..c347c6243 --- /dev/null +++ b/data-agent-frontend/src/components/run/ToolCallingView.vue @@ -0,0 +1,263 @@ + + + + + + + diff --git a/data-agent-frontend/src/services/graph.ts b/data-agent-frontend/src/services/graph.ts index ef50143c2..80154019c 100644 --- a/data-agent-frontend/src/services/graph.ts +++ b/data-agent-frontend/src/services/graph.ts @@ -22,6 +22,7 @@ export interface GraphRequest { humanFeedbackContent?: string; rejectedPlan: boolean; nl2sqlOnly: boolean; + reactAgent: boolean; } export interface GraphNodeResponse { @@ -42,6 +43,7 @@ export enum TextType { MARK_DOWN = 'MARK_DOWN', RESULT_SET = 'RESULT_SET', TEXT = 'TEXT', + TOOL_CALL_NODE = 'TOOL_CALL_NODE', } const API_BASE_URL = '/api'; @@ -71,6 +73,7 @@ class GraphService { params.append('humanFeedback', request.humanFeedback.toString()); params.append('rejectedPlan', request.rejectedPlan.toString()); params.append('nl2sqlOnly', request.nl2sqlOnly.toString()); + params.append('reactAgent', request.reactAgent.toString()); if (request.humanFeedbackContent) { params.append('humanFeedbackContent', request.humanFeedbackContent); diff --git a/data-agent-frontend/src/views/AgentRun.vue b/data-agent-frontend/src/views/AgentRun.vue index 1381af373..7d0a9a56a 100644 --- a/data-agent-frontend/src/views/AgentRun.vue +++ b/data-agent-frontend/src/views/AgentRun.vue @@ -64,6 +64,14 @@ :pageSize="resultSetDisplayConfig.pageSize" /> + +
+ +
+
+ +
+
+ {{ nodeBlock[0].nodeName }} +
+
+ +
+
@@ -228,15 +252,24 @@ > +
+ 智能推理 + +
+
仅NL2SQL
@@ -354,55 +387,51 @@