5.3 KiB
第三方模型
Claude Code Haha 可以连接 Anthropic Messages、OpenAI Chat Completions 和 OpenAI Responses 三类接口。对桌面端用户来说,最可靠的入口不是手写环境变量,而是 设置 → Providers:应用会保存认证方式、模型映射,并在需要时启动本机协议代理。
推荐配置流程
- 打开桌面端的 设置 → Providers。
- 选择内置预设,或新建自定义 Provider。
- 填写 Base URL、认证信息和协议格式。
- 至少配置主模型;服务商使用不同模型名时,再配置 Haiku、Sonnet 和 Opus 槽位。
- 先点击测试,确认认证和模型可用,再激活 Provider。
- 新建会话验证工具调用;只返回文本并不代表 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_chat 和 openai_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 后仍请求旧地址 | 是否同时在 .env、settings.json 和桌面端保存了配置 |
| 流式响应中断 | 先关闭可选能力,并检查网关是否改写或缓冲事件流 |