Aider를 OpenAI 호환 API 베이스로 연결하기.
Updated 2026-07-29
Aider는 환경 변수 두 개와 모델 프리픽스만으로 OpenAI 호환 엔드포인트에 연결됩니다. OPENAI_API_BASE를 https://api.apisrouter.com/v1로 설정하고 aider --model openai/<model-id>를 실행하면, 페어 프로그래밍 세션이 키 하나로 라우팅되며 카탈로그의 모든 모델을 호출할 수 있습니다.
빠른 답: 환경 변수 두 개와 모델 프리픽스.
Aider가 문서화한 OpenAI 호환 경로는 정확히 이렇습니다: 엔드포인트 값으로 OPENAI_API_BASE를 export하고, 해당 키로 OPENAI_API_KEY를 export하고, 모델 이름 앞에 openai/를 붙여서 Aider가 그 베이스에 chat-completions 프로토콜로 말하게 만듭니다. 프리픽스 뒤의 문자열은 그대로 엔드포인트로 전달되므로, 게이트웨이가 제공하는 모든 id가 사용 가능합니다 — Claude와 DeepSeek id도 포함됩니다. 연결은 이게 전부입니다. Mac과 Linux에서는 export를 사용하고, Windows에서는 setx를 사용한 뒤 새 셸을 여세요 — setx는 현재 세션에 영향을 주지 않기 때문입니다. 셸 상태 대신 프로젝트별 설정을 선호한다면 동일한 값을 Aider의 설정 파일이나 .env 파일에 넣어도 됩니다.
export OPENAI_API_BASE=https://api.apisrouter.com/v1
export OPENAI_API_KEY=sk-APIsRouter-...
aider --model openai/claude-sonnet-4-6Aider가 모델과 프로바이더를 해석하는 방법.
Aider(GitHub의 Aider-AI, 약 4.7만 스타)는 원조 터미널 페어 프로그래머입니다: git 저장소를 매핑하고, 채팅으로 변경 요청을 받아 파일을 직접 수정하고, 결과를 커밋합니다. 내부적으로는 모델 호출을 litellm을 통해 라우팅하는데, 이 때문에 openai/ 프리픽스가 중요합니다: litellm은 프리픽스를 읽어 프로바이더 프로토콜을 선택하며, openai/는 "OPENAI_API_BASE가 가리키는 곳에 chat-completions로 요청한다"는 뜻입니다. 프리픽스가 없는 모델 이름은 대신 철자로부터 프로바이더가 추론되는데, 이 경우 Claude id는 게이트웨이가 아니라 Anthropic의 네이티브 API와 여러분의 ANTHROPIC_API_KEY 쪽으로 라우팅됩니다. 첫 세션 전에 알아둘 만한 Aider 고유의 동작이 하나 있습니다: Aider는 자체적으로 모델 성능 레지스트리를 유지하며, 인식하지 못하는 모델에는 "Unknown context window size and costs, using sane defaults" 경고가 뜹니다. 이후 Aider는 컨텍스트 윈도우를 무제한, 비용을 0으로 가정합니다. 세션 자체는 계속 작동하지만, 유용한 두 하위 시스템이 저하됩니다: 실제 컨텍스트 한도를 넘기기 전에 경고해주는 토큰 예산 관리가 작동하지 않고, 세션 내 비용 표시도 0으로 나옵니다. 해결책은 아래에서 다루는 작은 메타데이터 파일이며, 2분 투자할 가치가 있습니다. Aider는 세션당 하나 이상의 모델도 함께 사용합니다. main 모델이 코딩을 담당하고, weak 모델이 커밋 메시지와 채팅 요약을 처리하며, architect 모드에서는 별도의 editor 모델이 계획을 적용합니다. 각각 동일한 openai/ 프리픽스를 받아들이므로, 세 모델 모두 하나의 키로 게이트웨이를 통해 라우팅될 수 있습니다.
전체 설정: 연결 + 모델 메타데이터.
연결 자체는 위의 두 변수로 끝입니다. 마무리 작업은 Aider가 게이트웨이 모델을 알려진 값으로 취급하도록 메타데이터를 등록하는 것입니다. 홈 디렉터리, git 저장소 루트, 또는 작업 디렉터리에 .aider.model.metadata.json을 만들거나(또는 --model-metadata-file을 전달), openai/ 프리픽스를 포함한 완전한 이름을 키로 사용하세요. litellm_provider 필드는 그 프리픽스와 일치해야 합니다. max_input_tokens를 등록하면 Aider의 컨텍스트 예산 관리가 무제한이라고 가정하는 대신 모델의 실제 윈도우를 기준으로 작동합니다. 두 번째 선택적 파일인 .aider.model.settings.yml은 모델별 동작을 조정합니다: edit_format은 Aider가 코드 변경을 요청하는 방식을 제어하고(diff를 처리할 수 있는 모델은 diff 변형, 그렇지 않은 모델은 whole-file), use_repo_map은 저장소 컨텍스트 포함 여부를 제어합니다. Aider는 인식하지 못하는 모델에 대해 최적의 edit format을 추론할 수 없으므로, 이를 명시적으로 선언하는 것이 모델이 평범해 보이는 것과 제 실력을 발휘하는 것의 차이를 만듭니다.
{
"openai/claude-sonnet-4-6": {
"max_input_tokens": 200000,
"max_output_tokens": 64000,
"litellm_provider": "openai",
"mode": "chat"
},
"openai/deepseek-v4-pro": {
"max_input_tokens": 128000,
"max_output_tokens": 16000,
"litellm_provider": "openai",
"mode": "chat"
}
}main, weak, editor 모델 선택하기.
Aider 세션은 길고 반복적이기 때문에, 여기서는 모델 비교가 유난히 정직하게 드러납니다: 같은 기능 브랜치를 서로 다른 날에 두 개의 main 모델로 돌려보면 /undo를 얼마나 자주 입력하는지에서 차이가 나타납니다. 엔드포인트가 하나이므로 각 후보는 플래그 하나만 바꾸면 되고, 키별 사용량이 각 실험의 비용을 알려줍니다.
- main 모델은 모든 수정 작업을 담당합니다. 저장소 맵을 읽고, 파일들을 두고 추론하고, diff를 생성합니다 — 그래서 claude-sonnet-4-6이나 gpt-5.5가 이 자리에 적합합니다. diff 문법을 자주 틀리는 모델은 모든 변경마다 리뷰 시간을 잡아먹습니다.
- weak 모델(--weak-model)은 커밋 메시지를 작성하고 채팅 기록을 요약합니다. 끊임없이 호출되지만 코드는 전혀 건드리지 않으므로, 다른 곳에 기본값으로 맡기기보다 같은 게이트웨이를 통해 빠르고 저렴한 id로 라우팅하세요.
- Architect 모드는 계획과 편집을 분리합니다: main 모델이 계획하고 editor 모델(--editor-model)이 적용합니다. 강력한 추론 모델이 계획하고 kimi-k2.7-code 같은 코딩 특화 id가 적용을 담당하는 조합은 단일 벤더 키로는 불가능한 페어링입니다.
- deepseek-v4-pro와 gpt-5.4는 리팩터링 위주의 작업에서 일상적으로 쓰는 main 모델로 벤치마킹해볼 가치가 있습니다 — 세션당 토큰량이 많은 작업일수록 가격 차이가 누적되어 커지기 때문입니다.
사용한 만큼 지불 · 공식 요금보다 저렴
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| 모델 | 공식 요금 | 저희 요금 |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| GPT-5.4 | $2.50 / $15.00 per M | $2.00 / $12.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| Kimi K2.7 Code | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
Aider 특유의 실패 패턴.
"sane defaults"를 그대로 믿는 것. 알 수 없는 모델에 대한 폴백은 무제한 컨텍스트와 0 비용을 가정합니다. 실제로는 게이트웨이가 요청을 거부하거나 모델이 조용히 앞부분 컨텍스트를 잃어버릴 때까지 Aider가 긴 세션을 모델의 실제 윈도우 너머로 계속 키우도록 내버려 둔다는 뜻이며, 그동안 비용 추적기는 아무것도 보여주지 않습니다. openai/ 프리픽스를 빠뜨리는 것. 프리픽스가 없으면 litellm이 모델 이름으로부터 프로바이더를 추론합니다. Claude id는 Anthropic API 쪽으로 라우팅되어 ANTHROPIC_API_KEY가 없다는 이유로 실패하는데, 이는 프리픽스 문제인데도 키 문제처럼 보입니다. 일치하지 않는 메타데이터. .aider.model.metadata.json의 항목은 프리픽스를 포함한 완전한 이름을 키로 사용하며, litellm_provider는 그 프리픽스와 일치해야 합니다. 프리픽스 없는 id를 키로 쓰거나 provider 필드가 어긋나면 조용히 적용되지 않으며, 아무 오류 메시지도 없이 다시 기본값으로 돌아갑니다. Windows 셸 상태. setx는 이후에 열리는 셸에만 변수를 적용합니다. 방금 setx를 실행한 그 터미널에서 바로 aider를 실행하면 예전 환경을 그대로 사용하게 되고, 그 결과로 나는 401은 자격 증명 문제가 아니라 셸 생명주기 문제입니다. 잘못된 edit format. 등록되지 않은 모델은 자신에게 가장 잘 맞지 않을 수도 있는 기본 edit format을 사용하게 됩니다. 강력한 모델인데도 Aider가 계속 거부하는 수정안을 내놓는다면, 그 모델이 코딩을 못한다고 결론짓기 전에 .aider.model.settings.yml에서 edit_format을 명시적으로 설정하세요.
어떤 사람들이 게이트웨이를 통해 Aider를 쓰는가.
- 모델 패밀리마다 벤더 계정을 유지하지 않고도 --model로 세션마다 Claude, GPT, DeepSeek을 바꿔가며 쓰고 싶은 Aider 일상 사용자.
- 커밋 메시지용으로 빠른 weak 모델과 프론티어 main 모델을 함께 쓰고 싶은 개발자 — 두 모델 모두 하나의 키로 청구되며 세션별로 확인할 수 있습니다.
- 같은 세션에서 서로 다른 벤더의 계획 모델과 편집 모델을 섞어 쓰는 Architect 모드 사용자.
- 벤더별 키 체크리스트 대신 시크릿 하나로 엔지니어를 온보딩하는 팀 — 키별 사용량이 곧 지출 리포트가 됩니다.
- 특정 벤더의 결제 수단에 접근할 수 없는 개발자. 카드 없이 충전만으로 사용할 수 있어 프로바이더별 가입 의존성이 사라집니다.
엔드포인트 검증 및 첫 세션 디버깅.
시작하기 전에 게이트웨이의 모델 목록을 조회하세요. openai/ 뒤의 id는 버전 접미사까지 포함해 실제 제공되는 id와 정확히 일치해야 합니다. 첫 세션에서의 실패는 빠르게 분류할 수 있습니다. 401은 aider를 실행한 셸에 OPENAI_API_KEY가 보이지 않는다는 뜻입니다(Windows에서 setx 이후에는 새 셸에만 적용되므로, 같은 터미널에서 echo로 확인하세요). 게이트웨이에서 나오는 model-not-found 오류는 id 오타입니다. 다른 벤더의 키를 언급하는 오류는 프리픽스 없는 모델 이름이 네이티브로 라우팅됐다는 뜻입니다. 그리고 시작 시 뜨는 unknown-model 경고는 오류가 아니지만, 실제 컨텍스트 한도에 부딪힌 뒤가 아니라 긴 세션을 시작하기 전에 메타데이터 파일을 추가하라는 신호입니다. 메타데이터를 등록하고 나면 세션 중 Aider 자체의 토큰·비용 표시가 정확해지며, APIsRouter 콘솔에서도 엔드포인트 쪽에서 같은 세션을 볼 수 있습니다: 요청별 모델, 토큰 수, 지출. 하루 종일 페어 프로그래밍을 한다면, 이 키별 뷰가 일주일간 Aider를 실제로 얼마나 썼는지 알려주는 정직한 답입니다.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" | head -50자주 묻는 질문
Aider를 OpenAI 호환 엔드포인트에 연결하려면 어떻게 하나요?
OPENAI_API_BASE에 엔드포인트 URL을, OPENAI_API_KEY에 해당 키를 export한 다음 aider --model openai/<model-id>를 실행하세요. 이것이 Aider가 문서화한 openai 호환 경로입니다. openai/ 프리픽스는 litellm 레이어에게 여러분의 베이스 URL에 chat-completions로 말하라고 지시합니다.
이 설정으로 Claude나 DeepSeek 모델을 Aider에서 실행할 수 있나요?
네. openai/ 뒤의 id는 그대로 문자열로 엔드포인트에 전달되므로, 게이트웨이가 제공하는 모든 모델을 쓸 수 있습니다: aider --model openai/claude-sonnet-4-6 또는 openai/deepseek-v4-pro. 프리픽스를 유지하세요 — 그렇지 않으면 id에서 프로바이더가 추론되어 베이스에서 벗어나 라우팅됩니다.
"Unknown context window size and costs" 경고는 무슨 뜻인가요?
Aider가 해당 모델을 인식하지 못해서 컨텍스트 윈도우를 무제한, 비용을 0으로 가정한다는 뜻입니다. 세션 자체는 작동하지만 컨텍스트 예산 관리와 비용 표시가 잘못됩니다. openai/를 포함한 완전한 이름을 키로 하여 .aider.model.metadata.json에 모델을 등록하면 경고와 두 문제 모두 사라집니다.
weak 모델과 editor 모델도 게이트웨이를 통해 라우팅되나요?
네, 그렇게 지정하면 됩니다: 커밋 메시지와 요약에는 --weak-model openai/<fast-id>, architect 모드에는 --editor-model openai/<id>. 세 슬롯 모두 프리픽스를 받아들이므로, 키 하나로 벤더가 섞인 main/weak/editor 조합을 모두 처리할 수 있습니다.
Aider가 왜 계속 Anthropic 키를 요구하나요?
openai/ 프리픽스 없이 모델 이름이 입력됐기 때문입니다. litellm이 이름으로부터 벤더를 추론해 네이티브 Anthropic 경로를 시도했고, 그 경로는 ANTHROPIC_API_KEY를 요구합니다. 프리픽스를 추가하면 요청이 대신 여러분의 게이트웨이 키와 함께 OPENAI_API_BASE로 갑니다.
게이트웨이 모델에 edit_format을 설정해야 하나요?
Aider가 인식하지 못하는 모델이라면 그렇습니다. .aider.model.settings.yml의 edit_format은 Aider가 코드 변경을 요청하는 방식을 제어하며, 프론티어 모델은 대체로 diff 형식에서 최고의 결과를 냅니다. 알 수 없는 모델을 기본값으로 두면 강력한 모델이 실제보다 못해 보일 수 있습니다.