-
Notifications
You must be signed in to change notification settings - Fork 2.1k
fix: Handle App objects in eval and graph endpoints #3060
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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. |
Summary of ChangesHello @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 Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this 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.
78b26b9
to
567142f
Compare
It seems most of issues originally fixed by this PR has been already fixed by other contributors, the only thing left is the eval api. I will keep this open until that's fixed. |
601a35e
to
6211a23
Compare
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
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
6211a23
to
9d49872
Compare
Merge #3060 ## 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: ```python 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 - [x] Code follows project style (autoformat.sh passed) - [x] Changes are focused and minimal - [x] Issue #3059 created and referenced - [x] Manual E2E testing completed COPYBARA_INTEGRATE_REVIEW=#3060 from ejfn:ejfn/bugfix-app-object-endpoints 01c3019 PiperOrigin-RevId: 821746910
merged. thanks for your contribution! |
Description
Fixes #3059
This PR fixes two endpoints in
adk web
that fail when using App objects instead of bare agents.Changes
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:
Before fix:
After fix:
Checklist