diff --git a/src/services/claudeConsoleRelayService.js b/src/services/claudeConsoleRelayService.js index 40a8b02d..6acec739 100644 --- a/src/services/claudeConsoleRelayService.js +++ b/src/services/claudeConsoleRelayService.js @@ -79,6 +79,12 @@ class ClaudeConsoleRelayService { const filteredHeaders = this._filterClientHeaders(clientHeaders); logger.debug(`[DEBUG] Filtered client headers: ${JSON.stringify(filteredHeaders)}`); + // 决定使用的 User-Agent:优先使用账户自定义的,否则透传客户端的,最后才使用默认值 + const userAgent = account.userAgent || + clientHeaders?.['user-agent'] || + clientHeaders?.['User-Agent'] || + this.defaultUserAgent; + // 准备请求配置 const requestConfig = { method: 'POST', @@ -87,7 +93,7 @@ class ClaudeConsoleRelayService { headers: { 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', - 'User-Agent': account.userAgent || this.defaultUserAgent, + 'User-Agent': userAgent, ...filteredHeaders }, httpsAgent: proxyAgent, @@ -231,6 +237,12 @@ class ClaudeConsoleRelayService { const filteredHeaders = this._filterClientHeaders(clientHeaders); logger.debug(`[DEBUG] Filtered client headers: ${JSON.stringify(filteredHeaders)}`); + // 决定使用的 User-Agent:优先使用账户自定义的,否则透传客户端的,最后才使用默认值 + const userAgent = account.userAgent || + clientHeaders?.['user-agent'] || + clientHeaders?.['User-Agent'] || + this.defaultUserAgent; + // 准备请求配置 const requestConfig = { method: 'POST', @@ -239,7 +251,7 @@ class ClaudeConsoleRelayService { headers: { 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', - 'User-Agent': account.userAgent || this.defaultUserAgent, + 'User-Agent': userAgent, ...filteredHeaders }, httpsAgent: proxyAgent, diff --git a/web/admin-spa/src/components/accounts/AccountForm.vue b/web/admin-spa/src/components/accounts/AccountForm.vue index 9802bed7..2f45e5b6 100644 --- a/web/admin-spa/src/components/accounts/AccountForm.vue +++ b/web/admin-spa/src/components/accounts/AccountForm.vue @@ -496,8 +496,11 @@ v-model="form.userAgent" type="text" class="form-input w-full" - placeholder="默认:claude-cli/1.0.61 (console, cli)" + placeholder="留空则透传客户端 User-Agent" > +

+ 留空时将自动使用客户端的 User-Agent,仅在需要固定特定 UA 时填写 +

@@ -853,8 +856,11 @@ v-model="form.userAgent" type="text" class="form-input w-full" - placeholder="默认:claude-cli/1.0.61 (console, cli)" + placeholder="留空则透传客户端 User-Agent" > +

+ 留空时将自动使用客户端的 User-Agent,仅在需要固定特定 UA 时填写 +