LLM 模型配置(环境变量)
Carry Code 支持通过环境变量配置 AI 模型,便于与 CI/CD 流水线、容器化部署和现有开发工作流无缝集成。
环境变量配置允许你:
- 快速设置:无需编辑配置文件即可配置模型
- CI/CD 集成:在流水线中使用密钥管理
- 容器部署:通过环境变量注入凭证
- 多环境支持:为不同环境配置不同的模型
环境变量配置的优先级高于配置文件设置。当两者同时存在时,环境变量优先。
支持的环境变量
Section titled “支持的环境变量”服务商专用变量
Section titled “服务商专用变量”Carry Code 会自动检测并配置以下环境变量对应的模型:
| 服务商 | API Key 变量 | Base URL 变量(可选) | Model 变量(可选) |
|---|---|---|---|
| Anthropic | ANTHROPIC_AUTH_TOKEN | ANTHROPIC_BASE_URL | ANTHROPIC_MODEL |
| OpenAI | OPENAI_API_KEY | OPENAI_BASE_URL | OPENAI_MODEL |
| Google Gemini | GEMINI_API_KEY | GOOGLE_GEMINI_BASE_URL | GEMINI_MODEL |
| OpenRouter | OPENROUTER_API_KEY | OPENROUTER_BASE_URL | OPENROUTER_MODEL |
全局默认模型
Section titled “全局默认模型”| 变量 | 说明 | 示例 |
|---|---|---|
CARRYCODE_MODEL | 设置默认使用的模型 | anthropic-env:claude-opus-4-6 或 gpt-4o |
为你偏好的服务商设置 API Key:
# Anthropic Claudeexport ANTHROPIC_AUTH_TOKEN="your-anthropic-api-key"
# OpenAIexport OPENAI_API_KEY="your-openai-api-key"
# Google Geminiexport GEMINI_API_KEY="your-gemini-api-key"
# OpenRouterexport OPENROUTER_API_KEY="your-openrouter-api-key"自定义 Base URL
Section titled “自定义 Base URL”覆盖默认的 API 端点:
# 使用自定义 Anthropic 端点export ANTHROPIC_AUTH_TOKEN="your-key"export ANTHROPIC_BASE_URL="https://your-proxy.example.com"
# 使用自定义 OpenAI 端点(如 Azure OpenAI)export OPENAI_API_KEY="your-azure-key"export OPENAI_BASE_URL="https://your-resource.openai.azure.com/openai/deployments/your-deployment"覆盖服务商的默认模型:
# 使用 Claude Opus 4.5export ANTHROPIC_AUTH_TOKEN="your-key"export ANTHROPIC_MODEL="claude-opus-4-5-20250514"
# 使用 GPT-4o miniexport OPENAI_API_KEY="your-key"export OPENAI_MODEL="gpt-4o-mini"
# 使用 Gemini 2.5 Proexport GEMINI_API_KEY="your-key"export GEMINI_MODEL="gemini-2.5-pro"设置默认模型
Section titled “设置默认模型”使用 CARRYCODE_MODEL 指定默认使用的模型:
# 使用通过环境变量配置的 Anthropic 模型export ANTHROPIC_AUTH_TOKEN="your-key"export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"
# 或直接使用模型名称(匹配第一个拥有该模型的服务商)export OPENAI_API_KEY="your-key"export OPENAI_MODEL="gpt-4o"export CARRYCODE_MODEL="gpt-4o"Provider ID 命名规则
Section titled “Provider ID 命名规则”当通过环境变量配置模型时,CarryCode 会创建 ID 格式为 {provider}-env 的服务商条目:
| 环境变量 | 生成的 Provider ID |
|---|---|
ANTHROPIC_AUTH_TOKEN | anthropic-env |
OPENAI_API_KEY | openai-env |
GEMINI_API_KEY | gemini-env |
OPENROUTER_API_KEY | openrouter-env |
你可以通过这些 ID 引用模型:
# 切换到环境变量配置的 Anthropic 模型/model switch anthropic-env
# 设置为默认/model default openai-env通过环境变量配置的模型会继承 Carry Code 内置服务商预设的默认参数:
- 上下文窗口:最大上下文长度
- Temperature:默认采样温度
- Top-P:核采样参数
- Max Tokens:最大输出 token
这些默认值定义在 ConfigProviders.toml 中,当你通过环境变量配置模型时会自动应用。
Shell 配置
Section titled “Shell 配置”添加到 ~/.bashrc 或 ~/.bash_profile:
# Carry Code 模型配置export ANTHROPIC_AUTH_TOKEN="your-anthropic-key"export OPENAI_API_KEY="your-openai-key"export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"添加到 ~/.zshrc:
# Carry Code 模型配置export ANTHROPIC_AUTH_TOKEN="your-anthropic-key"export OPENAI_API_KEY="your-openai-key"export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"添加到 ~/.config/fish/config.fish:
# Carry Code 模型配置set -gx ANTHROPIC_AUTH_TOKEN "your-anthropic-key"set -gx OPENAI_API_KEY "your-openai-key"set -gx CARRYCODE_MODEL "anthropic-env:claude-opus-4-6"Docker 与 Kubernetes
Section titled “Docker 与 Kubernetes”Docker
Section titled “Docker”运行容器时传递环境变量:
docker run -it \ -e ANTHROPIC_AUTH_TOKEN="your-key" \ -e CARRYCODE_MODEL="anthropic-env:claude-opus-4-6" \ carrycode/carrycode:latest或使用环境变量文件:
# .env 文件ANTHROPIC_AUTH_TOKEN=your-keyOPENAI_API_KEY=your-keyCARRYCODE_MODEL=anthropic-env:claude-opus-4-6docker run -it --env-file .env carrycode/carrycode:latestKubernetes
Section titled “Kubernetes”使用 ConfigMap 或 Secret:
apiVersion: v1kind: Secretmetadata: name: carrycode-secretstype: OpaquestringData: anthropic-auth-token: "your-key" openai-api-key: "your-key"---apiVersion: v1kind: Podmetadata: name: carrycodespec: containers: - name: carrycode image: carrycode/carrycode:latest env: - name: ANTHROPIC_AUTH_TOKEN valueFrom: secretKeyRef: name: carrycode-secrets key: anthropic-auth-token - name: CARRYCODE_MODEL value: "anthropic-env:claude-opus-4-6"CI/CD 集成
Section titled “CI/CD 集成”GitHub Actions
Section titled “GitHub Actions”使用 GitHub Secrets 存储 API Key:
name: AI Code Reviewon: [pull_request]
jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Carry Code env: ANTHROPIC_AUTH_TOKEN: ${{ secrets.ANTHROPIC_API_KEY }} CARRYCODE_MODEL: "anthropic-env:claude-opus-4-6" run: | # 安装并运行 Carry Code carrycode "Review the changes in this PR"GitLab CI
Section titled “GitLab CI”使用 GitLab CI/CD 变量:
code-review: stage: test script: - carrycode "Review the code changes" variables: ANTHROPIC_AUTH_TOKEN: $ANTHROPIC_API_KEY CARRYCODE_MODEL: "anthropic-env:claude-opus-4-6"验证环境变量
Section titled “验证环境变量”检查环境变量是否正确设置:
# 列出所有 Carry Code 相关的环境变量env | grep -E "(ANTHROPIC|OPENAI|GEMINI|OPENROUTER|CARRYCODE)"检查活动配置
Section titled “检查活动配置”在 Carry Code 中,使用 /model 命令查看所有已配置的模型,包括通过环境变量配置的模型。环境变量配置的模型会显示为 provider ID 以 -env 结尾的条目。
| 问题 | 解决方案 |
|---|---|
| 模型未出现 | 确保 API Key 变量已设置且非空 |
| 选择了错误的模型 | 检查 CARRYCODE_MODEL 格式是否为 provider-id:model-name |
| API 错误 | 验证 API Key 是否有效且有足够额度 |
| 自定义 URL 不生效 | 确保 base URL 包含完整的 API 路径 |
安全最佳实践
Section titled “安全最佳实践”- 永远不要将 API Key 提交到版本控制系统
- 在 CI/CD 中使用密钥管理(GitHub Secrets、GitLab Variables 等)
- 定期轮换密钥,特别是在生产环境中
- 限制密钥权限(例如 CI 中使用只读权限)
- 为不同环境使用不同的密钥(开发、测试、生产)