iop/agent-roadmap/phase/operational-observability-provider-management/PHASE.md
toki 892dc58369 fix(protocol-profile): 요청 경계와 후속 계획을 정리한다
Anthropic 전용 API key가 일반 OpenAI 요청에 적용되지 않도록 경계를 좁히고 잘못된 절대 operation URL을 fail-closed로 거부해야 한다.\n\n완료 Milestone archive와 principal credential 후속 agent-task를 같은 기준선에 맞춘다.
2026-08-01 12:52:56 +09:00

9.5 KiB

Phase: 운영 관측과 Provider 관리

상태

[진행중]

목표

IOP가 여러 Edge, Node, CLI Agent, local inference provider와 cloud API provider를 운영할 때 필요한 사용자/토큰/credential/사용량/로그/provider 상태 및 protocol profile 기준을 정리한다. 이 Phase는 완성된 billing, enterprise IAM, provider marketplace를 바로 구현하지 않고, 1차 MVP에서 어떤 운영 데이터를 모으고 어떤 화면/명령으로 검토할지 스케치한다. provider 확장 Phase에서 검증한 Ollama, vLLM, SGLang, Lemonade 같은 추론 엔진은 provider/device/model 조합으로 관찰하고, 후반부에서는 모델 lifecycle capability와 qualification report를 운영 데이터로 축적하는 방향을 정리한다. cloud API provider는 Chat Completions 공통 profile과 Edge native Anthropic Messages 표면으로 수렴시키며, Control Plane이 principal token과 사용자별 provider credential slot의 원장을 소유한다.

Milestone 흐름

