From dbdd44727867ddc223c0310b08d5836882e5456b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AC=E6=98=8E?= <83812544+Ed1s0nZ@users.noreply.github.com> Date: Mon, 10 Nov 2025 03:14:09 +0800 Subject: [PATCH] Update agent.go --- internal/agent/agent.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/agent/agent.go b/internal/agent/agent.go index 94b7e2db..dabfa544 100644 --- a/internal/agent/agent.go +++ b/internal/agent/agent.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "io" + "net" "net/http" "strings" "time" @@ -30,8 +31,28 @@ func NewAgent(cfg *config.OpenAIConfig, mcpServer *mcp.Server, logger *zap.Logge if maxIterations <= 0 { maxIterations = 30 } + + // 配置HTTP Transport,优化连接管理和超时设置 + transport := &http.Transport{ + DialContext: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext, + MaxIdleConns: 100, + MaxIdleConnsPerHost: 10, + IdleConnTimeout: 90 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ResponseHeaderTimeout: 5 * time.Minute, // 响应头超时 + DisableKeepAlives: false, // 启用连接复用 + } + + // 增加超时时间到30分钟,以支持长时间运行的AI推理 + // 特别是当使用流式响应或处理复杂任务时 return &Agent{ - openAIClient: &http.Client{Timeout: 5 * time.Minute}, + openAIClient: &http.Client{ + Timeout: 30 * time.Minute, // 从5分钟增加到30分钟 + Transport: transport, + }, config: cfg, mcpServer: mcpServer, logger: logger,