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);