iop/agent-roadmap/phase/operational-observability-provider-management/milestones/provider-catalog-device-status.md

6.5 KiB

Milestone: Model Alias Provider Pool과 Provider Catalog

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/operational-observability-provider-management/PHASE.md

목표

qwen3.6:35b 같은 논리 model alias를 중심으로 여러 추론 엔진 provider 후보를 하나의 provider pool로 묶는 MVP 경계를 스케치한다. vLLM, vLLM-MLX, Lemonade, Ollama, SGLang 같은 로컬 디바이스 provider는 같은 alias를 제공할 수 있는 candidate로 다루고, Edge가 provider별 실제 target, health, capacity, in-flight 상태를 기준으로 선택/큐잉하는 책임 경계를 우선 정리한다. API provider, CLI provider, local inference provider catalog는 이 alias pool을 운영자가 관찰하고 조정하기 위한 표시/상태 모델로 연결한다. provider/device/model별 qualification report와 benchmark/품질 비교는 이 Milestone의 직접 구현 범위가 아니라 후속 심화 Milestone으로 분리한다.

상태

[스케치]

승격 조건

  • 논리 model alias를 canonical routing key로 두고 provider candidate를 묶는 model pool 경계를 결정한다.
  • provider candidate별 node, adapter instance, provider type, 실제 served target, capacity, priority/weight 표시 필드를 결정한다.
  • Edge queue가 model alias 단위로 관리되고, dispatch 시 provider별 실제 target으로 rewrite되는 책임 경계를 정리한다.
  • local inference provider의 health, capacity, in-flight, queue, model list 상태 추적 기준을 결정한다.
  • provider별 model lifecycle capability를 catalog 표시 필드로 볼지 후속 리포트 Milestone의 입력으로만 둘지 결정한다.
  • Control Plane/Client/CLI 중 provider pool 관리 MVP 표면을 결정한다.

구현 잠금

  • 상태: 해제
  • SDD: 필요
  • SDD 문서: agent-roadmap/sdd/operational-observability-provider-management/provider-catalog-device-status/SDD.md
  • 잠금 해제 조건:
    • SDD 잠금이 해제되어 있다
    • SDD 사용자 리뷰가 없거나 승인/해결되었다
    • Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다
    • Evidence Map이 plan의 Spec Targets와 완료 시 Spec Completion으로 검증 가능하게 연결되어 있다
    • model alias provider pool의 config/API 계약, provider candidate 선택 기준, target rewrite 책임, catalog 상태 필드, 운영 표면 책임 경계가 구현 계획을 만들 수 있을 만큼 확정되어 있다
  • 결정 필요: 없음

범위

  • model alias 기반 provider pool 계약과 catalog 표시 기준
  • provider candidate별 node/adapter instance/provider/served target/capacity/priority 표시 기준
  • Edge alias queue와 provider candidate 선택/target rewrite 책임 경계
  • API, CLI, local inference provider category와 catalog 표시 기준
  • local device/provider 상태 추적 기준
  • provider별 model lifecycle capability 표시 기준
  • vLLM, vLLM-MLX, Lemonade, SGLang 같은 provider의 운영 표시 후보
  • provider validation과 운영 catalog의 책임 분리

기능

Epic: [model-pool] Model Alias Provider Pool

논리 model alias를 중심으로 여러 provider candidate를 묶고 Edge가 실행 후보를 고르는 최소 산출물을 정리한다.

  • [alias-contract] qwen3.6:35b 같은 논리 model alias가 provider pool의 canonical key가 되는 계약이 정리되어 있다.
  • [candidate-schema] provider candidate별 node, adapter instance, provider type, endpoint/target, capacity, priority/weight, auth reference 표시 필드가 정리되어 있다.
  • [target-rewrite] provider마다 실제 served model id가 다를 때 Edge와 Node 중 어디서 target rewrite를 수행할지 책임 경계가 정리되어 있다.
  • [selection-policy] Edge가 provider pool에서 health, capacity, in-flight, priority/fallback을 사용해 후보를 선택하고 queue timeout을 적용하는 초기 정책이 정리되어 있다.
  • [pool-compat] 기존 openai.model_routes, adapter + target, Node provider instance 설정과의 호환/마이그레이션 방향이 정리되어 있다.

Epic: [provider-catalog] Provider Operations Catalog

운영자가 model alias provider pool과 provider 상태를 같은 기준으로 비교하기 위한 최소 산출물을 묶는다.

  • [category-map] API, CLI, local inference provider category와 MVP 표시 필드가 정리되어 있다.
  • [device-status] 로컬 디바이스 provider의 health, capacity, model, queue 상태 후보가 정리되어 있다.
  • [lifecycle-cap] Ollama, Lemonade, vLLM, SGLang의 model lifecycle capability 차이를 catalog 필드 또는 후속 report 입력으로 정리한다.
  • [boundary] provider adapter 구현, provider pool routing, 운영 catalog의 책임 경계가 정리되어 있다.
  • [ops-review] 사용자가 model alias provider pool과 provider catalog MVP 범위, 2차 후보를 검토했다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 스케치 Milestone이며 model alias provider pool과 catalog 기능 Task가 아직 충족되지 않았다.
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • vLLM, vLLM-MLX, Lemonade, SGLang provider adapter 구현 자체
  • provider pool scheduler 코드 구현과 config migration 실행
  • provider/device/model qualification report 저장/조회/비교
  • 자동 benchmark, 품질 평가, provider marketplace, cross-Edge provider balancing
  • cloud fallback과 품질 평가 feedback 구현

작업 컨텍스트

  • 관련 경로: apps/edge, apps/node, apps/control-plane, apps/client, packages/go/config, proto/iop/runtime.proto
  • 기존 구조: 현재 OpenAI route는 외부 model을 단일 adapter + target으로 resolve하고, Edge queue는 ModelGroupKey를 쓰지만 후보 필터링은 같은 adapter + target 기준으로 동작한다.
  • 새 표준선(선택): provider 실행 구현의 외부 계약은 논리 model alias를 canonical key로 두고, 내부 dispatch 직전에 provider candidate별 adapter instance + served target으로 resolve한다.
  • 선행 작업: Node provider 상태와 Capacity Queue 기반, Edge 모델 그룹 Queue 스케줄링 전환
  • 후속 작업: provider pool scheduler 구현, Provider-Device-Model Qualification 리포트와 Lifecycle 관리, provider enable/disable, benchmark/품질 평가
  • 확인 필요: model pool config/API 형태, target rewrite 위치, provider 선택 정책, 상태 추적 필드, 읽기 전용/제어 포함 여부