이 문서에서는 Vertex AI Agent Engine 메모리 뱅크를 사용할 때 발생하는 일반적인 문제를 해결하는 방법을 보여줍니다.
생성된 추억이 없습니다.
기억 생성 프로세스에는 소스 콘텐츠의 정보가 지속될 만큼 의미가 있는지 판단하는 중요한 단계가 포함됩니다. 빈 응답은 프로세스가 성공적으로 실행되었지만 저장 기준을 충족하는 정보가 없음을 나타냅니다. 추억이 생성될 것으로 예상했는데 생성되지 않는다면 이 가이드에서 잠재적인 오류나 잘못된 구성을 파악하는 데 도움을 받을 수 있습니다.
추억이 생성되지 않는 이유를 해결하려면 다음 단계를 순서대로 따르세요.
메모리 생성이 트리거되었는지 확인
먼저 메모리 생성 프로세스가 실제로 시작되었는지 확인합니다. 메모리 생성은 GenerateMemories
(client.agent_engines.memories.generate(...)
)를 호출하여 시작됩니다.
ADK의 VertexAiMemoryBankService
를 사용하는 경우 메모리 생성이 자동으로 트리거되지 않습니다. 에이전트 또는 애플리케이션이 add_session_to_memory
메서드를 명시적으로 호출하여 프로세스를 트리거했는지 확인해야 합니다.
add_session_to_memory
는 Session
객체를 입력으로 사용하고 세션의 이벤트를 메모리 생성의 데이터 소스로 사용합니다. 세션 객체에 채워진 이벤트가 있는 경우에만 Memory Bank 인스턴스를 호출합니다. ADK 애플리케이션 또는 에이전트가 add_session_to_memory
를 호출하지만 메모리 생성이 트리거되지 않은 경우 Session
객체의 이벤트가 채워지지 않을 수 있습니다. 세션과 상호작용한 경우에도 가능하며, 특히 adk.Runner
를 사용하는 경우에 가능합니다. 이 문제를 해결하려면 add_session_to_memory
를 호출하는 환경으로 세션과 이벤트를 가져오세요.
session = await session_service.get_session(
app_name=app_name,
user_id=user_id,
session_id=session.id
)
# Confirm that events are populated.
print(session.events)
memory_service.add_session_to_memory(session)
메모리 생성 LRO가 완료되었는지 확인
메모리 생성은 장기 실행 작업 (LRO)이며 완료하는 데 몇 초 정도 걸릴 수 있습니다. 정확한 지연 시간은 입력 대화의 길이와 처리되는 정보의 복잡성에 따라 달라집니다.
Agent Engine SDK를 사용하는 경우 메모리 생성은 기본적으로 차단 작업입니다. 따라서 client.generate_memories(...)
는 메모리 생성 LRO가 완료될 때까지 코드 실행을 차단합니다.
ADK의 VertexAiMemoryBankService
를 사용하는 경우 add_session_to_memory
은 차단되지 않는 작업입니다. 메모리 생성만 트리거하고 LRO가 완료될 때까지 기다리지 않습니다.
작업 응답에서 오류 찾기
LRO 응답에는 메모리 생성이 실패했음을 나타내는 오류 메시지가 포함될 수 있습니다. 예를 들면 다음과 같습니다.
RuntimeError: Failed to generate memory: {'code': 3, 'message': 'Failed to extract memories: Please use a valid role: user, model.'}
일반적인 오류는 다음과 같습니다.
사용한 만큼만 지불 요금제를 사용할 때 Gemini의 리소스 소진 오류. 동적 공유 할당량 (DSQ)을 사용하면 사용량에 사전 정의된 할당량 제한이 없습니다. 메모리 뱅크의 가용성을 높이고 프로덕션 워크로드의 서비스 수준을 예측 가능하게 하려면 프로비저닝된 처리량을 참고하세요.
Content
에서model
및user
이외의 역할을 사용하는 등 잘못된 소스 데이터
대화가 의미 있었는지 확인
프로세스가 트리거되고, 성공적으로 완료되었으며, 오류가 발생하지 않은 경우 메모리 뱅크가 소스 대화에 지속할 만큼 의미 있는 정보가 없다고 판단했을 수 있습니다.
메모리 뱅크는 '메모리 주제'를 사용하여 의미 있는 정보를 식별합니다. 대화의 콘텐츠가 구성된 주제와 일치하지 않으면 추억이 생성되지 않습니다.
정보가 유지되어야 한다고 생각되면 메모리 뱅크 인스턴스의 구성을 맞춤설정하여 기대치에 더 잘 맞출 수 있습니다.
메모리 주제 구성을 사용하면 지속적으로 저장해야 할 정보를 정의할 수 있습니다. 퓨샷 예시를 구성하면 어떤 정보를 어떤 표현으로 유지해야 하는지 미묘한 차이를 학습시켜 메모리 뱅크 인스턴스가 기대에 부응하도록 적응할 수 있습니다. 메모리 뱅크 맞춤설정은 말하기와 보여주기라는 두 단계로 생각할 수 있습니다. 메모리 주제는 메모리 뱅크에 어떤 정보를 유지해야 하는지 알려줍니다. 퓨샷은 메모리 뱅크에 특정 메모리를 생성해야 하는 정보의 종류를 보여주어 메모리 뱅크가 사용자가 이해하기를 바라는 패턴, 미묘한 차이, 표현을 학습하도록 지원합니다.