Kilo Gateway Provider 통합 설계
개요
이 문서는 기존 OpenRouter 구현을 본떠, OpenClaw에 “Kilo Gateway”를 일급 provider로 통합하는 설계를 설명합니다. Kilo Gateway는 다른 base URL을 사용하는 OpenAI 호환 completions API를 사용합니다.설계 결정
1. Provider 이름
권장안:kilocode
근거:
- 제공된 사용자 설정 예시의 provider 키(
kilocode)와 일치 - 기존 provider 이름 패턴(
openrouter,opencode,moonshot)과 일관됨 - 짧고 기억하기 쉬움
- 지나치게 일반적인 “kilo” 또는 “gateway”라는 용어와의 혼동을 피함
kilo-gateway
- 코드베이스에서는 하이픈이 들어간 이름이 덜 일반적이고,
kilocode가 더 간결하므로 기각
2. 기본 모델 참조
권장안:kilocode/anthropic/claude-opus-4.6
근거:
- 사용자 설정 예시에 기반
- Claude Opus 4.5는 강력한 기본 모델
- 명시적으로 모델을 선택하면 자동 라우팅에 의존하지 않아도 됨
3. Base URL 설정
권장안: 설정으로 재정의 가능한 하드코딩 기본값- 기본 Base URL:
https://api.kilo.ai/api/gateway/ - 설정 가능 여부: 예,
models.providers.kilocode.baseUrl을 통해 가능
4. 모델 스캔
권장안: 초기에는 전용 모델 스캔 endpoint를 두지 않음 근거:- Kilo Gateway는 OpenRouter로 프록시하므로 모델이 동적으로 바뀜
- 사용자가 설정 파일에서 모델을 수동으로 설정할 수 있음
- 향후 Kilo Gateway가
/modelsendpoint를 제공하면 스캔을 추가할 수 있음
5. 특수 처리
권장안: Anthropic 모델에 대해 OpenRouter 동작을 상속 Kilo Gateway는 OpenRouter로 프록시하므로 동일한 특수 처리가 적용되어야 합니다.anthropic/*모델에 대한 cache TTL eligibilityanthropic/*모델에 대한 추가 파라미터(cacheControlTtl)- transcript policy는 OpenRouter 패턴을 따름
수정할 파일
핵심 자격 증명 관리
1. src/commands/onboard-auth.credentials.ts
추가:
2. src/agents/model-auth.ts
resolveEnvApiKey()의 envMap에 추가:
3. src/config/io.ts
SHELL_ENV_EXPECTED_KEYS에 추가:
설정 적용
4. src/commands/onboard-auth.config-core.ts
새 함수 추가:
인증 선택 시스템
5. src/commands/onboard-types.ts
AuthChoice 타입에 추가:
OnboardOptions에 추가:
6. src/commands/auth-choice-options.ts
AuthChoiceGroupId에 추가:
AUTH_CHOICE_GROUP_DEFS에 추가:
buildAuthChoiceOptions()에 추가:
7. src/commands/auth-choice.preferred-provider.ts
매핑 추가:
인증 선택 적용
8. src/commands/auth-choice.apply.api-providers.ts
Import 추가:
kilocode-api-key 처리 추가:
CLI 등록
9. src/cli/program/register.onboard.ts
CLI 옵션 추가:
비대화형 온보딩
10. src/commands/onboard-non-interactive/local/auth-choice.ts
kilocode-api-key 처리 추가:
export 갱신
11. src/commands/onboard-auth.ts
다음 export를 추가:
특수 처리 선택 사항
12. src/agents/pi-embedded-runner/cache-ttl.ts
Anthropic 모델용 Kilo Gateway 지원 추가:
13. src/agents/transcript-policy.ts
Kilo Gateway 처리 추가(OpenRouter와 유사):
설정 구조
사용자 설정 예시
인증 프로필 구조
테스트 고려 사항
-
단위 테스트:
setKilocodeApiKey()가 올바른 프로필을 기록하는지 테스트applyKilocodeConfig()가 올바른 기본값을 설정하는지 테스트resolveEnvApiKey("kilocode")가 올바른 환경 변수를 반환하는지 테스트
-
통합 테스트:
--auth-choice kilocode-api-key를 사용하는 온보딩 흐름 테스트--kilocode-api-key를 사용하는 비대화형 온보딩 테스트kilocode/접두사를 사용하는 모델 선택 테스트
-
E2E 테스트:
- Kilo Gateway를 통한 실제 API 호출 테스트 (live test)
마이그레이션 참고
- 기존 사용자에게는 마이그레이션이 필요 없음
- 신규 사용자는 즉시
kilocode-api-key인증 선택지를 사용할 수 있음 kilocodeprovider를 사용하는 기존 수동 설정도 계속 동작함
향후 고려 사항
-
모델 카탈로그: Kilo Gateway가
/modelsendpoint를 노출하면scanOpenRouterModels()와 유사한 스캔 지원 추가 - OAuth 지원: Kilo Gateway가 OAuth를 추가하면 인증 시스템도 확장
- Rate limiting: 필요 시 Kilo Gateway 전용 rate limit 처리 추가 고려
-
문서화: 설정 및 사용법을 설명하는
docs/providers/kilocode.md문서 추가