googleapis / googleapis/python-aiplatform

Bug: `AdkApp` Deployment via `vertexai.Client` Fails to Inherit Location

Đang mở
#5,768 2 bình luận 0 reaction 1 người được giao Được @maxgasztych nhận Xem trên GitHub
api: vertex-ai
Ngôn ngữ chính
Python
Star
905
Fork
465
Merge trung bình
1 ngày 13 giờ
Pull request đã merge (30 ngày)
44

Mô tả

`client.agent_engines.create` does not pass the client's `location` to the `AdkApp` instance, causing deployment to use an incorrect or default region.

**Problem:**

The provided code demonstrates a conflict between the new client-based and the older global initialization methods in the Vertex AI SDK. While `vertexai.Client` is correctly instantiated with `location="us-central1"`, the `AdkApp` object is created in a way that it remains unaware of this client-scoped configuration.

When `client.agent_engines.create(agent=app, ...)` is called, the `app` object does not carry the `us-central1` location. Consequently, the deployment process falls back to a default location (or one set by a global `vertexai.init` call), leading to a regional mismatch and deployment failures. The operation should be self-contained within the client's configuration.

**Code to Reproduce:**
```python
import vertexai
import asyncio
import logging

# Configure logging
logging.basicConfig(level=logging.INFO)

# --- Problem Area ---
# 1. Client is configured for "us-central1"
project_id = "my-project"
client = vertexai.Client(project=project_id, location="us-central1")

# 2. Agent is defined independently
from google.adk.agents import Agent
root_agent = Agent(
name="root_agent",
model="gemini-2.5-flash",
instruction="You are a helpful AI assistant designed to provide accurate and useful information.",
)

# 3. AdkApp is instantiated without knowledge of the client's location.
# The global init() further complicates which configuration is used.
from vertexai.agent_engines import AdkApp
vertexai.init(project=project_id)
app = AdkApp(agent=root_agent)
# At this point, app's internal configuration does not know about "us-central1"

# 4. Deployment is called on the client, but the `app` object lacks the correct location.
# This is where the regional mismatch occurs.
remote_agent = client.agent_engines.create(
agent=app,
config={
"staging_bucket": "gs://",
"requirements": ["google-adk", "google-cloud-aiplatform"]
}
)

print("Remote agent created successfully:")
print(remote_agent)

# --- Remote Query (will fail if deployment used the wrong region) ---
async def run_remote_query():
print("\nStreaming remote query...")
async for event in remote_agent.async_stream_query(message="hi!", user_id="test"):
print(event)

asyncio.run(run_remote_query())
```

**Expected Behavior:**

The `client.agent_engines.create()` method should ensure that the `AdkApp` instance (`app`) it is deploying inherits the configuration of the `client` object, specifically the `location`. The deployment should seamlessly proceed in `us-central1` as defined in the client.

**Actual Behavior:**

The `AdkApp` object is unaware of the `client`'s location. The deployment process initiated by `client.agent_engines.create()` uses a default or globally configured location, which conflicts with the client's explicit `us-central1` setting, causing the deployment to fail.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.