opencode 配置使用 Azure 或 OpenAI

2026年1月28日 28点热度 1人点赞 0条评论
内容目录

opencode 配置自定义模型挺曲折的,官方文档虽然很齐全,但是没有很好的 demo 指明怎么配置自定义模型,即使使用 AI 和 agent 帮助生成配置,最后还是不可用。经历大量手动测试后,终于完成了自定义第三方模型的配置。

opencode 有三个目录需要注意:

{用户目录}\.config\opencode\opencode.json 配置全局设置。

{用户目录}\.cache\opencode\models.json 配置缓存,一般不需要动。

{用户目录}\.local\share\opencode\auth.json

不同的模型提供商,有些需要在环境变量里面配置,有些可以在配置文件里面配置,要根据情况而定。

我们可以在 .cache\opencode\models.json 里面看到不同提供商需要的环境变量:

file

然后看 opencode 文档,有些提供商支持配置文件也支持环境变量配置,所以不要白折腾,需要根据不同类型的提供商,按实际支持来配置。

file

配置自定义 openai

自定义的 openai 配置比较简单,只需要在 .config\opencode\opencode.json 这样配置即可。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "NewApi": {
      "models": {
        "gpt-4.1": {
          "name": "gpt-4.1"
        },
        "gpt-4o": {
          "name": "gpt-4o"
        },
        "gpt-5-chat": {
          "name": "gpt-5-chat"
        },
        "gpt-5-codex-mini": {
          "name": "gpt-5-codex-mini"
        },
        "gpt-5-mini": {
          "name": "gpt-5-mini"
        }
      },
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "apiKey": "sk-666",
        "baseURL": "https://aaa.com"
      }
    }
  }
}

file

配置 Azure

在 opencode 里面添加 azure 提供商,key 随便填,然后添加两个环境变量 AZURE_RESOURCE_NAMEAZURE_API_KEY,不过要注意 AZURE_RESOURCE_NAME 不是填写地址,而是填写 Azure OpenAI 里面的资源名称。

file

然后把 .local\share\opencode\auth.json 里面关于 azure 的配置删除。

然后重启 opencode 即可使用 Azure 模型,这种方式好处时对 Azure 接口兼容非常好。

虽然这样可以用,但是不能自定义模型名称来说,并且不灵活,所以下面我们来完全在配置文件里面自定义 Azure。

然后打开 .config\opencode\opencode.json 配置对应的模型:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "MyAzure": {
      "models": {
        "gpt-4.1": {
          "name": "gpt-4.1"
        },
        "gpt-4o": {
          "name": "gpt-4o"
        },
        "gpt-5-chat": {
          "name": "gpt-5-chat"
        },
        "codex-mini": {
          "name": "codex-mini"
        },
        "gpt-5-codex-mini": {
          "name": "gpt-5-codex-mini"
        },
        "gpt-5-mini": {
          "name": "gpt-5-mini"
        }
      },
      "npm": "@ai-sdk/azure",
      "options": {
        "apiKey": "{你的key}",
        "resourceName": "{资源名称}"
      }
    }
  }
}

或者改成:

      "options": {
        "apiKey": "{你的key}",
        "baseURL": "https://{资源地址}.cognitiveservices.azure.com/openai",
        "useDeploymentBasedUrls ": true
      }

重启 opencode 后即可使用,不过会导致 codex 系列模型出问题,只能使用对话模型。 

file

也可以换成:

      "npm": "@quail-ai/azure-ai-provider",
      "options": {
        "apiKey": "{你的key}",
        "endpoint": "https://{资源地址}.services.ai.azure.com/models"
      }

但是实测 codex 系列模型还是不一样,并且普通对话默认导致了回复没有正常停止。

如果使用自定义配置,发现某些默认有问题,可以到 models.json 里面把配置复制过去。

file

file

痴者工良

高级程序员劝退师

文章评论