전체 글 219

19. Session/Memory/Artifact [8]- InMemoryMemoryService

이번 코드는 앞서 성공한 VertexAiSessionService 실습에서 한 단계 더 나아가, 대화 세션을 기억으로 저장하고, 나중에 그 기억을 검색해 활용하는 구조를 테스트하려는 코드입니다.먼저 가장 중요한 결론부터 말씀드리겠습니다.1. 어떤 명령어로 실행해야 할까요?이번 코드의 목적이 InMemoryMemoryService 테스트라면, 우선 다음 명령어로 실행하는 것이 맞습니다.adk web --port 8080다만, 이 명령어만으로 InMemoryMemoryService가 자동으로 설정되는 것은 아닙니다. ADK가 사용하는 기본 서비스 설정과 에이전트 실행 환경에 따라 실제로 어떤 Memory Service가 연결되는지 확인해야 합니다. 두 명령어의 차이는 다음과 같습니다. 실행 명령어 주요 목..

18. Session/Memory/Artifact [7]- VertexAiSessionService(3/3)

이번 실습은 단순히 VertexAiSessionService를 실행한 정도가 아니라, 로컬에서 실행하는 ADK 에이전트에 Google Cloud의 관리형 세션 서비스를 연결하고, 서버를 재시작한 뒤에도 대화 맥락이 유지되는 것을 검증한 것입니다. 특히 "오늘 서울 날씨 어때?"라고 질문한 다음 로컬 웹 서버를 종료하고 다시 실행한 뒤 "내일은?"이라고 물어 정상적으로 답변을 받았다면, 중요한 검증을 통과하신 것입니다.1. 이번 실습에서 확인한 핵심 ① Agent Engine 인스턴스 생성 및 ID 확보 Google Cloud에 생성한 Agent Engine 인스턴스 ID를 확인하고 세션 서비스에 전달했습니다. ② VertexAiSessionService 연결 기존의 InMemorySessi..

17. Session/Memory/Artifact [6]- VertexAiSessionService(2/3)

이제 에이전트 엔진 인스턴스를 생성하고, 코드를 실행하여 Google Cloud Resource Name이 표시되는지 확인합니다.1. STAGING_BUCKET의 버킷명은 어디서 확인할까요?STAGING_BUCKET = "gs://"은 Google Cloud Storage에 있는 Cloud Storage 버킷의 주소를 지정하는 부분입니다.여기서 버킷(bucket)은 파일을 담는 최상위 저장 공간이라고 이해하시면 됩니다. 이번 실습에서는 Agent Engine을 생성할 때 필요한 배포 패키지 등의 파일을 임시로 올려 두는 용도로 사용합니다. Google 공식 문서에서도 Agent Engine 생성 설정의 staging_bucket은 gs://로 시작하는 Cloud Storage 버킷이어야 한다고 안내합니다..

16. Session/Memory/Artifact [5]- VertexAiSessionService(1/3)

실습 전 준비 → Google Cloud 설정 → Agent Engine 생성 → ID 확인 → ADK Web 연결 → 서버 재시작 검증 → 최종 정리 순서로 정리하겠습니다. 목표는 로컬 PC에서 실행하는 Google ADK 에이전트에 Google Cloud의 관리형 세션 서비스를 연결하여, 웹 서버를 종료하고 다시 실행해도 기존 대화 맥락을 유지할 수 있는지 검증하는 것입니다. 핵심 질문은 다음과 같습니다.로컬에서 adk web으로 실행하는 에이전트가 대화 세션을 Google Cloud에 저장하면, 서버를 재시작한 뒤에도 이전 대화의 맥락을 이어갈 수 있을까?이를 확인하기 위해 기존의 InMemorySessionService 대신 VertexAiSessionService를 사용했습니다. 1. 먼저 결론..

15. Session/Memory/Artifact [4] - DatabaseSessionService 활용Google ADK + PostgreSQL 정리(2/2)

Google ADK 날씨 에이전트 코드 상세 정리합니다. 이번에는 코드를 단순히 한 줄씩 번역하는 데 그치지 않고, 왜 이 코드를 작성했는지, Python이 어떻게 실행하는지, Google ADK가 어디에 관여하는지, PostgreSQL에 저장한 사용자 상태와 어떻게 연결되는지까지 정리합니다. 특히 이번 코드에서 가장 중요한 개념은 세 가지입니다.도구(Tool): 날씨 데이터를 조회하고 결과를 반환하는 Python 함수상태(State): 사용자가 마지막으로 물어본 도시를 기억하는 정보에이전트(Agent): 사용자의 질문을 해석하고 적절한 도구를 선택하는 AI1. 코드 전체 구조 먼저 보기여기서 꼭 구분해야 할 점이 있습니다. WEATHER_DB는 Python 코드 안에 있는 날씨 데이터이고, Postgr..

