From 01496aab8a70aa0d36b5dd92c574650e942f77a6 Mon Sep 17 00:00:00 2001 From: hex2077 Date: Tue, 6 Jan 2026 21:24:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DClaude=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E7=A6=81=E7=94=A8tools=E5=92=8C=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E8=8A=82=E7=82=B9=E5=81=A5=E5=BA=B7=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当模型是Claude时,禁止使用tools配置 在UI API请求处理中跳过已禁用节点的健康检查 --- src/gemini/antigravity-core.js | 10 ++++++++++ src/ui-manager.js | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/src/gemini/antigravity-core.js b/src/gemini/antigravity-core.js index 27d43a3..0092136 100644 --- a/src/gemini/antigravity-core.js +++ b/src/gemini/antigravity-core.js @@ -289,6 +289,16 @@ function geminiToAntigravity(modelName, payload, projectId) { } template.request.toolConfig.functionCallingConfig.mode = 'VALIDATED'; + // 当模型是 Claude 时,禁止使用 tools + if (isClaudeModel) { + if (template.request.tools) { + delete template.request.tools; + } + if (template.request.toolConfig) { + delete template.request.toolConfig; + } + } + // 对于非 Claude 模型,删除 maxOutputTokens // Claude 模型需要保留 maxOutputTokens if (!isClaudeModel) { diff --git a/src/ui-manager.js b/src/ui-manager.js index aa77286..c7cf499 100644 --- a/src/ui-manager.js +++ b/src/ui-manager.js @@ -1313,6 +1313,13 @@ export async function handleUIApiRequests(method, pathParam, req, res, currentCo const results = []; for (const providerStatus of providers) { const providerConfig = providerStatus.config; + + // 跳过已禁用的节点 + if (providerConfig.isDisabled) { + console.log(`[UI API] Skipping health check for disabled provider: ${providerConfig.uuid}`); + continue; + } + try { // 传递 forceCheck = true 强制执行健康检查,忽略 checkHealth 配置 const healthResult = await providerPoolManager._checkProviderHealth(providerType, providerConfig, true);