cc-haha/docs/guide/third-party-models.md
2026-07-23 20:46:33 +08:00

5.3 KiB
Raw Blame History

第三方模型

Claude Code Haha 可以连接 Anthropic Messages、OpenAI Chat Completions 和 OpenAI Responses 三类接口。对桌面端用户来说,最可靠的入口不是手写环境变量,而是 设置 → Providers:应用会保存认证方式、模型映射,并在需要时启动本机协议代理。

推荐配置流程

  1. 打开桌面端的 设置 → Providers
  2. 选择内置预设,或新建自定义 Provider。
  3. 填写 Base URL、认证信息和协议格式。
  4. 至少配置主模型;服务商使用不同模型名时,再配置 Haiku、Sonnet 和 Opus 槽位。
  5. 先点击测试,确认认证和模型可用,再激活 Provider。
  6. 新建会话验证工具调用;只返回文本并不代表 Agent 工作流完整可用。

激活后,桌面端和由它启动的 CLI 会复用同一份 Provider 配置。不要再把另一套旧密钥写进 .env~/.claude/settings.json

选择正确的协议

Provider 格式 上游接口 适用场景
anthropic Anthropic Messages 服务商原生兼容 Anthropic 请求与响应
openai_chat /v1/chat/completions 服务商提供 OpenAI Chat Completions
openai_responses /v1/responses 服务商提供 OpenAI Responses

anthropic 会直接请求服务商,不替换协议。openai_chatopenai_responses 会由 Claude Code Haha 在本机启动回环代理,把 Claude Agent 流量转换成所选协议。这个代理只用于当前运行时,不需要把端口手工暴露到局域网。

如果提供商同时宣传“OpenAI 兼容”和“Anthropic 兼容”,以它实际实现完整、工具调用稳定的接口为准。不要仅根据 URL 中是否含有 /v1 推断协议。

认证与模型映射

认证头由服务商决定:

  • Anthropic API Key 通常使用 x-api-key
  • Bearer Token 通常使用 Authorization: Bearer
  • OpenAI 兼容服务通常使用 Bearer Token但私有网关可能不同。

模型槽位不是额外下载的模型,而是 Claude Agent 在不同任务中请求的逻辑档位。主模型必须能处理工具调用;其他槽位可以映射到同一个模型,也可以按成本和能力分别配置。某个服务商不支持的槽位可以留空。

模型名和服务商能力会持续变化,所以本文不维护一份容易过期的型号清单。请在 Provider 设置页使用服务商当前返回的模型 ID并通过测试按钮确认。

内置运行时

Claude Code Haha 还提供 Claude、OpenAI 和 Grok 的内置运行时。可用的登录方式取决于当前版本和本机账号状态;按照 Provider 页面显示的授权流程完成登录即可。

内置运行时与“自定义兼容接口”是两条路径。已有官方账号时优先使用内置运行时;连接中转服务、自建网关或本地模型时再创建自定义 Provider。

仅使用 CLI

纯 CLI 用户可以直接配置 Anthropic Messages 兼容端点:

ANTHROPIC_AUTH_TOKEN=sk-example
ANTHROPIC_BASE_URL=https://provider.example.com/anthropic
ANTHROPIC_MODEL=provider-model
./bin/claude-haha

这个方式不会自动把 Anthropic 请求转换成 OpenAI 协议。OpenAI Chat Completions 或 Responses 服务应先在桌面端创建 Provider让应用管理协议代理。完整变量和生效顺序见 环境变量

Azure OpenAI 使用项目内置的专用 Responses 路径,配置项见 Azure OpenAI 环境变量

LiteLLM进阶兼容层

只有在服务商没有可靠的 Anthropic 接口、又无法直接使用 Provider 协议转换时,才需要额外部署 LiteLLM。它会增加一个服务、一次协议转换和一层排查成本。

最小示例:

model_list:
  - model_name: provider-model
    litellm_params:
      model: openai/provider-model
      api_base: https://provider.example.com/v1
      api_key: os.environ/PROVIDER_API_KEY

启动 LiteLLM 后,把它的 Anthropic 兼容地址作为 anthropic Provider 接入。部署、鉴权和模型前缀以 LiteLLM 官方文档 为准。

能力边界

第三方模型要稳定运行 Agent 工作流,至少需要:

  • 正确处理多轮消息、system 内容和工具调用;
  • 保留 tool call ID并能接收对应的 tool result
  • 支持足够长的上下文和输出;
  • 在流式模式下发送结构完整、顺序正确的事件。

思考模式、effort、Prompt Cache、图像输入和结构化输出是否可用取决于所选协议、服务商和具体模型不能统一认定为“支持”或“不支持”。遇到问题时先关闭可选能力验证最小文本与工具调用再逐项恢复。

常见问题

现象 优先检查
401 / 403 认证头类型、Token 权限、Base URL 是否属于同一服务
404 Provider 格式是否选错、Base URL 是否重复包含接口路径
模型不存在 使用服务商真实模型 ID不要沿用其他平台的别名
一直输出文本但不执行工具 模型或网关是否完整支持工具调用
切换 Provider 后仍请求旧地址 是否同时在 .envsettings.json 和桌面端保存了配置
流式响应中断 先关闭可选能力,并检查网关是否改写或缓冲事件流