Skip to content

Provider 配置

OpenCode 通过 AI SDK 和 Models.dev 支持 75+ LLM 提供商,包括云服务和本地模型。本文档介绍如何配置和使用不同的模型提供商。

快速配置

使用 /connect 命令

最简单的配置方式是使用内置命令:

bash
opencode
# 在交互界面中输入
/connect

这将引导你完成认证配置,API 密钥会安全存储在 ~/.local/share/opencode/auth.json

查看可用模型

bash
# 命令行
opencode models

# 或在交互界面中
/models

推荐的提供商

OpenCode Zen(推荐新手)

OpenCode 团队精选的模型,开箱即用:

bash
/connect
# 选择 "OpenCode Zen"

Anthropic Claude

通过 Claude Pro/Max 订阅或 API 密钥使用:

json
{
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:ANTHROPIC_API_KEY}"
      }
    }
  },
  "model": "anthropic/claude-sonnet-4-5"
}

可用模型

  • anthropic/claude-opus-4-5 - 最强大的推理模型
  • anthropic/claude-sonnet-4-5 - 平衡性能和速度
  • anthropic/claude-haiku-4-5 - 快速响应

OpenAI

json
{
  "provider": {
    "openai": {
      "options": {
        "apiKey": "{env:OPENAI_API_KEY}",
        "baseURL": "https://api.openai.com/v1"
      }
    }
  },
  "model": "openai/gpt-4o"
}

可用模型

  • openai/gpt-4o - 最新多模态模型
  • openai/gpt-4o-mini - 快速经济
  • openai/o1 - 推理模型
  • openai/o1-mini - 轻量推理

Google Gemini

json
{
  "provider": {
    "google": {
      "options": {
        "apiKey": "{env:GOOGLE_GENERATIVE_AI_API_KEY}"
      }
    }
  },
  "model": "google/gemini-2.0-flash"
}

可用模型

  • google/gemini-2.0-flash - 快速多模态
  • google/gemini-1.5-pro - 长上下文

云平台提供商

Amazon Bedrock

json
{
  "provider": {
    "bedrock": {
      "options": {
        "region": "us-east-1",
        "accessKeyId": "{env:AWS_ACCESS_KEY_ID}",
        "secretAccessKey": "{env:AWS_SECRET_ACCESS_KEY}"
      }
    }
  }
}

Azure OpenAI

json
{
  "provider": {
    "azure": {
      "options": {
        "apiKey": "{env:AZURE_OPENAI_API_KEY}",
        "baseURL": "https://your-resource.openai.azure.com/openai/deployments/your-deployment"
      }
    }
  }
}

Google Vertex AI

json
{
  "provider": {
    "vertex": {
      "options": {
        "project": "your-gcp-project",
        "location": "us-central1"
      }
    }
  }
}

本地模型

Ollama

json
{
  "provider": {
    "ollama": {
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "llama3.2": {
          "name": "Llama 3.2"
        },
        "codellama": {
          "name": "Code Llama"
        }
      }
    }
  },
  "model": "ollama/llama3.2"
}

LM Studio

json
{
  "provider": {
    "lmstudio": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:1234/v1"
      }
    }
  }
}

llama.cpp

json
{
  "provider": {
    "llamacpp": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:8080/v1"
      }
    }
  }
}

自定义 OpenAI 兼容提供商

对于任何 OpenAI 兼容的 API 服务:

json
{
  "provider": {
    "my-provider": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "我的提供商",
      "options": {
        "baseURL": "https://api.example.com/v1",
        "apiKey": "{env:MY_PROVIDER_API_KEY}"
      },
      "models": {
        "model-id": {
          "name": "模型显示名称"
        }
      }
    }
  }
}

国内代理服务示例

json
{
  "provider": {
    "proxy": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "API 代理",
      "options": {
        "baseURL": "https://api.your-proxy.com/v1",
        "apiKey": "{env:PROXY_API_KEY}"
      },
      "models": {
        "gpt-4o": { "name": "GPT-4o" },
        "claude-3-5-sonnet": { "name": "Claude 3.5 Sonnet" }
      }
    }
  }
}

Provider 配置选项

基本选项

选项类型说明
npmstringAI SDK 包名(自定义提供商需要)
namestring提供商显示名称
optionsobject提供商特定配置
modelsobject模型列表和配置

options 常用字段

字段说明
baseURLAPI 端点 URL
apiKeyAPI 密钥(支持 {env:VAR} 语法)
headers自定义请求头

models 配置

json
{
  "models": {
    "model-id": {
      "name": "显示名称",
      "limit": {
        "context": 128000,
        "output": 4096
      }
    }
  }
}
字段说明
name模型显示名称
limit.context最大输入 token 数
limit.output最大输出 token 数

禁用自动加载的提供商

某些提供商会根据环境变量自动加载,可以禁用:

json
{
  "disabled_providers": ["provider-name"]
}

切换模型

交互模式

bash
# 查看可用模型
/models

# 切换模型
/model anthropic/claude-sonnet-4-5
/model openai/gpt-4o

命令行

bash
# 指定模型启动
opencode --model anthropic/claude-sonnet-4-5

# 指定提供商
opencode models anthropic

模型选择建议

任务类型推荐模型
代码生成Claude Sonnet 4.5, GPT-4o
代码审查Claude Opus 4.5, GPT-4o
文档编写Claude Sonnet 4.5, Gemini Pro
快速问答Claude Haiku 4.5, GPT-4o-mini
复杂推理Claude Opus 4.5, o1
本地运行Llama 3.2, Code Llama

完整配置示例

json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",

  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:ANTHROPIC_API_KEY}"
      }
    },
    "openai": {
      "options": {
        "apiKey": "{env:OPENAI_API_KEY}"
      }
    },
    "ollama": {
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "llama3.2": { "name": "Llama 3.2" },
        "codellama": { "name": "Code Llama" }
      }
    }
  },

  "agent": {
    "review": {
      "model": "anthropic/claude-opus-4-5"
    },
    "quick": {
      "model": "anthropic/claude-haiku-4-5"
    }
  }
}

常见问题

API 连接失败

  1. 检查 baseURL 是否正确
  2. 检查 API 密钥是否有效
  3. 检查网络代理设置
bash
export HTTPS_PROXY="http://127.0.0.1:7890"

模型不可用

确保提供商已正确配置且模型 ID 正确:

bash
# 查看已配置的模型
opencode models

Token 限制错误

检查模型的上下文长度限制:

json
{
  "models": {
    "model-id": {
      "limit": {
        "context": 128000,
        "output": 4096
      }
    }
  }
}

下一步

aicodex 文档网站