From 2a80940879c3ac7caded14326184bbcffe0913a8 Mon Sep 17 00:00:00 2001 From: PeterZhong Date: Mon, 16 Jun 2025 00:40:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=89=80=E6=9C=89=E6=89=93?= =?UTF-8?q?=E6=96=AD=E6=B5=81=E7=A8=8B=E7=9A=84=E5=AF=B9=E8=AF=9D=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- host/Gateway.cs | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/host/Gateway.cs b/host/Gateway.cs index 8ef2dc7..07423a5 100644 --- a/host/Gateway.cs +++ b/host/Gateway.cs @@ -260,7 +260,15 @@ public class Gateway }catch (Exception ex) { log.Error(ex); - MessageBox.Show(ex.Message,"获取MCP列表失败"); + MessageListItem endMessageListItem2 = new ChatMessageItem + { + type = MessageType.WARNING, + content = $"MCP列表读取失败{ex.Message}", + id = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString(), + role = "system" + }; + callback?.Invoke(endMessageListItem2); + // MessageBox.Show(ex.Message,"获取MCP列表失败"); } goOn = true; string toolPattern = "([\\s\\S]*?)([\\s\\S]*?)<\\/name>([\\s\\S]*?)([\\s\\S]*?)<\\/arguments>([\\s\\S]*?)<\\/tool_use>"; @@ -273,10 +281,19 @@ public class Gateway bool executedTool = false; while (goOn) { + long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); loop++; if (loop > 500) { - MessageBox.Show("达到最大循环次数", "退出循环"); + MessageListItem endMessageListItem2 = new ChatMessageItem + { + type = MessageType.ERROR, + content = "达到最大循环次数,已退出循环。", + id = timestamp.ToString(), + role = "system" + }; + callback?.Invoke(endMessageListItem2); + // MessageBox.Show("达到最大循环次数", "退出循环"); break; } LlmJsonContent jsonContent = new LlmJsonContent() @@ -288,7 +305,6 @@ public class Gateway TopK = 7, MaxTokens = 1000, }; - long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); List mcpToolRequests = new List(); List promptRequests = new List(); var (toolMatched, toolRemaining) = ExtractMatchedPart(messageContent, toolPattern);