Skip to content

Conversation

ejfn
Copy link

@ejfn ejfn commented Oct 1, 2025

Description

Fixes #3059

This PR fixes two endpoints in adk web that fail when using App objects instead of bare agents.

Changes

  • Eval execution endpoint (line ~969): Extract root_agent from App objects before passing to LocalEvalService
  • Graph visualization endpoint (line ~1308): Extract root_agent from App objects before graph operations

Both endpoints now properly handle both BaseAgent and App objects by checking the type and extracting .root_agent when needed.

Testing Plan

Manual E2E Testing with ADK Web

Tested with an App object that includes context caching:

from google.adk.apps import App
from google.adk.agents import LlmAgent

root_agent = LlmAgent(name="MyAgent", model="gemini-1.5-pro-002")
app = App(
    name="my_agent",
    root_agent=root_agent,
    context_cache_config=ContextCacheConfig(...)
)

Before fix:

  • Graph visualization failed (tried to call agent methods on App object)
  • Eval execution failed (LocalEvalService received App instead of agent)

After fix:

  • Graph visualization works correctly
  • Eval execution works correctly
  • Both endpoints properly extract root_agent from App objects

Checklist

Fixes google#3059

- Extract root_agent from App objects in eval execution endpoint
- Extract root_agent from App objects in graph visualization endpoint
- Both endpoints now handle BaseAgent and App objects correctly
Copy link

google-cla bot commented Oct 1, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Copy link

Summary of Changes

Hello @ejfn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical compatibility issue within the adk web tool, specifically concerning its eval and graph endpoints. Previously, these functionalities would fail when interacting with App objects, expecting BaseAgent instances instead. The changes introduce robust type checking and extraction logic, ensuring that the underlying root_agent is correctly identified and utilized, thereby enabling seamless operation with both BaseAgent and App objects across the affected endpoints.

Highlights

  • App Object Compatibility: The pull request resolves an issue where adk web endpoints failed when App objects were used instead of bare agents, ensuring proper handling for both.
  • Eval Execution Endpoint Fix: The run_eval endpoint now correctly extracts the root_agent from App objects before passing them to the LocalEvalService.
  • Graph Visualization Endpoint Fix: The get_event_graph endpoint has been updated to extract the root_agent from App objects, allowing graph operations to proceed without errors.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@adk-bot adk-bot added bot triaged [Bot] This issue is triaged by ADK bot web [Component] This issue will be transferred to adk-web labels Oct 1, 2025
@adk-bot adk-bot requested a review from wyf7107 October 1, 2025 10:29
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly addresses an issue where App objects were not handled correctly in the run_eval and get_event_graph endpoints. The fix involves checking if the loaded object is an App and extracting its root_agent property. While the logic is correct, it introduces code duplication. My feedback suggests refactoring this repeated logic into a private helper method to improve maintainability.

ejfn added 2 commits October 1, 2025 20:05
Address code review feedback by refactoring duplicated App object
handling logic into a reusable private helper method.

- Added _get_root_agent() helper method
- Refactored 3 occurrences to use the helper
- Improves maintainability and reduces duplication
@ryanaiagent ryanaiagent requested review from ryanaiagent and removed request for ryanaiagent October 2, 2025 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot triaged [Bot] This issue is triaged by ADK bot web [Component] This issue will be transferred to adk-web
Projects
None yet
Development

Successfully merging this pull request may close these issues.

adk web: Multiple endpoints fail with App objects
2 participants