googleapis / googleapis/python-aiplatform

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

未关闭 适合新手
#7,097 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
api: vertex-ai
主要语言
Python
星标
905
派生
465
平均合并
1 天 13 小时
30 天内合并 PR
44

描述

## 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.

贡献指南

打开贡献指南

调研方向

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.

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
api
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
活跃
描述清晰度
描述清楚
新手友好度
78/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。