iop/agent-roadmap/phase/routing-policy-model-orchestration/milestones/seulgivibe-openai-compatible-provider.md

5.3 KiB

Milestone: Seulgivibe OpenAI-compatible Provider 연동

위치

목표

Seulgivibe의 Claude/OpenAI 프록시 경로를 IOP의 OpenAI-compatible provider family로 관리한다. Claude 모델 3종과 OpenAI/Codex 모델 축을 정적 catalog로 노출하고, 사용자별 raw token은 IOP 호출 시점에 provider tunnel header로만 전달한다. Codex wire_api=responses 경로가 provider tunnel을 통해 동작하도록 /v1/responses raw passthrough parity를 확보한다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

  • 상태: 해제
  • SDD: 필요
  • SDD 문서: SDD.md
  • SDD 사유: OpenAI-compatible API/config schema, provider auth header, 외부 provider passthrough 계약이 바뀌는 Milestone이다.
  • 잠금 해제 조건:
    • SDD 잠금이 해제되어 있다
    • SDD 사용자 리뷰가 없거나 승인/해결되었다
    • Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다
    • Evidence Map이 완료 시 Roadmap Completion과 최종 검증 evidence로 검증 가능하게 연결되어 있다
  • 결정 필요: 없음

범위

  • Seulgivibe Claude/OpenAI proxy endpoint를 별도 provider id/type 축으로 관리하는 config/catalog 계약
  • seulgivibe_claude, seulgivibe_openai provider type alias와 OpenAI-compatible adapter 재사용
  • Claude 모델 claude-sonnet-4-5, claude-opus-4-8, claude-fable-5 정적 model catalog
  • OpenAI/Codex 모델 gpt-5.1, gpt-5.5 정적 model catalog
  • 사용자별 raw token을 inbound request header에서 읽어 provider tunnel Authorization header로 전달하는 경계
  • Chat Completions provider tunnel과 Responses provider tunnel의 Seulgivibe passthrough 지원

기능

Epic: [seulgivibe-provider] Seulgivibe Provider Surface

Seulgivibe를 IOP 내부에서는 provider-first OpenAI-compatible resource로 다루고, 외부 호출자는 OpenAI-compatible model id와 request-time provider token만 사용하게 하는 capability를 묶는다.

  • [config-auth-catalog] Seulgivibe Claude/OpenAI provider aliases, openai.provider_auth schema, 정적 model catalog/계약 예시가 추가되어 있다. 검증: go test ./packages/go/config -count=1, go test ./apps/edge/internal/node -count=1, secret pattern scan이 통과한다.
  • [provider-token-tunnel] Edge OpenAI Chat Completions provider tunnel이 configured request header의 raw user token을 provider Authorization header로 전달하고 missing-required를 dispatch 전에 차단한다. 검증: go test ./apps/edge/internal/openai -count=1이 auth forwarding/missing tests를 포함해 통과한다.
  • [responses-passthrough] OpenAI-compatible provider route에서 /v1/responses raw passthrough가 동작하고 Codex-style unknown fields, streaming, provider auth, model rewrite를 보존/검증한다. 검증: go test ./apps/edge/internal/openai -count=1이 Responses passthrough tests를 포함해 통과한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 기능 Task가 아직 충족되지 않았다.
  • 검토 항목:
    • 세 subtask의 complete.log가 각 Roadmap Completion task id를 기록한다.
    • 최종 검증 출력이 SDD Evidence Map과 일치한다.
    • 실제 token 값이 tracked 문서/config/test output에 남지 않았다.
  • agent-ui 상태 반영: 해당 없음
  • 리뷰 코멘트: 없음

범위 제외

  • host-local ~/.claude/anthropic_key.sh, ~/.codex/config.toml, Pi coding 설정 변경
  • 실제 JWT/API key/token 값을 tracked config, docs, task artifact에 저장
  • Seulgivibe /v1/models endpoint를 catalog source of truth로 사용하는 방식
  • provider response payload의 model echo rewrite 또는 sideband injection을 Responses passthrough에 강제하는 작업
  • billing/chargeback, 조직 IAM, 장기 retention 정책

작업 컨텍스트

  • 관련 경로: packages/go/config, apps/edge/internal/openai, apps/edge/internal/service, apps/edge/internal/node, apps/node/internal/adapters/openai_compat, apps/node/internal/runtime, proto/iop/runtime.proto, openai-compatible-api.md
  • 표준선(선택): Seulgivibe는 새 wire adapter가 아니라 OpenAI-compatible provider family로 관리하고, provider별 특수 처리는 generation passthrough 밖의 auth/catalog/config 경계에만 둔다.
  • 표준선(선택): 사용자별 provider token은 request-time raw value로만 받고, Edge가 provider tunnel request header로 변환한다. Node나 host-local helper script가 사용자 token source of truth가 되지 않는다.
  • 표준선(선택): provider /models endpoint가 실패해도 IOP /v1/models는 top-level models[] catalog를 source of truth로 노출한다.
  • 선행 작업: OpenAI-compatible Raw Tunnel과 Sideband Passthrough, Model Alias Provider Pool과 Provider Catalog
  • 후속 작업: 자동 route scorer 구현, provider auth per-provider granularity, Seulgivibe live smoke profile 정리
  • 확인 필요: 없음