Skip to content

핵심 개념

이 섹션에서는 A2UI의 기본 아키텍처를 설명합니다. 이러한 개념을 이해하면 효과적인 에이전트 주도 인터페이스를 구축하는 데 도움이 됩니다.

큰 그림

A2UI는 세 가지 핵심 아이디어를 바탕으로 구축되었습니다:

  1. 스트리밍 메시지: UI 업데이트는 에이전트에서 클라이언트로 일련의 JSON 메시지 시퀀스로 전달됩니다.
  2. 선언적 컴포넌트: UI는 코드로 프로그래밍되는 것이 아니라 데이터로 설명됩니다.
  3. 데이터 바인딩: UI 구조는 애플리케이션 상태와 분리되어 있어 반응형 업데이트가 가능합니다.

주요 주제

데이터 흐름 (Data Flow)

메시지가 에이전트에서 렌더링된 UI까지 전달되는 방식입니다. 레스토랑 예약 흐름의 전체 생명주기 예시, 전송 옵션(SSE, WebSockets, A2A), 점진적 렌더링 및 오류 처리가 포함됩니다.

컴포넌트 구조 (Component Structure)

컴포넌트 계층 구조를 나타내기 위한 A2UI의 인접 리스트(adjacency list) 모델에 대해 알아봅니다. 왜 평면적인 리스트가 중첩된 트리보다 나은지, 정적 자식과 동적 자식을 사용하는 방법, 증분 업데이트를 위한 베스트 프랙티스를 배웁니다.

데이터 바인딩 (Data Binding)

JSON Pointer 경로를 사용하여 컴포넌트를 애플리케이션 상태에 연결하는 방식입니다. 반응형 컴포넌트, 동적 리스트, 입력 바인딩, 그리고 A2UI를 강력하게 만드는 구조와 상태의 분리에 대해 다룹니다.

메시지 유형

A2UI는 네 가지 메시지 유형을 사용합니다:

  • surfaceUpdate: UI 컴포넌트를 정의하거나 업데이트합니다.
  • dataModelUpdate: 애플리케이션 상태를 업데이트합니다.
  • beginRendering: 클라이언트에 렌더링을 시작하라는 신호를 보냅니다.
  • deleteSurface: UI 서피스(surface)를 제거합니다.

상세한 기술 정보는 메시지 레퍼런스를 참조하세요.