AlejandroMorgante opened a new pull request, #68479:
URL: https://github.com/apache/airflow/pull/68479

   Add a hook, operators, deferrable trigger, unit tests, and a system test for 
the Vertex AI Agent Engine (Reasoning Engine) API.
   
   ## Operators
   
   - `CreateAgentEngineOperator` — creates a new Agent Engine resource
   - `GetAgentEngineOperator` — retrieves an existing Agent Engine
   - `QueryAgentEngineOperator` — synchronously queries an Agent Engine (REST 
endpoint)
   - `UpdateAgentEngineOperator` — updates an Agent Engine
   - `DeleteAgentEngineOperator` — deletes an Agent Engine, with optional async 
wait / deferrable mode
   
   ## Why the Query operator uses a direct REST call
   
   The public SDK only exposes `run_query_job` for Agent Engine queries, which 
is async and backed by Cloud Storage — unsuitable for synchronous operator 
execution. The private `_query` helper makes the synchronous `POST 
{name}:query` call, but triggers a Pydantic response-parsing bug in 
google-genai==2.8.0 (`AttributeError: type object 'Any' has no attribute 
'model_fields'`) whenever the response output type is `Any`. To work around 
both constraints, `QueryAgentEngineOperator` calls the REST endpoint directly 
via `google.auth.transport.requests.AuthorizedSession`, which is the standard 
Airflow pattern for Google APIs without a stable gRPC client.
   
   ## Changes
   
   - `providers/google/cloud/hooks/vertex_ai/agent_engine.py` — new hook
   - `providers/google/cloud/operators/vertex_ai/agent_engine.py` — new 
operators
   - `providers/google/cloud/triggers/vertex_ai.py` — `AgentEngineDeleteTrigger`
   - `providers/google/provider.yaml` — register hook, operators, system test
   - `providers/google/get_provider_info.py` — matching registration
   - `providers/google/docs/operators/cloud/vertex_ai.rst` — docs section
   - Unit tests for hook, operators, and trigger
   - System test: `example_vertex_ai_agent_engine.py`
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Sonnet 4.6)
   
   Generated-by: Claude Code (Sonnet 4.6) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to