diff --git a/server/internal/channel/health.go b/server/internal/channel/health.go index 648b45c..1cc71ac 100644 --- a/server/internal/channel/health.go +++ b/server/internal/channel/health.go @@ -86,6 +86,15 @@ func (h *HealthMonitor) probe(ch *store.Channel) { req, _ := http.NewRequest(http.MethodGet, url, nil) req.Header.Set("Authorization", "Bearer "+key) req.Header.Set("Accept", "application/json") + // Anthropic 官方 API 只认 x-api-key(Bearer 被忽略),探测必须带上才不会误判不健康。 + // 两个头同时发:官方 API 忽略 Bearer,OpenAI 兼容渠道忽略 x-api-key,互不干扰。 + for _, f := range ch.FormatsEffective() { + if f == store.FormatMessages { + req.Header.Set("x-api-key", key) + req.Header.Set("anthropic-version", "2023-06-01") + break + } + } resp, err := h.hc.Do(req) ok := err == nil && resp.StatusCode >= 200 && resp.StatusCode < 300 if resp != nil {