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

Open Beginner friendly
#7,097 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
api

Research direction

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.

Written by the indexing model from the issue text.

Description

api: vertex-ai

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:

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

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

Steps to reproduce

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.

Dominant language
Python
Stars
907
Forks
467
Avg merge
1d 13h
Merged PRs (30d)
44

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/python-aiplatform

All issues in googleapis/python-aiplatform

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.