Provider 体系

ccgo 支持四种 API provider,通过环境变量选择(internal/api/providers.go):

Provider环境变量说明
firstParty默认直接调用 api.anthropic.com
bedrockCLAUDE_CODE_USE_BEDROCK=1AWS Bedrock
vertexCLAUDE_CODE_USE_VERTEX=1Google Vertex AI
foundryCLAUDE_CODE_USE_FOUNDRY=1自定义部署

也支持 OpenAI 兼容接口(internal/api/openai.go),通过 ANTHROPIC_BASE_URL 指向 OpenAI 兼容端点触发。

关键环境变量

变量说明
ANTHROPIC_API_KEYAnthropic API 密钥
ANTHROPIC_BASE_URL覆盖 API 基地址(用于代理或兼容接口)
CLAUDE_CODE_USE_BEDROCK启用 Bedrock provider
CLAUDE_CODE_USE_VERTEX启用 Vertex provider
CLAUDE_CODE_USE_FOUNDRY启用 Foundry provider
USER_TYPE设为 ant 时允许 staging 域名

模型选择

模型选择优先级(internal/cli/runner.go:61-67):

--model 参数 > settings.Model > api.GetModel()(默认)

默认模型通过 api.GetModel() 返回,支持环境变量覆盖。

流式 API

ccgo 使用 SSE 流式调用,处理以下事件类型(internal/api/stream.go):

事件说明
content_block_delta流式文本或 thinking 片段
content_block_start新 block 开始(text / tool_use / thinking)
content_block_stopblock 结束
message_stop消息结束

Tool use 的完整 JSON 在 content_block_stop 后才完整,需要缓冲拼接。

OpenAI 兼容层

internal/api/openai.go 和 openai_stream.go 实现了 OpenAI chat completions 接口的适配,将 Anthropic message format 转换为 OpenAI format,使 ccgo 可对接 OpenAI 兼容的后端(如本地部署模型)。

认证

internal/api/auth.go 处理各 provider 的认证逻辑,包括:

  • Anthropic:Bearer token(ANTHROPIC_API_KEY)
  • Bedrock:AWS Signature V4
  • Vertex:Google Application Default Credentials

相关页面