fix: use undici ProxyAgent for Anthropic API (native fetch ignores agent)
All checks were successful
Deploy / deploy (push) Successful in 1m30s

This commit is contained in:
Cosmo
2026-05-01 12:21:15 +00:00
parent bf6a0bdee7
commit f8c842b474

View File

@@ -2,7 +2,7 @@ export const dynamic = 'force-dynamic'
export const runtime = 'nodejs' export const runtime = 'nodejs'
import { NextResponse } from 'next/server' import { NextResponse } from 'next/server'
import { HttpsProxyAgent } from 'https-proxy-agent' import { fetch as undiciFetch, ProxyAgent } from 'undici'
import { voiceBus } from '@/lib/voice-bus' import { voiceBus } from '@/lib/voice-bus'
import { systemPrompt } from '@/lib/voice-prompts' import { systemPrompt } from '@/lib/voice-prompts'
@@ -110,10 +110,11 @@ async function claudeRequest(system: string, messages: any[], tools?: any[]): Pr
} }
if (ANTHROPIC_PROXY) { if (ANTHROPIC_PROXY) {
fetchOptions.agent = new HttpsProxyAgent(ANTHROPIC_PROXY) fetchOptions.dispatcher = new ProxyAgent(ANTHROPIC_PROXY)
} }
const res = await fetch('https://api.anthropic.com/v1/messages', fetchOptions) const fetchFn = ANTHROPIC_PROXY ? undiciFetch : fetch
const res = await fetchFn('https://api.anthropic.com/v1/messages', fetchOptions)
if (!res.ok) { if (!res.ok) {
const err = await res.text() const err = await res.text()