解决 Winsurf Claude Code 插件报错 Invalid 'user_id'(附 CC Switch 配置)

1. 问题复现

在 Winsurf 中通过 CC Switch 配置 Claude Code 使用 DeepSeek API 时,插件窗口弹出如下错误:

text

API Error: 400 {"error":{"message":"Invalid 'user_id': string does not match pattern. Expected a string that matches the pattern '^[a-zA-Z0-9_-]+$'.","type":"invalid_request_error","param":null,"code":"invalid_request_error"}

即便 API Token 和 Base URL 看起来都是对的,依然会出现这个错误,插件完全不可用。

2. 原因分析

该错误提示非常明确:请求中携带的 user_id 字段不合法,必须只包含字母、数字、下划线和连字符

在 CC Switch 环境中,这个 user_id 可能由以下几个地方引入:

  • 配置 JSON 顶层存在未知的 user_id 字段(例如你写了一个 "user_id": "lzx_dev_01" 带了下划线,是没问题的,但如果写成带 @ 或 # 等字符就会报错);

  • 环境变量 ANTHROPIC_AUTH_TOKEN 或模型名等字段被服务端误解析为 user_id

  • 使用了不正确的模型名(如含空格、特殊符号),中转服务在校验时将其作为 user_id 检查。

根本原因:请求体中某个字段出现了非 a-zA-Z0-9_- 的字符,而服务端期望一个干净的 user_id 格式

3. 最终正确配置(亲测通过)

以下 JSON 就是成功让 Winsurf + Claude Code 正常工作的 CC Switch 配置:

json

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxxx",
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_REASONING_MODEL": "deepseek-v4-pro",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK": "1",
    "CLAUDE_CODE_EFFORT_LEVEL": "max",
    "ENABLE_TOOL_SEARCH": "true"
  },
  "model": "deepseek-v4-pro"
}

注意:ANTHROPIC_AUTH_TOKEN 需换成你自己的 DeepSeek API Key(sk- 开头)。

4. 为什么这个配置能解决问题?

  1. 去掉了可能引起 user_id 歧义的字段
    如果你之前不小心在配置里添加了 "user_id": "xxx@yyy" 或类似字段,请务必删除,或改为纯 a-zA-Z0-9_- 格式(如 "user_id": "dev_01")。上面的配置中完全不包含 user_id,避免了字段污染。

  2. 模型名简洁干净
    使用 deepseek-v4-pro,而不是 deepseek-v4-pro[1m]。虽然 [1m] 可能也是合法的模型标识,但在中转场景下容易引发解析问题,去掉后更保险。

  3. 保留 DeepSeek 官方原样的 Base URL
    https://api.deepseek.com/anthropic(注意是 https:// 后面跟 api.deepseek.com/anthropic,路径正确,不要擅自添加多余斜杠或改动)。

  4. 环境变量全部使用合法字符
    所有的 VALUE 都是英文字母、数字、连字符,不存在空格、中文或特殊符号。

5. 操作步骤小结

  • 打开 Winsurf → Claude Code 设置 → CC Switch。

  • 删除或清空现有的配置。

  • 将上面的完整 JSON 复制进去。

  • 将 ANTHROPIC_AUTH_TOKEN 替换为你自己的 DeepSeek API Key。

  • 保存,重启插件或点击重连。

  • 如果仍出现错误,检查 API Key 是否正确、账户是否有额度。

6. 常见坑点

现象 可能原因 解决办法
400 Invalid 'user_id' 模型名含特殊符号、配置中混入空格/中文 按上面示例配置修改
401 Unauthorized API Key 错误或过期 重新生成 Key 并更新
404 Not Found Base URL 路径不正确 检查是否为 /anthropic 结尾
插件无响应 网络问题或 Token 限额 检查代理,确认 API 余额

7. 结语

遇到 Invalid 'user_id' 不要怀疑人生,它本质就是一个字符集校验问题。只要确保所有参与请求的字段都只包含 a-zA-Z0-9_-,同时使用 DeepSeek 官方正确的模型名和端点,问题就能秒解。

希望这篇记录能帮你快速绕过这个坑。如果觉得有用,欢迎收藏或分享给同样被这个问题卡住的伙伴儿。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