에이전트 배포

Agent Engine에 에이전트를 배포하려면 다음 단계를 따르세요.

  1. (선택사항) 패키지 요구사항 정의
  2. (선택사항) 소스 파일 정의
  3. (선택사항) Cloud Storage 디렉터리 정리
  4. (선택사항) 리소스 메타데이터 정의
  5. AgentEngine 인스턴스 만들기

시작하기 전에

상담사를 배포하기 전에 다음 작업을 완료했는지 확인하세요.

  1. 환경을 설정합니다.
  2. 에이전트 개발

1단계: 패키지 요구사항 정의

에이전트가 배포되기 위해 필요한 패키지 세트를 제공합니다. pip에 의해 설치될 항목 목록이거나 요구사항 파일 형식을 따르는 파일의 경로일 수 있습니다.

에이전트에 종속 항목이 없는 경우 None으로 설정할 수 있습니다.

requirements = None

상담사가 프레임워크별 템플릿을 사용하는 경우 상담사를 개발할 때 가져온 SDK 버전 (예: 1.77.0)을 지정해야 합니다.

LangChain

requirements = [
    "google-cloud-aiplatform[agent_engines,langchain]",
    # any other dependencies
]

LangGraph

requirements = [
    "google-cloud-aiplatform[agent_engines,langgraph]",
    # any other dependencies
]

[선택사항] 버전 제약조건

특정 패키지(예: google-cloud-aiplatform)의 버전을 상한으로 제한하거나 고정하려는 경우 다음을 실행합니다.

requirements = [
    # See https://pypi.org/project/google-cloud-aiplatform for the latest version.
    "google-cloud-aiplatform[agent_engines,langgraph]==1.77.0",
]

목록에 패키지와 제약 조건을 추가할 수 있습니다.

requirements = [
    "google-cloud-aiplatform[agent,langgraph]==1.75.0",
    "cloudpickle==3.0", # new
]

[선택사항] 개발 브랜치

GitHub 브랜치 또는 풀 요청에 있는 패키지 버전을 가리킬 수 있습니다. 예를 들면 다음과 같습니다.

requirements = [
    "google-cloud-aiplatform[agent_engines,langchain] @ git+https://github.com/googleapis/python-aiplatform.git@BRANCH_NAME", # new
    "cloudpickle==3.0",
]

[선택사항] 요구사항 파일 형식

파일 (예: path/to/requirements.txt)에 요구사항 목록을 유지할 수 있습니다.

requirements = "path/to/requirements.txt"

