대화형 분석 API로 빌드할 때 상태 관리는 중요한 아키텍처 고려사항입니다. API의 대화 상태와 에이전트 개발 키트 (ADK)를 사용하는 애플리케이션의 경우 프레임워크의 세션 상태를 관리합니다.
API 상태 모드
대화형 분석 API의 chat 메서드는 대화 상태가 처리되는 방식을 결정하는 상호 배타적인 컨텍스트 매개변수를 지원합니다.
다음 표를 사용하여 이러한 모드를 비교하세요.
| 모드 | 주 | 대화 기록 | 에이전트 | 매개변수 | 설명 |
|---|---|---|---|---|---|
| 대화 참조로 채팅하기 | 스테이트풀(Stateful) | API로 관리 | 예 | ConversationReference |
기존 대화와 연결된 에이전트를 참조하여 스테이트풀(Stateful) 대화를 계속합니다. Google Cloud 대화 기록을 저장하고 관리합니다. 각 대화 차례에 새 메시지만 전송합니다. |
| 데이터 에이전트 참조를 사용하여 채팅하기 | 스테이트리스(Stateless) | 애플리케이션에서 관리 | 예 | DataAgentContext |
컨텍스트를 위해 저장된 데이터 에이전트를 참조하는 스테이트리스(Stateless) 메시지를 전송합니다. 애플리케이션은 각 요청과 함께 전체 대화 기록을 관리하고 제공해야 합니다. |
| 인라인 컨텍스트를 사용한 채팅 | 스테이트리스(Stateless) | 애플리케이션에서 관리 | 아니요 | InlineContext |
요청에 모든 컨텍스트를 직접 제공하는 스테이트리스(Stateless) 메시지를 전송합니다. 이 모드는 저장된 데이터 에이전트를 사용하지 않습니다. 애플리케이션이 전체 대화 기록을 관리하고 제공해야 합니다. |
ADK 세션 상태
오케스트레이션을 위해 ADK 프레임워크를 사용하는 경우 ADK는 대화형 분석 API 상태와 독립적으로 작동하는 상태 관리 레이어를 제공합니다. 두 레이어를 모두 이해하는 것은 올바르게 작동하는 멀티 에이전트 시스템을 빌드하는 데 필수적입니다.
ADK는 키 접두사 규칙을 사용하여 상태 변수의 범위와 수명을 제어합니다. 다음 표를 사용하여 이러한 범위를 평가하세요.
| 키 접두사 | 범위 | 전체 기간 | 공개 대상: | 예시 |
|---|---|---|---|---|
| (접두사 없음) | 세션 | 현재 세션에만 | 세션의 모든 상담사 | 현재 대화 주제 또는 마지막 질문의 결과 |
user: |
사용자 | 동일한 사용자의 모든 세션 | 지정된 사용자의 모든 상담사와 세션 | 사용자 환경설정, 저장된 데이터 에이전트 ID 또는 언어 설정 |
app: |
애플리케이션 | 모든 사용자의 모든 세션 | 모든 상담사 및 모든 사용자 | 전역 애플리케이션 구성, 공유 데이터 에이전트 ID 또는 기능 플래그 |
temp: |
호출 | 현재 호출만 | 활성 호출 내의 현재 에이전트 | 스트리밍 청크 또는 진행 중인 계산과 같은 중간 응답 데이터 |
다중 에이전트 시스템에서 상태를 공유하는 방법에 관한 자세한 내용은 ADK 문서를 참고하세요.
API 상태와 ADK 상태가 상호작용하는 방식
ADK 프레임워크와 함께 대화형 분석 API를 사용하면 상태 레이어가 독립적으로 작동합니다.
- API 상태: 애플리케이션에서 대화 참조(스테이트풀(Stateful) 모드)를 사용하는 경우 API가 대화 기록을 관리합니다. 애플리케이션이 데이터 에이전트 컨텍스트 또는 인라인 컨텍스트 (스테이트리스 모드)를 사용하는 경우 API는 각 호출에 대해 스테이트리스로 유지됩니다.
- ADK 세션 상태: ADK 프레임워크는 대화형 분석 API가 사용하는 모드와 관계없이 자체 세션, 이벤트, 상태 변수를 유지합니다.
예를 들어 ADK 내에서 ask_data_insights 또는 ask_data_agent 도구를 사용하는 경우 ADK가 더 광범위한 세션 컨텍스트를 유지하더라도 각 호출은 API 수준에서 독립적으로 상태가 없습니다. ADK 스트리밍 데모는 이 상호작용에 권장되는 패턴을 보여줍니다. 데이터 하위 에이전트는 파싱된 응답 데이터를 temp: 상태에 쓰고 다운스트림 에이전트는 동일한 호출 내에서 이를 읽습니다.
다음 단계
- 아키텍처 통합 패턴을 비교하여 애플리케이션에 가장 적합한 접근 방식을 결정합니다.
- 대화형 분석 API 아키텍처 및 주요 개념에 대해 알아봅니다.
- 데이터 소스를 인증하고 연결하는 방법 알아보기
- HTTP로 에이전트를 만들고 구성하는 방법 알아보기
- Python으로 에이전트를 만들고 구성하는 방법 알아보기
- 작성된 컨텍스트로 에이전트의 동작을 안내하는 방법 알아보기
- Conversational Analytics API의 IAM을 사용한 액세스 제어 이해하기
- CMEK를 사용하여 데이터 에이전트와 대화를 보호하는 방법을 알아보세요.
- Looker 데이터 소스의 에이전트 응답을 렌더링하는 방법을 알아보세요.