에이전트 배포
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Agent Runtime에 에이전트를 배포하면 요청을 처리하기 위해 원격으로 사용할 수 있습니다. 이 문서에서는 실행 객체, 로컬 소스 파일, Dockerfile, Artifact Registry에 호스팅된 컨테이너 이미지 또는 연결된 Git 저장소를 통해 직접 개발 워크플로에 따라 에이전트를 배포하는 방법을 설명합니다.
에이전트에 대한 선택적 구성을 만들 수 있습니다. 이 섹션의 예에서는 Python을 사용합니다.
패키지 요구사항 정의
에이전트를 배포하는 데 필요한 패키지 집합을 제공합니다. 패키지 집합은 pip로 설치할 항목 목록이거나 요구사항 파일 형식을 따르는 파일의 경로일 수 있습니다.
다음 권장사항을 따르세요.
재현 가능한 빌드의 경우 패키지 버전을 고정합니다. 추적해야 하는 일반 패키지에는 google-cloud-aiplatform, cloudpickle, langchain, langchain-core, langchain-google-vertexai, pydantic이 있습니다.
에이전트의 종속 항목 수를 최소화합니다. 이렇게 하면 종속 항목과 에이전트를 업데이트할 때 브레이킹 체인지 수가 줄어듭니다.
에이전트에 종속 항목이 없으면 requirements를 None으로 설정할 수 있습니다.
requirements=None
에이전트에 프레임워크별 템플릿이 사용되는 경우 에이전트를 개발할 때 가져온 SDK 버전 (예: 1.112.0)을 지정해야 합니다.
requirements=["google-cloud-aiplatform[agent_engines,adk]","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
환경 변수 정의
에이전트가 사용하는 환경 변수가 있는 경우 env_vars= 인수에 이를 지정할 수 있습니다. 에이전트가 환경 변수를 사용하지 않는 경우 이를 None으로 설정할 수 있습니다.
env_vars=None
에이전트 ID를 사용하도록 구성된 에이전트와 함께 보안 비밀을 환경 변수로 사용하는 경우 다음 형식의 에이전트 플랫폼 서비스 에이전트에 secretmanager.versions.access 권한 (roles/secretmanager.secretAccessor 역할에 포함됨)을 부여합니다.
에이전트의 ID 및 권한 설정의 안내에 따라 에이전트에게 Secret Manager 보안 비밀 접근자(roles/secretmanager.secretAccessor) 권한을 부여해야 합니다.
맞춤설정된 리소스 제어 정의
최소 및 최대 애플리케이션 인스턴스 수, 각 컨테이너의 리소스 한도, 각 컨테이너의 동시 실행과 같은 에이전트의 런타임 리소스 제어를 지정할 수 있습니다.
min_instances: 항상 실행 상태로 유지할 최소 애플리케이션 인스턴스 수입니다(범위는 [0, 10]). 기본값은 1입니다.
max_instances: 트래픽 증가를 처리하기 위해 실행할 수 있는 최대 애플리케이션 인스턴스 수입니다(범위는 [1, 1000]).
기본값은 100입니다. VPC-SC 또는 PSC-I가 사용 설정된 경우 허용되는 범위는 Agent Platform 리소스당 [1, 100]입니다.
resource_limits: 각 컨테이너의 리소스 한도입니다. cpu 및 memory 키만 지원됩니다. 기본값은 {"cpu": "4", "memory": "4Gi"}입니다.
cpu에 지원되는 값은 1, 2, 4, 6, 8뿐입니다. 자세한 내용은 CPU 할당 구성을 참고하세요.
container_concurrency: 각 컨테이너 및 에이전트 서버의 동시 실행입니다. 권장값은 2 * cpu + 1입니다. 기본값은 9입니다.
remote_agent=client.runtimes.create(agent=local_agent,config={"min_instances":1,"max_instances":10,"resource_limits":{"cpu":"4","memory":"8Gi"},"container_concurrency":9,# ... other configs})
agent_framework를 지정하지 않으면 에이전트 객체에서 배포하는 경우 값이 자동 감지됩니다. 소스 파일에서 배포하는 경우 agent_framework의 기본값은 `custom`입니다.
Cloud Storage 폴더 정의
스테이징 아티팩트가 Cloud Storage 버킷의 기존 폴더에 해당하면 이를 덮어씁니다.
필요한 경우 스테이징 아티팩트의 Cloud Storage 폴더를 지정할 수 있습니다. 기본 폴더에서 파일을 덮어써도 괜찮다면 gcs_dir_name을 None으로 설정할 수 있습니다.
gcs_dir_name=None
개발, 스테이징, 프로덕션과 같은 여러 환경에서 파일을 덮어쓰지 않도록 하려면 해당 폴더를 설정하고 다음과 같이 아티팩트를 스테이징할 폴더를 지정하면 됩니다.
이렇게 하려면 Agent Platform 인스턴스를 만들거나 업데이트할 때 커스텀 서비스 계정의 이메일을 service_account로 지정합니다. 예를 들면 다음과 같습니다.
# Create a new instanceclient.runtimes.create(agent=local_agent,config={"service_account":"my-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)# Update an existing instanceresource_name="projects/{project_id}/locations/{location}/reasoningEngines/{reasoning_engine_id}"client.runtimes.update(name=resource_name,agent=local_agent,config={"service_account":"my-new-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)