From b3ff01f6463bfa5ed16753369abc3ad623df9e73 Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期五, 25 四月 2025 16:37:20 +0800
Subject: [PATCH] 有错的agent自动跳过

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerEncache.java |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerEncache.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerEncache.java
index a0a0f22..e1024fd 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerEncache.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerEncache.java
@@ -4,6 +4,8 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.locationtech.proj4j.CRSFactory;
 import org.locationtech.proj4j.CoordinateReferenceSystem;
 import org.locationtech.proj4j.CoordinateTransform;
@@ -29,6 +31,7 @@
 import com.smtaiserver.smtaiserver.javaai.metrics.base.SMTMetricsDef;
 import com.smtaiserver.smtaiserver.javaai.querydetail.SMTAIQueryDetail;
 import com.smtaiserver.smtaiserver.javaai.qwen.SMTQwenAgentManager;
+import com.smtaiserver.smtaiserver.javaai.qwen.SMTQwenApp;
 import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgent;
 import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgentKnowlgFile;
 import com.smtservlet.util.Json;
@@ -38,6 +41,8 @@
 {
 	@Value("${hswater.tables.global_config}")
 	protected String						_tableGlobalConfig;
+	
+	private static Logger 					_logger = LogManager.getLogger(SMTQwenApp.class);
 	
     public static String makeQueryStringAllRegExp(String str)
     {
@@ -295,21 +300,29 @@
 		
 		try
 		{
-			// 璇诲彇鎵�鏈塧mis鐨刟gent
-			db.querySQLNotify(
+			String sql = 
 				  " SELECT agent_id,agent_type,agent_xml,clz_name,clz_arguments, group_type, agent_title, agent_group, agent_order,inner_call"
 				+ " FROM ai_agent_amis A"
 			    + " LEFT JOIN ai_scene_group G ON A.agent_group = G.group_id"
 				+ " WHERE " + (debugMode ? " agent_order > 0 OR is_debug='Y'" : "agent_order > 0 AND is_debug IS NULL")
 				+ " ORDER BY abs(agent_order)"
-				, null,
-				new DBQueryNotify() {
+				;
+
+			// 璇诲彇鎵�鏈塧mis鐨刟gent
+			db.querySQLNotify(sql, null, new DBQueryNotify() {
 					@Override
 					public boolean onNextRecord(DBRecord rec) throws Exception 
 					{
-						SMTQwenAgent agent = (SMTQwenAgent)Class.forName(rec.getString("clz_name")).newInstance();
-						agent.initInstance(rec);
-						manager.addAgent(agent);
+						try
+						{
+							SMTQwenAgent agent = (SMTQwenAgent)Class.forName(rec.getString("clz_name")).newInstance();
+							agent.initInstance(rec);
+							manager.addAgent(agent);
+						}
+						catch(Exception ex)
+						{
+							_logger.fatal("load agent error and skip it : " + rec.getString("agent_id"), ex);
+						}
 						
 						return true;
 					}

--
Gitblit v1.9.3