완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 milestones/ 경로를 가리킨다. 이 흐름은 해당 Phase 안의 상태 정리이며, Phase를 가로지르는 실행 순서는 아니다. Milestone은 완료, 검토중, 진행중, 계획, 스케치 또는 보류 상태 그룹으로 정리한다. Phase를 가로지르는 실제 다음 작업 선택은 전역 마일스톤 실행 순서를 우선한다. 스케치 Milestone은 아직 구현 가능한 계획이 아니므로 사용자 검토와 구체화 후 [계획]으로 승격한다.

  • [완료] Model Alias Provider Pool과 Provider Catalog

    • 경로: provider-catalog-device-status
    • 요약: models[]를 외부 model key이자 운영 catalog model로 두고, Node 하위 provider와 served model list를 기준으로 Edge가 provider 선택, load-ratio routing, target rewrite, read-only catalog 상태를 소유하는 MVP 계약을 완료했다.
  • [완료] Node Resource Model Unification

    • 경로: node-resource-model-unification
    • 요약: Node를 Edge 연결 identity로 두고 CLI, OpenAI-compatible provider, 기타 resource를 같은 Node 아래 나열하며 provider/resource capacity만 concurrency를 소유하도록 runtime 계약과 dev-runtime 구성을 정렬했다.
  • [완료] Node Provider-First Config Surface

    • 경로: node-provider-first-config-surface
    • 요약: Node 설정 표면을 providers[] resource list 중심으로 재정렬하고, adapter 설정은 내부 실행 IR 또는 legacy compat로 낮춰 운영자가 한 Node의 CLI/provider 자원을 한 곳에서 이해하고 관리하게 만들었다.
  • [완료] Model Group Long-Context Admission

    • 경로: model-group-long-context-admission
    • 요약: model group의 단일 context window 계약을 유지하면서 입력 기준 long-context 요청을 별도 slot으로 admission하고, long 요청이 찬 provider와 queue 앞 long 요청이 normal 요청을 불필요하게 막지 않도록 라우팅 정책을 완료했다.
  • [완료] 사용자별 OpenAI-compatible 토큰 측정 MVP

    • 경로: usage-token-log-ops-mvp
    • 요약: OpenAI-compatible 호출을 IOP bearer token 기반 principal_ref/alias로 귀속하고, pure passthrough body를 유지한 채 input/output/reasoning/cached token 사용량을 Prometheus metric으로 측정해 Grafana 조회 기준과 후속 제한 정책 재사용 기준까지 정리했다.
  • [완료] 일별 Usage 비용/ROI 리포트 MVP

    • 경로: daily-usage-cost-roi-report-mvp
    • 요약: 기존 OpenAI-compatible token usage metric을 일별/월별로 rollup하고, 운영자가 관리하는 cloud price baseline으로 환산해 사용자/토큰/model/endpoint별 cloud-equivalent cost와 ROI 판단용 avoided-cost를 Grafana/query 중심으로 보는 문서 표면을 완료했다.
  • [완료] Provider Resource Admission Ownership 정합화

    • 경로: provider-resource-admission-ownership-alignment
    • 요약: 공유 provider의 capacity·long-context lease, 공통 queue policy, Node reconnect/offline fencing과 Control Plane snapshot을 정렬하고 local two-alias capacity-1 smoke까지 검증했다.
  • [완료] Provider 기준 Usage Attribution Hot Path

    • 경로: provider-usage-attribution-hot-path
    • 요약: OpenAI-compatible token usage를 actual provider·served model·실행 시도에 귀속하고, 승인된 model group의 query-time rollup과 Grafana 운영 조회를 정착시켰다.
  • [완료] 다중 Provider Protocol Profile과 Native Anthropic Messages

    • 경로: multi-provider-protocol-profile-native-messages
    • 요약: OpenAI Chat Completions를 cloud provider 공통 driver로 두고 provider별 endpoint/path/auth/capability를 profile로 흡수하며, Edge가 Anthropic Messages 입력과 Chat bridge를 직접 소유해 Claude Code의 agent-client dependency를 제거했다.
  • [계획] Provider 부하 메트릭과 Live Queue Dashboard

    • 경로: provider-load-metrics-queue-dashboard
    • 요약: provider별 capacity 사용률, in-flight, queue 적체, queue wait를 Prometheus time series와 Grafana dashboard로 노출해 시간대별 live 부하 분석을 가능하게 한다.
  • [계획] Node Provider 실행 Liveness 관측과 안전 복구

    • 경로: node-provider-execution-liveness-recovery
    • 요약: Node가 provider-originated 진행 신호의 5분 무응답을 request stall로 판정하고 provider health와 local attempt fence를 별도 확정하며, ingress recovery owner가 미커밋 요청만 기존 공통 budget 안에서 재실행한다.
  • [계획] 사용자별 Provider Credential Slot과 Alias Routing

    • 경로: principal-provider-credential-slot-routing
    • 요약: Control Plane을 IOP principal token과 provider credential의 원장으로 두고, 사용자/vendor별 여러 token slot과 optional alias를 명시적 model route에 결합해 선택된 credential만 안전하게 실행 경계에 주입한다.
  • [스케치] 요청 실행 로그와 Usage Ledger 기반

    • 경로: request-execution-log-usage-ledger-foundation
    • 요약: 사용자 요청 하나의 device/provider/model 선택, queue/dispatch/start/first-token/end 시간, token breakdown, status/error를 구조화된 실행 로그와 usage ledger로 남기는 로그 시스템 개편 후보를 스케치한다.
  • [스케치] Provider-Device-Model Qualification 리포트와 Lifecycle 관리

    • 경로: provider-device-model-qualification-report
    • 요약: provider catalog와 device 상태 기준선 뒤에, 여러 모델을 각 device/provider에서 측정하고 공식 공개 benchmark와 함께 보여주는 qualification 리포트, compatibility/performance/quality/lifecycle 비교 경계를 깊게 스케치한다.
  • [스케치] Provider Runtime 설정과 모델 획득 오케스트레이션

    • 경로: provider-runtime-model-acquisition-orchestration
    • 요약: IOP가 vLLM, vLLM-MLX, Lemonade 같은 provider runtime의 launch/profile 설정과 모델 후보 선정, 다운로드, 캐시, 검증, 적용 경계를 어디까지 소유할지 장기 후속 축으로 스케치한다.

Phase 경계

  • Control Plane은 principal, IOP token과 외부 provider credential의 canonical store를 소유한다. Edge/Node provider health, capacity, queue와 실행 중 상태의 canonical store는 계속 Edge이며 Control Plane이 복제 소유하지 않는다.
  • Ollama/vLLM/SGLang/Lemonade 같은 local inference adapter 구현과 serving 검증은 추론 서버 provider 확장 Phase의 완료 기준을 유지한다. cloud API protocol/profile, public Chat/Messages compatibility와 credential routing은 이 Phase 책임으로 둔다.
  • provider/device/model qualification report는 provider serving path와 capacity/concurrency 기준선이 잡힌 뒤 이 Phase의 후반부에서 다룬다.
  • 이 Phase는 운영 데이터와 제어 표면의 MVP 경계를 다루며, billing/chargeback, 조직 IAM, 상세 audit schema, 장기 retention 정책은 후속 구체화에서 결정한다.
  • 누적 요청 컨텍스트 최적화, RAG, advisor, Context Hook, output validation 실행 모드는 지식과 도구 최적화 확장 Phase 책임으로 둔다.