문제 해결 · opencode

opencode AI_APICallError 원인과 해결 방법

opencode는 프로바이더 실패를 Vercel AI SDK의 AI_APICallError로 표시합니다. 감싸진 상태 코드를 읽는 방법과 그 아래의 baseURL, 키, 모델을 고치는 방법.

표시되는 내용

AI_APICallError

발생 원인

  • AI_APICallError는 진단이 아니라 래퍼입니다: AI SDK는 성공이 아닌 모든 HTTP 응답에 이를 던지며, 진짜 원인은 감싸진 상태 코드와 본문입니다.
  • 내부가 401 — 프로바이더의 apiKey 옵션이 잘못되었거나, {env:...} 플레이스홀더가 설정되지 않은 변수를 지정합니다.
  • 내부가 404 — baseURL이 프로바이더의 프로토콜에 맞지 않습니다: /v1 누락, /v1/v1 중복, 또는 엔드포인트가 서비스하지 않는 모델 id.
  • 내부가 429 또는 529 — 처리량 또는 업스트림 용량 문제로, 설정에는 잘못이 없습니다.

해결 방법

  • 먼저 오류의 statusCode와 responseBody 필드를 읽으세요 — 프로바이더의 실제 답변이 담겨 있습니다.
  • 프로바이더 블록을 확인하세요: baseURL은 정확하게, apiKey는 opencode를 실행한 셸에 존재하는 환경 변수에서 해석되도록.
  • opencode.json을 바꾼 뒤에는 opencode를 재시작하세요 — 설정은 시작 시점에 읽힙니다.

이 게이트웨이용 프로바이더 블록

{
  "provider": {
    "apitoken": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "apiToken.sale",
      "options": {
        "baseURL": "https://openai.api.apitoken.sale/v1",
        "apiKey": "{env:APITOKEN_API_KEY}"
      }
    }
  }
}

관련 검색어

  • opencode AI_APICallError
  • opencode api call error

자주 묻는 질문

AI_APICallError는 opencode의 버그인가요?+
아니요 — 프로바이더가 성공이 아닌 응답을 반환했다는 AI SDK의 보고입니다. 감싸진 상태 코드가 진짜 문제를 알려줍니다.
opencode는 API 키를 어디서 읽나요?+
프로바이더의 options.apiKey에서 읽습니다. {env:NAME} 플레이스홀더를 쓰면, 그 변수는 opencode가 실행된 환경에 존재해야 합니다.
opencode.json을 고쳤는데 아무 변화가 없습니다 — 왜죠?+
opencode는 설정을 시작 시점에 읽습니다. 변경할 때마다 재시작하세요.

잘못된 설정에 시간 낭비하지 마세요

apiToken.sale은 표준 Anthropic API를 제공합니다 — 같은 모델, 같은 SDK, 하나의 선불 잔액. 도구의 base URL만 지정하면 이 페이지의 설정이 적힌 그대로 작동합니다.