Skip to content

Conversation

@YatindraRai002
Copy link

@YatindraRai002 YatindraRai002 commented Dec 17, 2025

Please ensure you have read the contribution guide before creating a pull request.

Link to Issue or Description of Change

1. Link to an existing issue (if applicable):

  • Closes: #issue_number
  • Related: #issue_number

2. Or, if no issue exists, describe the change:

If applicable, please follow the issue templates to provide as much detail as
possible.

Problem:
A clear and concise description of what the problem is.

Solution:
A clear and concise description of what you want to happen and why you choose
this solution.

Testing Plan

Please describe the tests that you ran to verify your changes. This is required
for all PRs that are not small documentation or typo fixes.

Unit Tests:

  • I have added or updated unit tests for my change.
  • All unit tests pass locally.

Please include a summary of passed pytest results.

Manual End-to-End (E2E) Tests:

Please provide instructions on how to manually test your changes, including any
necessary setup or configuration. Please provide logs or screenshots to help
reviewers better understand the fix.

Checklist

  • I have read the CONTRIBUTING.md document.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have manually tested my changes end-to-end.
  • Any dependent changes have been merged and published in downstream modules.

Additional context

Add any other context or screenshots about the feature request here.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @YatindraRai002, 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 issue where the code_executor could enter an infinite loop due to events containing executable code or their results being incorrectly identified as empty. The core solution involves refining the _contains_empty_content utility to properly account for these code-related event parts, ensuring they are preserved in the LLM's context. This prevents the model from repeatedly attempting to generate code without acknowledging previous execution steps. Comprehensive unit and integration tests have been added to validate this fix and prevent regressions.

Highlights

  • Infinite Loop Prevention: The primary change prevents an infinite loop in the code_executor by ensuring that events containing executable code or code execution results are not mistakenly filtered out as empty content.
  • Updated Content Filtering Logic: The _contains_empty_content utility function in src/google/adk/flows/llm_flows/contents.py has been updated to correctly identify events with executable_code or code_execution_result as non-empty, preserving them in the LLM's context.
  • New Integration Test for Code Executor: A new integration test (tests/integration/test_code_executor_fix.py) has been added to specifically verify that the code executor does not enter an infinite loop when processing code generation and execution events.
  • New Unit Test for Content Preservation: A new unit test (tests/unittests/flows/llm_flows/test_contents.py) confirms that events containing executable code or code execution results are properly preserved and not skipped during LLM context processing.
  • Sample Agent Configuration Update: The hello_world sample agent has been updated to use the gemini-pro model and includes a max_output_tokens limit in its generation configuration.
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 the core [Component] This issue is related to the core interface and implementation label Dec 17, 2025
@adk-bot
Copy link
Collaborator

adk-bot commented Dec 17, 2025

Response from ADK Triaging Agent

Hello @YatindraRai002, thank you for creating this PR!

This PR is a bug fix, could you please associate the github issue with this PR? If there is no existing issue, could you please describe the bug directly within the PR description?

In addition, could you please include a testing plan section in your PR to talk about how you will test? This will save time for PR review.

This information will help reviewers to review your PR more efficiently. Thanks!

Copy link
Contributor

@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 addresses a potential infinite loop in the code executor by ensuring that events containing executable_code or code_execution_result are not considered empty. The core logic change is in _contains_empty_content in src/google/adk/flows/llm_flows/contents.py, and it is well-supported by a new unit test and a new integration test.

My review includes two main points:

  1. A potential bug in _contains_empty_content where only the first part of an event's content is checked.
  2. A suggestion to refactor the new integration test to use assertions for clearer error handling, which is more idiomatic in Python.

Overall, the changes are good and improve the robustness of the code executor.


root_agent = Agent(
model='gemini-2.0-flash',
model='gemini-pro',
Copy link
Collaborator

Choose a reason for hiding this comment

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

is it a valid model ?

</h3>
</html>


Copy link
Collaborator

Choose a reason for hiding this comment

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

remove empty lines

Copy link
Collaborator

Choose a reason for hiding this comment

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

how is the changes in this file related to the fix ?

@seanzhou1023
Copy link
Collaborator

seanzhou1023 commented Dec 17, 2025

please do provide detailed information in the PR description for the changes of the PR instead of copying empty template.

@seanzhou1023
Copy link
Collaborator

it seems duplicate with #3930

@ryanaiagent ryanaiagent self-assigned this Dec 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core [Component] This issue is related to the core interface and implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants