Skip to content

feat(reviewer): run reviewer on Vertex AI Agent Engine (hybrid runtime)#356

Open
kaveone wants to merge 3 commits into
mainfrom
feat/reviewer-agent-engine
Open

feat(reviewer): run reviewer on Vertex AI Agent Engine (hybrid runtime)#356
kaveone wants to merge 3 commits into
mainfrom
feat/reviewer-agent-engine

Conversation

@kaveone

@kaveone kaveone commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Addresses the Track 3 "deploy on Agent Engine" key consideration.

What

The reviewer agent — pure reasoning + grounding — now runs on Vertex AI Agent Engine. The coder stays on Cloud Run (it needs a real git/shell sandbox). Right runtime per agent.

  • cloud-agents/reviewer/deploy_agent_engine.py — deploys the reviewer root_agent via reasoning_engines.AdkApp; idempotent create/update; bundles the CONVENTIONS.md grounding corpus. Public demo repo ⇒ reviewer reads PRs unauthenticated (no GitHub token / SecretRef).
  • github-issue-resolver.yamlreview_pr is now a python step that mints an aiplatform.user access token from the orchestrator metadata server and calls the engine :streamQuery endpoint, parsing the JSON verdict from the streamed events. New reviewer_agent_engine input holds the resource name; legacy reviewer_agent_url kept as fallback.

Verified

Direct query to engine 3625053003137941504 returns a grounded verdict:

"violates Rule 1: Money is integer cents, never floats"standards_checked: [Rule 1, Rule 9, Rule 10]

Pending (tracked separately)

  • Live E2E through the deployed orchestrator (re-register updated workflow + run).
  • (optional) Grant roles/discoveryengine.viewer to the default Reasoning Engine Service Agent for live Vertex AI Search grounding on Agent Engine (currently grounds via the bundled corpus fallback).

🤖 Generated with Claude Code

…ntime)

Track 3 'deploy on Agent Engine' consideration. The reviewer is pure
reasoning + grounding, so it moves to Vertex AI Agent Engine; the coder
stays on Cloud Run where it needs a git/shell sandbox.

- deploy_agent_engine.py: deploys the reviewer root_agent to Agent Engine
  (reasoning_engines.AdkApp), idempotent create/update, bundles the
  CONVENTIONS.md grounding corpus. Runs as the project's default Reasoning
  Engine Service Agent (needs discoveryengine.viewer for live Vertex AI
  Search; bundled corpus is the graceful fallback). Public repo => the
  reviewer reads PRs unauthenticated, so no GitHub token / SecretRef.
- github-issue-resolver.yaml: review_pr step is now a python step that mints
  an aiplatform.user access token from the orchestrator metadata server and
  calls the engine ':streamQuery' endpoint, parsing the JSON verdict from the
  streamed events. New 'reviewer_agent_engine' input holds the resource name;
  legacy reviewer_agent_url kept for fallback.

Verified: querying engine 3625053003137941504 returns a grounded verdict
citing 'Rule 1: Money is integer cents, never floats'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@netlify

netlify Bot commented Jun 11, 2026

Copy link
Copy Markdown

Deploy Preview for lustrous-pasca-e9664a ready!

Name Link
🔨 Latest commit dd9c0ea
🔍 Latest deploy log https://app.netlify.com/projects/lustrous-pasca-e9664a/deploys/6a2a714bea66d00009d3b577
😎 Deploy Preview https://deploy-preview-356--lustrous-pasca-e9664a.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Neo and others added 2 commits June 11, 2026 16:47
…failure

A single ADK/Gemini hiccup (empty stream) was dropping the verdict to
'no parseable verdict'. Retry the :streamQuery call 3x with backoff inside
the step budget; only fall back to a needs_changes summary if all attempts
fail. Mirrors the live registered workflow.

Verified live E2E: issue #12 -> PR #13 (MERGED) -> issue CLOSED, with the
Agent Engine reviewer citing Rules 1/5/6/7/9/10.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… AI Search

Set spec.service_account=reviewer-agent (which holds discoveryengine.viewer +
aiplatform.user) via the SDK's service_account arg — honored on create and
update, so it applies in place without a new resource ID. The Agent Engine
service agent needs serviceAccountTokenCreator on reviewer-agent (granted).

Verified: the reviewer's Discovery Engine :search call now returns HTTP 200
(was 403 as the default service agent) — grounding is live Vertex AI Search,
not the bundled-corpus fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant