이 섹션에서는 Vertex AI Agent Engine 세션을 사용하여 Google Cloud 콘솔 또는 직접 API 호출을 통해 세션을 관리하는 방법을 설명합니다. ADK 에이전트를 사용하여 세션을 관리하지 않으려면 Google Cloud 콘솔 또는 직접 API 호출을 사용하면 됩니다.
ADK 에이전트를 사용하여 세션을 관리하려면 에이전트 개발 키트로 세션 관리를 참조하세요.
Vertex AI Agent Engine 인스턴스 만들기
Vertex AI Agent Engine 세션에 액세스하려면 먼저 Vertex AI Agent Engine 인스턴스를 사용해야 합니다. 세션을 사용하기 위해 코드를 배포할 필요가 없습니다. 이전에 Agent Engine을 사용한 적이 있다면 코드를 배포하지 않고 Vertex AI Agent Engine 인스턴스를 만드는 데 몇 초밖에 걸리지 않습니다. Agent Engine을 처음 사용하는 경우 시간이 더 걸릴 수 있습니다.
기존 Vertex AI Agent Engine 인스턴스가 없으면 다음 코드를 사용하여 인스턴스를 만듭니다.
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION"
)
# If you don't have an Agent Engine instance already, create an instance.
agent_engine = client.agent_engines.create()
# Optionally, print out the Agent Engine resource name. You will need the
# resource name to interact with Sessions later on.
print(agent_engine.api_resource.name)
다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 리전 세션에서 지원되는 리전을 참고하세요.
세션 나열
Vertex AI Agent Engine 인스턴스와 연결된 세션을 나열합니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 에이전트와 연결된 세션을 나열할 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
세션 탭을 클릭합니다. 세션 목록이 ID별로 표시됩니다.
Python용 Vertex AI SDK
for session in client.agent_engines.sessions.list(
name=agent_engine.api_resource.name, # Required
):
print(session)
# To list sessions for a specific user:
for session in client.agent_engines.sessions.list(
name=agent_engine.api_resource.name, # Required
config={"filter": "user_id=USER_ID"},
):
print(session)
- USER_ID: 128자(영문 기준)로 제한된 사용자 ID를 선택합니다.
예를 들면
user-123입니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 에이전트 엔진 인스턴스를 만든 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions" | Select-Object -Expand Content
반환된 세션 목록이 표시됩니다.
원하는 경우 특정 사용자의 세션을 나열하려면 ?filter=user_id=\"USER_ID\" 쿼리 매개변수를 추가하면 됩니다. 여기서 USER_ID은 쿼리할 사용자의 ID입니다.
세션 만들기
사용자 ID와 연결된 세션을 만듭니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 세션을 만들 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
Playground 탭을 클릭합니다.
새 세션을 클릭하여 새 세션을 만듭니다.
Python용 Vertex AI SDK
session = client.agent_engines.sessions.create(
name=agent_engine.api_resource.name, # Required
user_id=USER_ID, # Required
)
여기서 USER_ID는 정의한 사용자 ID입니다. 예를 들면 user-123입니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 에이전트 엔진 인스턴스를 만든 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
- USER_ID: 정의한 사용자 ID 예를 들면
sessions-agent입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions
JSON 요청 본문:
{
"userId": USER_ID
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions" | Select-Object -Expand Content
세션의 생성 상태를 확인하기 위해 쿼리할 수 있는 장기 실행 작업이 반환됩니다.
세션 가져오기
Vertex AI Agent Engine 인스턴스와 연결된 특정 세션을 가져옵니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 세션을 만들 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
Playground 탭을 클릭합니다.
세션 탭을 클릭합니다. 세션 목록이 ID별로 표시됩니다.
자세히 보려는 세션을 클릭합니다.
Python용 Vertex AI SDK
session = client.agent_engines.sessions.get(
name='projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID', # Required
user_id=USER_ID, # Required
)
# session.name will correspond to
# 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID'
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 에이전트 엔진 인스턴스를 만든 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
- SESSION_ID: 가져오려는 세션의 리소스 ID입니다. 세션을 만들 때 받은 응답에서 세션 ID를 가져올 수 있습니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID" | Select-Object -Expand Content
응답에 세션 정보가 표시됩니다.
세션 삭제
Vertex AI Agent Engine 인스턴스와 연결된 세션을 삭제합니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 에이전트와 연결된 세션을 삭제할 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
세션 탭을 클릭합니다. 세션 목록이 ID별로 표시됩니다.
삭제할 세션의 추가 작업 메뉴 ()를 클릭합니다.
삭제를 클릭합니다.
세션 삭제를 클릭합니다.
Python용 Vertex AI SDK
client.agent_engines.sessions.delete(name=session.name)
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: Example Store 인스턴스를 만들 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
- SESSION_ID: 가져오려는 세션의 리소스 ID입니다.
HTTP 메서드 및 URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
세션의 이벤트 나열
Vertex AI Agent Engine 인스턴스와 연결된 세션의 이벤트를 나열합니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 세션을 만들 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
Playground 탭을 클릭합니다.
세션 탭을 클릭합니다. 세션 목록이 ID별로 표시됩니다.
자세히 보려는 세션을 클릭합니다.
이벤트 탭을 클릭하여 세션과 연결된 이벤트를 확인합니다.
Python용 Vertex AI SDK
for session_event in client.agent_engines.list_session_events(
name=session.name,
):
print(session_event)
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 에이전트 엔진 인스턴스를 만든 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
- SESSION_ID: 가져오려는 세션의 리소스 ID입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID/events" | Select-Object -Expand Content
응답에 세션과 연결된 이벤트 목록이 표시됩니다.
세션에 이벤트 추가
Vertex AI Agent Engine 인스턴스와 연결된 세션에 이벤트를 추가합니다.
Google Cloud 콘솔
배포된 에이전트의 경우 Google Cloud 콘솔을 사용하여 세션을 만들 수 있습니다.
- Google Cloud 콘솔에서 Vertex AI Agent Engine 페이지로 이동합니다.
선택한 프로젝트에 속하는 Agent Engine 인스턴스가 목록에 표시됩니다. 필터 필드를 사용하여 지정된 열을 기준으로 목록을 필터링할 수 있습니다.
Agent Engine 인스턴스 이름을 클릭합니다.
Playground 탭을 클릭합니다.
세션 탭을 클릭합니다. 세션 목록이 ID별로 표시됩니다.
자세히 보려는 세션을 클릭합니다.
이벤트 탭을 클릭하여 세션과 연결된 이벤트를 확인합니다.
메시지를 입력하고 Enter 키를 눌러 세션에 새 이벤트를 추가합니다.
Python용 Vertex AI SDK
import datetime
client.agent_engines.sessions.events.append(
name=session.name,
author="user", # Required.
invocation_id="1", # Required.
timestamp=datetime.datetime.now(tz=datetime.timezone.utc), # Required.
config={
"content": {
"role": "user",
"parts": [{"text": "hello"}]
},
},
)
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 에이전트 엔진 인스턴스를 만든 리전입니다.
- AGENT_ENGINE_ID: Agent Engine 인스턴스의 리소스 ID입니다.
- SESSION_ID: 이벤트를 추가할 세션의 리소스 ID입니다.
- AUTHOR: 이벤트의 작성자입니다.
'user'또는 에이전트 이름일 수 있습니다. - INVOCATION_ID: 호출의 식별자입니다.
- TIMESTAMP: 이벤트의 타임스탬프입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID:appendEvent
JSON 요청 본문:
{
"author": AUTHOR,
"invocationId": INVOCATION_ID,
"timestamp": TIMESTAMP,
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID:appendEvent"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/sessions/SESSION_ID:appendEvent" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
삭제
이 프로젝트에 사용된 모든 리소스를 삭제하려면 Vertex AI Agent Engine 인스턴스를 하위 리소스와 함께 삭제하면 됩니다.
agent_engine.delete(force=True)