전체 글 229

29. 평가(4.x)- OpenTelemetry 패키지와 Google ADK 사이의 버전 의존성 충돌(Dependency Conflict)

설치한 패키지를 모두 삭제하거나 가상환경을 새로 만들 필요 없이, OpenTelemetry의 핵심 패키지 버전을 조정하면 해결할 수 있습니다. 우선 현재 상황을 정확하게 이해한 다음, 안전하게 수정하고 정상 작동 여부까지 확인해 보겠습니다.1. 현재 오류의 원인실행 결과를 보면 다음과 같습니다.google-adk 2.13.0 has requirementopentelemetry-api=1.39,but you have opentelemetry-api 1.45.2.google-adk 2.13.0 has requirementopentelemetry-sdk=1.39,but you have opentelemetry-sdk 1.45.2.핵심은 다음과 같습니다. 패키지 Google ADK 요구사항 현재 설치 버전 상태..

28. 평가(4)- 중앙집중형 관측 체계(Observability)

이번에는 앞서 실습한 Python logging을 한 단계 발전시켜, 여러 Agent와 Tool의 실행 정보를 Google Cloud에 모아 관찰하는 중앙집중형 관측(Observability) 체계를 구축해 보겠습니다. 이번 실습의 핵심은 단순히 로그 파일을 만드는 것이 아닙니다.예를 들어 앞으로 사용자가 Manager Agent에 질문하면 Manager Agent가 Weather Agent를 호출하고, Weather Agent가 날씨 Tool을 실행한다고 생각해 보겠습니다. 이때 각 구성요소의 실행 흐름과 소요 시간, 오류, 호출 관계를 한곳에서 확인할 수 있도록 만드는 것입니다. 사용하시는 환경을 기준으로 설명하겠습니다. 항목 실습 환경 OSWindows / PowerShell프로젝트 경로C:\Dev..

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를 이용하도록 연결하..

반응형