한 줄 목표
Client가 AiRun 진행 상태를 실시간으로 볼 수 있도록 Server → Client 단방향 SSE 구독 API를 선택적으로 추가합니다.
이 기능은 실행의 기준이 아니라 화면 편의를 위한 보조 기능입니다. 실제 상태의 기준은 항상 Server DB의 AiRun이며 기존 조회 API를 유지합니다.
쉽게 설명하면
현재 기본 방식은 Client가 일정 간격으로 실행 상태를 조회하는 polling입니다.
Client → GET /api/v1/ai-runs/{aiRunId}
SSE를 추가하면 Server가 상태가 변할 때 화면에 알려줄 수 있습니다.
분석 대기 → 분석 중 → 정보 확인 중 → 검토 필요 → 완료
통신 경계
- SSE 방향은 Server → Client 한 방향입니다.
- Client 명령과 HR 답변은 기존 REST POST를 사용합니다.
- Server ↔ AI Runtime은 SSE로 변경하지 않고 #8의 REST·JSON 계약을 유지합니다.
- SSE 연결이 끊겨도 AiRun 실행은 계속됩니다.
- 재연결하거나 SSE를 지원하지 않는 Client는 기존 GET polling을 사용합니다.
제안 API
GET /api/v1/ai-runs/{aiRunId}/events
Accept: text/event-stream
Authorization: Bearer <access-token>
공개할 이벤트 예시:
RUN_QUEUED
RUN_STARTED
SLOT_CHECKING
NEEDS_INFO
REVIEW_REQUIRED
COMPLETED
FAILED
Agent의 자유문장 추론, Chain of Thought, Prompt, Provider 원문 응답은 이벤트로 노출하지 않습니다.
작업 범위
완료 조건
시작 조건
범위 밖
- Server ↔ Agent 양방향 스트리밍
- WebSocket
- Agent token streaming
- Chain of Thought 공개
- Task 자동 생성·승인·발송
관계
한 줄 목표
Client가 AiRun 진행 상태를 실시간으로 볼 수 있도록 Server → Client 단방향 SSE 구독 API를 선택적으로 추가합니다.
이 기능은 실행의 기준이 아니라 화면 편의를 위한 보조 기능입니다. 실제 상태의 기준은 항상 Server DB의 AiRun이며 기존 조회 API를 유지합니다.
쉽게 설명하면
현재 기본 방식은 Client가 일정 간격으로 실행 상태를 조회하는 polling입니다.
SSE를 추가하면 Server가 상태가 변할 때 화면에 알려줄 수 있습니다.
통신 경계
제안 API
공개할 이벤트 예시:
Agent의 자유문장 추론, Chain of Thought, Prompt, Provider 원문 응답은 이벤트로 노출하지 않습니다.
작업 범위
Last-Event-ID기반 재연결 처리완료 조건
시작 조건
범위 밖
관계