iop/agent-roadmap/phase/operational-observability-provider-management/milestones/request-execution-log-usage-ledger-foundation.md
toki 29a00f5634 feat: operational-observability-provider-phase 업데이트
- PHASE.md 및 usage-token-log-ops-mvp.md 업데이트
- request-execution-log-usage-ledger-foundation.md 마일스톤 추가
- SDD 디렉터리 초기화
2026-06-25 10:22:45 +09:00

6.4 KiB

Milestone: 요청 실행 로그와 Usage Ledger 기반

위치

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

목표

사용자 요청 하나를 기준으로 Edge, Node, provider/device/model, OpenAI-compatible 응답, Control Plane 운영 기록을 연결하는 구조화된 실행 로그와 usage ledger 기반을 스케치한다. 요청별 사용 device, 시작/종료/first-token 시간, queue wait, latency, token breakdown, error/status, usage source를 가능한 한 많이 수집하되 prompt/response 노출과 장기 보관 정책은 별도 결정으로 둔다.

상태

[스케치]

승격 조건

  • 요청 실행 이벤트의 최소 lifecycle을 request accepted, queued, admitted, dispatched, provider started, first token, completed/error/cancelled로 정의한다.
  • 요청별 ledger record의 canonical owner를 Edge-local store, Control Plane store, 또는 dual-write/replay 중 하나로 결정한다.
  • input/cached input/think/output/total token을 provider-reported 값과 추정값으로 나누어 기록하는 source 정책을 결정한다.
  • node/provider/device/model identity, run_id/request_id/session/user/workspace/source metadata를 어떤 로그와 API 응답에 포함할지 결정한다.
  • prompt/response/reasoning preview redaction, raw payload 보관 여부, export 권한 경계를 결정한다.
  • 기존 zap 로그, runtime event, audit/observability package, Control Plane operation history를 어떻게 migration 또는 병행 운용할지 결정한다.

구현 잠금

  • 상태: 잠금
  • SDD: 필요
  • SDD 문서: agent-roadmap/sdd/operational-observability-provider-management/request-execution-log-usage-ledger-foundation/SDD.md
  • SDD 사유: 요청 실행 로그와 usage ledger는 proto/event/schema/storage/API, 데이터 보존, 권한, 실패 처리 경계를 함께 바꾸는 설계 Milestone이다.
  • 잠금 해제 조건: 아래 체크리스트
    • SDD 잠금이 해제되어 있다.
    • SDD 사용자 리뷰가 없거나 승인/해결되었다.
    • Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
    • Evidence Map이 완료 시 Roadmap Completion과 최종 검증 evidence로 검증 가능하게 연결되어 있다.
  • 결정 필요: 아래 체크리스트
    • request ledger의 canonical 저장 책임을 Edge와 Control Plane 중 어디에 둘지 결정한다.
    • token usage source가 provider-reported, estimated, mixed, unavailable일 때 운영 UI와 export에서 어떻게 표시할지 결정한다.
    • hidden think/reasoning token을 provider가 보고하지 않는 경우 표시 reasoning text 기반 추정을 허용할지 결정한다.
    • full prompt/response, preview, metadata, error detail의 redaction과 retention 기본값을 결정한다.
    • 로그 개편을 기존 runtime event schema 확장으로 할지, 별도 request ledger/audit event schema로 분리할지 결정한다.

범위

  • 요청 실행 lifecycle별 timestamp와 correlation id 정의
  • 요청별 사용 device/provider/node/model alias/served model 기록
  • input, cached input, think/reasoning, output, total token usage와 source 표시
  • queue wait, TTFT, provider duration, total duration, status/error 기록
  • Edge/Node/Control Plane 로그와 run event, audit/observability package의 연결 방식
  • 운영 조회/export를 위한 최소 ledger query 후보

기능

Epic: [run-ledger] Request Execution Ledger

요청 하나를 운영자가 나중에 재구성할 수 있도록 lifecycle, device routing, token usage, 결과 상태를 연결하는 capability를 묶는다.

  • [event-lifecycle] request accepted, queued, admitted, dispatched, provider started, first token, completed/error/cancelled 이벤트와 timestamp 의미가 정리되어 있다.
  • [identity-correlation] request_id, run_id, session_id, user/token scope, workspace, source, node_id, provider_id, device_id, model alias, served model의 correlation 기준이 정리되어 있다.
  • [token-usage] input, cached input, think/reasoning, output, total token 필드와 provider-reported/estimated/mixed/unavailable source 정책이 정리되어 있다.
  • [latency-metrics] queue wait, TTFT, provider duration, stream duration, total duration, retry/fallback 시도 기록 후보가 정리되어 있다.
  • [log-redaction] prompt/response/reasoning preview, metadata, error detail의 redaction과 retention 기본값 후보가 정리되어 있다.
  • [storage-query] Edge-local store, Control Plane operation history, export API/CLI/Client 조회 후보와 canonical owner가 정리되어 있다.
  • [migration-plan] 기존 zap 로그와 runtime event를 유지하면서 request ledger를 추가하는 migration 또는 병행 운용 전략이 정리되어 있다.

완료 리뷰

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

범위 제외

  • 실제 proto/schema/storage/API 구현
  • 장기 retention, billing, chargeback, 조직 IAM
  • provider routing 알고리즘 변경
  • provider가 보고하지 않는 hidden reasoning token의 완전 정확한 복원
  • 품질 평가나 route recommendation 자동화

작업 컨텍스트

  • 관련 경로: apps/edge/internal/openai, apps/edge/internal/service, apps/node/internal/node, apps/node/internal/adapters/openai_compat, apps/control-plane, apps/client, packages/go/audit, packages/go/observability, proto/iop/runtime.proto
  • 표준선(선택): Edge는 runtime execution과 provider routing의 원본 이벤트를 가장 먼저 알고, Control Plane은 연결 view와 운영 조회/export 표면을 제공한다.
  • 표준선(선택): usage는 provider-reported 값을 우선하고, provider가 주지 않는 값은 estimated 또는 unavailable로 명시해 정확도와 추정을 분리한다.
  • SDD gate: agent-roadmap/sdd/operational-observability-provider-management/request-execution-log-usage-ledger-foundation/SDD.md, 사용자 리뷰 USER_REVIEW.md
  • 선행 작업: 사용량, 토큰, 로그 운영 추적 MVP
  • 후속 작업: Provider-Device-Model Qualification 리포트, 운영 리포트, 품질 기반 routing/fallback 고도화
  • 확인 필요: ledger canonical owner, usage source 표시 정책, redaction/retention 기본값, schema 분리 여부