여기서 path/to/requirements.txt요구사항 파일 형식을 따르는 텍스트 파일입니다(예:

google-cloud-aiplatform[agent_engines,langchain]
cloudpickle==3.0

2단계: 추가 패키지

필요한 로컬 Python 소스 파일이 포함된 로컬 파일 또는 디렉터리를 포함할 수 있습니다. 이렇게 하면 패키지 요구사항과 비교하여 PyPI 또는 GitHub에서 사용할 수 없는 개발한 비공개 유틸리티를 사용할 수 있습니다.

에이전트에 추가 패키지가 필요하지 않으면 None로 설정할 수 있습니다.

extra_packages = None

[선택사항] 파일 및 디렉터리

단일 파일 (예: agents/agent.py)을 포함하려면 목록에 추가하면 됩니다.

extra_packages = ["agents/agent.py"]

전체 디렉터리 (예: agents/)에 파일 집합을 포함하려면 디렉터리를 지정하면 됩니다.

extra_packages = ["agents"] # directory that includes agents/agent.py

[선택사항] 휠 바이너리

Python wheel 바이너리(예: path/to/python_package.whl)를 포함하고 패키지 요구사항에 지정할 수 있습니다.

requirements = [
    "google-cloud-aiplatform[agent,langgraph]",
    "cloudpickle==3.0",
    "python_package.whl",  # install from the whl file that was uploaded
]
extra_packages = ["path/to/python_package.whl"]  # bundle the whl file for uploading

3단계: Cloud Storage 디렉터리

스테이징 아티팩트가 기존 하위 버킷 (Cloud Storage 버킷의 폴더)에 해당하는 경우 덮어쓰기가 실행됩니다. 필요한 경우 스테이징 아티팩트의 하위 버킷을 지정할 수 있습니다. 이 단계는 선택사항이며 기본 하위 버킷의 파일을 덮어쓰는 것이 괜찮다면 None로 설정할 수 있습니다.

gcs_dir_name = None

파일이 덮어쓰지 않도록 하려면(예: 개발, 스테이징, 프로덕션과 같은 여러 환경) 상응하는 하위 버킷을 설정하고 아티팩트를 스테이징할 하위 버킷을 지정하면 됩니다(예:

gcs_dir_name = "dev" # or "staging" or "prod"

충돌을 방지하려는 경우 또는 충돌을 방지해야 하는 경우 임의의 UUID를 생성할 수 있습니다. 예를 들면 다음과 같습니다.

import uuid
gcs_dir_name = str(uuid.uuid4())

4단계: 리소스 메타데이터

Vertex AI에서 생성되는 ReasoningEngine 리소스에 메타데이터를 설정할 수 있습니다. 예를 들면 다음과 같습니다.

display_name = "Currency Exchange Rate Agent (Staging)"

description = """
An agent that has access to tools for looking up the exchange rate.

If you run into any issues, please contact the dev team.
"""

전체 매개변수는 API 참조를 참고하세요.

5단계: AgentEngine 인스턴스 만들기

Vertex AI에 애플리케이션을 배포하려면 agent_engines.create를 사용하고 객체를 매개변수로 전달합니다.

remote_agent = agent_engines.create(
    local_agent,                    # Required.
    requirements=requirements,      # Optional.
    extra_packages=extra_packages,  # Optional.
    gcs_dir_name=gcs_dir_name,      # Optional.
    display_name=display_name,      # Optional.
    description=description,        # Optional.
)

배포를 실행하는 데 몇 분 정도 걸립니다. 에이전트를 배포할 때

  1. 다음으로 구성된 아티팩트 번들이 로컬에서 생성됩니다.
    • *.pkl: local_agent에 해당하는 pickle 파일입니다.
    • requirements.txt 패키지 요구사항이 포함된 텍스트 파일입니다.
    • dependencies.tar.gz 추가 패키지가 포함된 tar 파일입니다.
  2. 아티팩트 스테이징을 위해 번들은 Cloud Storage (해당 하위 버킷 아래)에 업로드됩니다.
  3. 각 아티팩트의 Cloud Storage URI는 PackageSpec에 지정됩니다.
  4. Agent Engine 서비스는 요청을 수신하고 컨테이너를 빌드하고 백엔드에서 HTTP 서버를 사용 설정합니다.

배포 지연 시간은 필요한 패키지를 설치하는 데 걸리는 총 시간에 따라 달라집니다. 배포된 후 remote_agent은 Vertex AI에서 실행되는 local_agent 인스턴스에 해당하며 이를 쿼리 또는 삭제할 수 있습니다. 이는 상담사의 로컬 인스턴스와 별개입니다.

배포된 각 상담사에는 고유한 식별자가 있습니다. 다음 명령어를 실행하여 배포된 에이전트의 resource_name 식별자를 가져올 수 있습니다.

remote_agent.resource_name

권장사항

  1. 패키지 버전 고정(재현 가능한 빌드의 경우) 추적해야 하는 일반적인 패키지는 google-cloud-aiplatform, cloudpickle, langchain, langchain-core, langchain-google-vertexai, pydantic입니다.
  2. 애플리케이션의 종속 항목 수를 최소화합니다. 이렇게 하면 종속 항목을 업데이트할 때 브레이킹 체인지 수가 줄어들고 시간이 지남에 따라 최신 기능 적용을 위해 애플리케이션을 더 쉽게 업데이트할 수 있습니다.

상담사 시작 패키지로 프로덕션에 배포

에이전트 시작 패키지Vertex AI Agent Engine용으로 빌드된 프로덕션 준비 생성형 AI 에이전트 템플릿 모음입니다. 다음을 제공하여 배포 속도를 높입니다.

  • 사전 빌드된 상담사 템플릿: ReAct, RAG, 멀티 에이전트 등
  • 대화형 플레이그라운드: 에이전트를 테스트하고 상호작용합니다.
  • 자동화된 인프라: Terraform을 사용하여 리소스 관리를 간소화합니다.
  • CI/CD 파이프라인: Cloud Build를 활용하는 자동 배포 워크플로입니다.
  • 관측 가능성: Cloud Trace 및 Cloud Logging에 대한 기본 지원이 포함되어 있습니다.

시작하기: 빠른 시작

다음 단계