1.0.0 ko public

스펙

RAWP-CRS

Compliance rendering specification for RAWP consumers.

1. 개요 (Introduction)

RAWP-CRS 1.0은 RAWP 1.0 프로토콜 기반의 대화형 에이전트 인터페이스를 구현하는 클라이언트의 시각적 렌더링 및 UX 행동 규격이다. 본 규격은 RAWP 1.0의 제어 평면 이벤트와 RAWP-DPS 1.0의 데이터 평면 이벤트를 사용자에게 시각적으로 전달하는 방법을 정의하며, 대화 메시지의 레이아웃, 콘텐츠 렌더링, 상태 표시, 애니메이션 등 클라이언트 UI 구현에 필요한 모든 시각적 요구사항을 포괄한다.

본 규격은 프론트엔드 또는 시각적 피드백(웹 클라이언트, 데스크톱 앱, 터미널, 대시보드 등)을 구현하는 모든 시스템에 적용된다.

1.1. 요구사항 표기 규약 (Requirements Notation)

본 문서의 "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "OPTIONAL"은 RFC 2119를 따른다.

1.2. 용어 정의 (Terminology)

용어 정의
User 대화 인터페이스를 통해 에이전트와 상호작용하는 최종 사용자.
Agent RAWP 세션 내에서 실행되는 작업 프로세스. 텍스트 응답, 도구 호출, 사고 과정 등 다양한 형식의 출력을 생성한다.
System 프로토콜 또는 클라이언트 자체가 생성하는 메타 정보 메시지. 세션 상태 안내, 에러 표시, 중지 알림 등을 포함한다.
Turn 사용자의 단일 프롬프트(control.prompt.request)에 대한 에이전트의 전체 응답 사이클. session.turn.start부터 session.turn.end까지의 논리적 단위.
버블 (Bubble) 메시지를 감싸는 둥근 모서리의 배경색 컨테이너. 메신저 앱에서 발신/수신 메시지를 시각적으로 구분하는 관례적 UI 요소.
버블리스 (Bubble-less) 버블 컨테이너 없이 콘텐츠 자체의 시각적 형태로 렌더링하는 방식.
Ephemeral 대화 이력에 영구적으로 기록되지 않는 일시적 UI 요소. 세션 재연결이나 이력 조회 시 표시되지 않는다.

1.3. 적용 범위 (Scope)

본 규격은 다음을 정의한다:

  • 대화 메시지의 행위자별(User, Agent, System) 시각적 정체성 및 레이아웃 규칙
  • 마크다운 콘텐츠 렌더링 컴포넌트 명세
  • 실시간 스트리밍 텍스트 렌더링 및 스크롤 제어
  • 사고 과정(Thinking), 도구 호출 결과, Code Diff, 태스크 목록의 시각화 규칙
  • 에이전트 상태 표시 및 전환 애니메이션
  • 슬래시 명령어 자동 완성 UI 및 명령어 실행 버블 렌더링
  • 파일 참조 입력(@ 트리거 퍼지 검색) 및 인라인 토큰 렌더링 (§3.4)
  • 시스템 메시지의 생략 금지 원칙 및 드롭다운 패턴
  • 비스트리밍 환경(Discord, Slack 등) 적응 규칙

본 규격은 다음을 정의하지 않는다:

  • RAWP 제어 평면의 HTTP 엔드포인트 정의 (RAWP 1.0 참조)
  • WSS 데이터 프레임의 Envelope 구조 및 이벤트 타입 (RAWP-DPS 1.0 참조)
  • 클라이언트-서버 간 인증 및 토큰 교환 절차 (RAWP 1.0 §3 참조)

1.4. 호환성 및 파싱 규약 (Forward Compatibility)

  • 알 수 없는 이벤트 무시: 클라이언트의 렌더러는 본 규격에 정의되지 않은 agent.*, tool.*, session.* 이벤트 타입을 수신하더라도 UI를 중단하지 않고 조용히 무시해야 한다 (MUST).
  • 알 수 없는 마크다운 구문 폴백: 렌더러가 지원하지 않는 마크다운 확장 구문을 만나면 원문 텍스트를 그대로 표시해야 한다 (MUST). 렌더링 에러를 발생시키거나 해당 텍스트를 숨겨서는 안 된다.
  • 알 수 없는 output_type 폴백: tool.invoke.resultoutput_type이 본 규격에 정의되지 않은 값인 경우, 모노스페이스 텍스트 블록으로 폴백 렌더링해야 한다 (MUST).

참조