에이전트를 배포하는 데 필요한 패키지 집합을 제공합니다. 패키지 집합은 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으로 설정할 수 있습니다.
container_concurrency: 각 컨테이너 및 에이전트 서버의 동시 실행입니다. 권장값은 2 * cpu + 1입니다. 기본값은 9입니다.
remote_agent=client.agent_engines.create(agent=local_agent,config={"min_instances":1,"max_instances":10,"resource_limits":{"cpu":"4","memory":"8Gi"},"container_concurrency":9,# ... other configs})
빌드 옵션 정의
에이전트의 컨테이너 이미지를 빌드할 때 실행할 설치 스크립트와 같은 에이전트의 빌드 옵션을 지정할 수 있습니다. 이는 시스템 종속 항목 (예: gcloud cli, npx) 또는 기타 맞춤 설정을 설치하는 데 유용합니다. 스크립트는 루트 권한으로 실행됩니다.
설치 스크립트를 사용하려면 installation_scripts라는 디렉터리를 만들고 디렉터리 내에 셸 스크립트를 배치합니다.
스테이징 아티팩트가 Cloud Storage 버킷의 기존 폴더에 해당하면 이를 덮어씁니다.
필요한 경우 스테이징 아티팩트의 Cloud Storage 폴더를 지정할 수 있습니다. 기본 폴더에서 파일을 덮어써도 괜찮다면 gcs_dir_name을 None로 설정할 수 있습니다.
gcs_dir_name=None
개발, 스테이징, 프로덕션과 같은 여러 환경에서 파일을 덮어쓰지 않도록 하려면 해당 폴더를 설정하고 다음과 같이 아티팩트를 스테이징할 폴더를 지정하면 됩니다.
이렇게 하려면 Agent Engine 인스턴스를 만들거나 업데이트할 때 커스텀 서비스 계정의 이메일을 service_account로 지정합니다. 예를 들면 다음과 같습니다.
# Create a new instanceclient.agent_engines.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.agent_engines.update(name=resource_name,agent=local_agent,config={"service_account":"my-new-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)
NETWORK_ATTACHMENT은 네트워크 연결의 이름 또는 전체 경로입니다. 네트워크 연결이 에이전트 엔진을 사용하는 위치와 다른 프로젝트(예: 공유 VPC 호스트 프로젝트)에 생성된 경우 네트워크 연결의 전체 경로를 전달해야 합니다.
DOMAIN_SUFFIX는 비공개 DNS 피어링을 설정할 때 만든 비공개 Cloud DNS 영역의 DNS 이름입니다.
TARGET_PROJECT는 VPC 네트워크를 호스팅하는 프로젝트입니다. 네트워크 연결 프로젝트와 다를 수 있습니다.
TARGET_NETWORK는 VPC 네트워크 이름입니다.
단일 공유 네트워크 연결 또는 고유한 전용 네트워크 연결을 사용하도록 여러 에이전트를 구성할 수 있습니다. 공유 네트워크 연결을 사용하려면 생성하는 각 에이전트의 psc_interface_config에 동일한 네트워크 연결을 제공하세요.
고객 관리 암호화 키 구성
커스텀 키를 사용하여 에이전트의 저장 데이터를 암호화할 수 있습니다. 자세한 내용은 Agent Engine 고객 관리 암호화 키 (CMEK)를 참고하세요.
에이전트의 커스텀 키 (CMEK)를 구성하려면 Agent Engine 인스턴스를 만들 때 encryption_spec 파라미터에 키 리소스 이름을 제공해야 합니다.
# The fully qualified key namekms_key_name="projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"remote_agent=client.agent_engines.create(agent=local_agent,config={"encryption_spec":{"kms_key_name":kms_key_name},# ... other parameters},)
AgentEngine 인스턴스 만들기
Vertex AI에 에이전트를 배포하려면 client.agent_engines.create를 사용하여 local_agent 객체를 선택적 구성과 함께 전달합니다.
Vertex AI Agent Engine 서비스가 요청을 수신하고 컨테이너를 빌드하며 백엔드에서 HTTP 서버를 시작합니다.
배포 지연 시간은 필요한 패키지를 설치하는 데 걸리는 총 시간에 따라 달라집니다. 배포된 후 remote_agent은 Vertex AI에서 실행되는 local_agent 인스턴스에 해당하며 이를 쿼리 또는 삭제할 수 있습니다. 이는 에이전트의 로컬 인스턴스와 별개입니다.
remote_agent 객체는 다음 속성을 포함하는 AgentEngine 클래스에 해당합니다.
배포된 에이전트에 관한 정보가 포함된 remote_agent.api_resourceagent.operation_schemas()를 호출하여 에이전트가 지원하는 작업 목록을 반환할 수도 있습니다. 자세한 내용은 지원되는 작업 나열을 참고하세요.