14. Session/Memory/Artifact [3] - DatabaseSessionService 활용Google ADK + PostgreSQL 정리(1/2)

Python 날씨 에이전트의 사용자 상태를 DB에 저장하고, 재시작 후에도 기억하는 과정입니다. 이번 실습의 목표는 단순히 날씨를 알려주는 AI 에이전트를 만드는 것이 아닌, Python으로 에이전트를 작성하고, PostgreSQL을 연결하고, ADK가 대화 상태를 데이터베이스에 저장하도록 만든 다음, 실제로 도시명이 저장되는지 검증하는 것이 핵심입니다. 이번에 성공한 환경을 기준으로 처음부터 다시 따라 할 수 있도록 정리하겠습니다. 코드 작성 순서와 실행·검증 절차에 집중하겠습니다.[전체 흐름 한눈에 보기]1. Python 날씨 에이전트 작성 오늘 날씨 / 내일 날씨 / 마지막 도시 상태 관리2. Python 패키지와 DB 드라이버 설치 Google ADK · SQLAlchemy · asyn..

13. Session/Memory/Artifact [2] - 세션 스테이트(session.state)를 활용한 핵심정보 선별적 관리(단기 기억)

앞서 살펴본 session.events(대화 기록 전체를 뒤져서 찾는 방식)와는 다르게, Google ADK의 session.state라는 명시적인 상태 저장소(Key-Value 딕셔너리 형태)를 활용해 단기 기억을 관리하는 예제입니다. 이 코드의 상세한 해설과 함께, 함수들을 tools 리스트에 등록하기만 하면 LLM이 이해할 수 있는 스키마(Schema)가 자동으로 생성되는 마법 같은 원리에 대해서도 아주 친절하게 설명해 드리겠습니다.1. 코드 라인별 상세 해설① 가상 날씨 데이터 준비 (WEATHER_DB)WEATHER_DB = { "서울": {"today": "맑음, 22도", "tomorrow": "비, 18도"}, "대전": {"today": "흐림, 20도", "tomorrow":..

12. Session/Memory/Artifact [1] - 세션 이벤트(session.events)를 활용한 대화 맥락(단기 기억)

아래 코드는 Google ADK 환경에서 세션 이벤트(session.events)를 활용해 대화 맥락(단기 기억)을 유지하고 활용하는 핵심 메커니즘을 구현한 예제입니다.사용자가 "서울 날씨 어때?"라고 물은 뒤, 바로 이어서 도시 이름 없이 "그럼 내일은?"이라고 물었을 때, 에이전트가 이전 대화 기록에서 "서울"이라는 단어를 스스로 찾아내어 정상적으로 답변할 수 있게 해주는 멋진 코드입니다.🕊️코드 요약 및 핵심 의미제목: 세션 이벤트(Session Events) 기반의 대화 맥락 기억 및 날씨 조회 에이전트핵심 의미:LLM은 기본적으로 이전 대화에서 언급된 특정 단어(도시명 등)를 도구(Tool) 파라미터로 매번 완벽하게 전달하지 못할 수 있습니다.이 코드에서는 tool_context.events라..

11. G-ADK Tool 활용[8]- PlanReActPlanner(사고 과정을 설계하는 명시적 플래너)

Google ADK(Agent Development Kit)와 Gemini 모델을 활용하여 Open-Meteo 지오코딩 API와 OpenWeatherMap API를 연동하고, AI 에이전트(Agent)가 도구(Tool)로 삼아 실시간 날씨를 조회할 수 있도록 구현한 파이썬 스크립트입니다.I. 코드 요약 및 핵심 의미제목: Google ADK와 외부 날씨 API(Open-Meteo & OpenWeatherMap)를 연동한 LLM 에이전트 구현핵심 의미:사용자의 자연어 질문(예: "서울 날씨 어때?")을 이해하고, 에이전트가 스스로 필요한 도구(get_real_current_weather)를 선택해 실행합니다.도시 이름을 위/경도 좌표로 변환하는 지오코딩 과정(Open-Meteo)과 실제 날씨 정보를 가져오..

10. G-ADK Tool 활용[7](3/3) - GCP 샌드박스 에이전트 엔진 기

GCP 샌드박스 에이전트 엔진 인스턴스 생성 및 ADK(Agent Development Kit) 웹 UI 연동 작업에 대한 전체 흐름과, 두 가지 핵심 코드에 대한 상세한 해설입니다.1. GCP 샌드박스 에이전트 엔진 구축 및 ADK 연동 작업 순서GCP 인증 및 환경 설정 1) 터미널에서 구글 클라우드 인증을 수행하여 Application Default Credentials(ADC)를 발급받습니다. => winget install -e --id Google.CloudSDK Google Cloud CLI (gcloud) 설치하기 Windows 환경에서 신속/깔끔한 설치하는 방법인 PowerShell의 패키지 관리자인 winget 이용 ..