전체 글 227

27. 평가(3)- logging 모듈을 이용한 에이전트 실행과정 기록

이번 코드는 Python 표준 logging 모듈을 이용해 에이전트의 실행 과정을 기록하는 기초 실습입니다.앞서 만들었던 Weather Agent에 연결해서 생각하면 이해하기 쉽습니다. 사용자가 서울 날씨를 물어보았을 때, 에이전트가 어떤 함수를 호출했는지, 어떤 지역을 지원하는 것으로 판단했는지, 정상적으로 데이터를 반환했는지, 지원하지 않는 지역이라 경고가 발생했는지 등을 app.log 파일에 기록하는 것입니다.이번 실습에서는 다음 순서로 진행하겠습니다.코드가 어떤 역할을 하는지 이해하기테스트용 Python 파일 만들기정상 입력과 잘못된 입력으로 테스트하기app.log 파일의 로그 한 줄씩 해석하기로그 레벨을 INFO, DEBUG, WARNING, ERROR로 바꾸어 비교하기현재 코드에서 보완할 점 ..

26. 평가(2)- Evalset. ADK Web UI에서 평가 실행 통합테스트

현재 작업 위치가 다음과 같죠.(venv) PS C:\Dev\book_agentic_ai\adk_>그리고 그 아래에 두 개의 Agent 폴더가 있습니다.adk_/│├── agent/│ └── agent.py # 기존 Agent│├── weather_eval_agent/│ ├── __init__.py│ └── weather_agent.py # 이번 평가용 Agent│└── evals/ └── seoul_daejeon_weather.test.json기존 agent가 아니라 weather_eval_agent를 실행 대상으로 지정하면 됩니다.1. 추천하는 실행 방법: weather_eval_agent만 연결현재 PowerShell 위치에서 다음 명령을 ..

25. 평가(1)- 테스트 파일(*.test.json) 단위 테스트(Unit Test)

이번 실습은 단순히 날씨를 알려주는 에이전트를 만든 것에서 한 단계 더 나아갔습니다. 에이전트가 어떤 도구를 선택하고, 도구를 실제로 실행하고, 그 결과를 바탕으로 답변하는지, 그리고 그 과정이 기대한 대로 작동했는지를 자동으로 평가하는 과정까지 완성한 것입니다.나중에 다시 공부할 때 참고할 수 있도록 하나의 학습 노트 형태로 정리하겠습니다.이번 설명은 다음 순서로 진행하겠습니다.전체 프로젝트의 구조와 작동 원리weather_agent.py 전체 코드 해설__init__.py의 역할seoul_daejeon_weather.test.json의 구조와 의미ADK Eval의 평가 원리실제 평가 결과를 읽는 방법실행 및 재평가 방법이번 실습에서 배워야 할 핵심 개념과 다음 단계1. 전체 프로젝트 이해하기1-1. ..

24. Session/Memory/Artifact [13] - 통합형 Intelligence Agent

이번에는 단순히 load_artifact()와 list_artifacts()를 추가하는 수준을 넘어, GCS에 축적된 과거 보고서를 검색하고, 읽고, 요약하고, 서로 비교하는 통합형 Weather Intelligence Agent로 만드는 것이 좋겠습니다.이번 단계는 지금까지 공부한 ADK의 여러 기능을 하나로 연결하는 상당히 좋은 종합 실습입니다.이번 실습 목표: WeatherBot 2.0 – GCS Artifact 기반 보고서 관리·분석 에이전트 사용자 요청 에이전트가 수행할 작업 서울 날씨 보고서를 만들어 줘새 보고서 생성 및 GCS 저장지난번 서울 보고서를 보여줘GCS에서 과거 보고서 검색 및 조회지금까지 서울 보고서 목록을 보여줘Artifact 목록 조회서울 보고서 중 가장 최근 것을 읽어줘최신..

23. Session/Memory/Artifact [12]- ADK ArtifactService(2) : 에이전트가 생성한 파일(Artifact)을 Google Cloud Storage(GCS)에 영구적으로 저장하는 구

이번 실습은 지금까지 진행해 온 ADK의 세션(Session)과 메모리(Memory) 실습에서 한 단계 더 나아가는 중요한 과정입니다.이번에는 에이전트가 생성한 파일(Artifact)을 Google Cloud Storage(GCS)에 영구적으로 저장하는 구조를 이해하는 것이 핵심입니다.특히 이번 실습을 통해 다음과 같은 개념을 확실히 구분할 수 있어야 합니다.Agent: 사용자의 요청을 이해하고 작업을 수행하는 주체Tool: 실제 날씨 보고서를 생성하는 함수Artifact: 에이전트가 생성한 파일이나 결과물ArtifactService: Artifact를 저장하고 조회하는 서비스GcsArtifactService: Artifact를 Google Cloud Storage에 저장하는 서비스ToolContext:..

22. Session/Memory/Artifact [11]- ADK ArtifactService(1) : 파일 생성, 저장, 조회 및 관리 구조 이해하기

이번 실습은 앞서 공부한 SessionService, MemoryService에 이어 ADK의 세 번째 데이터 관리 서비스인 ArtifactService를 이해하는 과정입니다. 이번 코드는 단순히 날씨를 조회하는 에이전트를 만드는 것이 아닙니다.에이전트가 외부 정보를 수집하고, 그 결과를 문서 파일로 가공한 다음, ADK의 ArtifactService에 저장하는 전체 과정을 구현한 것입니다. 앞서 공부한 두 서비스와 비교하면 이해하기 쉽습니다. 서비스 관리 대상 핵심 역할 SessionService대화 이벤트사용자와 나눈 대화 관리MemoryService장기 기억과거 대화에서 중요한 정보 기억ArtifactService파일 및 산출물문서, 이미지, 데이터 파일 저장 및 조회예를 들어 AI 에이전트를 업..

21. Session/Memory/Artifact [10]- VertexAiMemoryBankService(2/2)

6. 5단계: Agent 객체 생성이제 에이전트를 만드는 코드입니다.memory_agent = Agent( model=os.getenv("GOOGLE_MODEL", "gemini-3.5-flash"), name="memory_agent", instruction=( "당신은 질문에 성실히 답하는 도움되는 에이전트이며, " "질문과 대답은 모두 한글로만 해야 한다." ), tools=[load_memory], after_agent_callback=add_session_to_memory,)하나씩 살펴보겠습니다.6-1. modelmodel=os.getenv("GOOGLE_MODEL", "gemini-3.5-flash")에이전트가 사용할 LLM을 지정합니다..

20. Session/Memory/Artifact [9]- VertexAiMemoryBankService(1/2)

지금까지 공부한 ADK의 메모리 서비스가 한 단계 발전하는 중요한 과정입니다. 앞서 InMemoryMemoryService와 VertexAiSessionService를 실습했다면, 이번에는 에이전트가 대화한 내용을 Google Cloud의 Vertex AI Memory Bank에 저장하고, 다음 대화에서 다시 검색해 활용하는 구조를 배우는 것입니다. 단순히 로컬 메모리를 클라우드 메모리로 바꾸는 것 이상의 의미가 있습니다.이번 실습을 이해하려면 다음 세 가지를 명확하게 구분해야 합니다.Agent Engine: Google Cloud에 메모리를 저장하고 관리할 클라우드 측 리소스입니다.VertexAiMemoryBankService: 로컬 ADK 에이전트가 클라우드의 Memory Bank를 이용하도록 연결하..

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..