googleapis / googleapis/python-aiplatform

AgentEngineConfig.agent_framework Literal rejects "a2a" — out of sync with _SUPPORTED_AGENT_FRAMEWORKS and the GA A2A template

Đang mở Phù hợp với người mới
#7,097 1 bình luận 0 reaction 0 người được giao 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ả

## Environment

- `google-cloud-aiplatform` 1.159.0 → 1.165.1 (still present on `main`)
- GenAI client path: `vertexai.Client().agent_engines`

## Bug

A2A on Agent Engine is a supported framework: `_SUPPORTED_AGENT_FRAMEWORKS` includes `"a2a"`, the `A2aAgent` template sets `agent_framework = "a2a"` (since 1.147.0), the A2A framework template is GA (CHANGELOG 1.150.0), and the backend API accepts `spec.agent_framework = "a2a"`.

But the config type was never updated to match:

```python
# vertexai/_genai/types/common.py
agent_framework: Optional[
Literal["google-adk", "langchain", "langgraph", "ag2", "llama-index", "custom"]
]
```

`"a2a"` is missing from the `Literal` (in `AgentEngineConfig`, its Dict twin, and the update-config variants), so passing it raises a Pydantic validation error, while the same package accepts it internally:

```python
# vertexai/_genai/_agent_engines_utils.py (~line 167)
_SUPPORTED_AGENT_FRAMEWORKS = frozenset(
["google-adk", "langchain", "langgraph", "ag2", "llama-index", "custom", "a2a"]
)
```

## Steps to reproduce

```python
import vertexai
client = vertexai.Client(project="...", location="us-central1")
client.agent_engines.create(
agent=my_agent,
config={"staging_bucket": "gs://...", "agent_framework": "a2a"},
)
# pydantic ValidationError: Input should be 'google-adk', 'langchain',
# 'langgraph', 'ag2', 'llama-index' or 'custom'
```

## Expected behavior

`agent_framework="a2a"` accepted in the config, consistent with `_SUPPORTED_AGENT_FRAMEWORKS`, the `A2aAgent` template, and the backend API.

## Workaround

Set the fields on the agent object instead of the config: use the `A2aAgent` template, or set `my_agent.agent_framework = "a2a"` before `create()` — `_get_agent_framework(agent)` reads the attribute and bypasses the config `Literal`.

## Related

#6267 (classic `ReasoningEngine.create` path missing `agent_framework` support) — this issue is about the GenAI client config type being out of sync.

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

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

Hướng nghiên cứu

Start with vertexai/_genai/types/common.py and inspect the AgentEngineConfig, Dict twin, and update-config variants named in the report, comparing them with _SUPPORTED_AGENT_FRAMEWORKS in vertexai/_genai/_agent_engines_utils.py. Reproduce the shown agent_engines.create configuration, then run the relevant existing validation tests; done means agent_framework="a2a" is accepted consistently without weakening validation.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
78/100

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.