Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: #2839 argument reference error #2877

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

@Lin-Nikaido
Copy link
Contributor

@Lin-Nikaido Lin-Nikaido commented Sep 8, 2025

target issue
closes: #2839

LiteLLM has a bug cannot perse None arguments.

Testing plan

added test code into tests/unittests/models/test_litellm.py and it was passed

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.

Summary of Changes

Hello @Lin-Nikaido, 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 resolves a critical bug in the LiteLLM integration where None arguments in function declarations could lead to an error. The change enhances the robustness of argument parsing by adding a null check, ensuring that the system can gracefully handle function declarations that may not have parameters defined. A new test case has been added to confirm the fix.

Highlights

  • Bug Fix: Addresses an AttributeError in LiteLLM's _function_declaration_to_tool_param function by correctly handling cases where function_declaration.parameters might be None.
  • Test Coverage: Introduces a new unit test case in test_litellm.py to specifically validate the fix for function declarations without arguments, ensuring robustness.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 models [Component] Issues related to model support labels Sep 8, 2025
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 addresses a bug in LiteLLM where it couldn't parse None arguments. The fix involves adding a check for function_declaration.parameters before accessing its required attribute in src/google/adk/models/lite_llm.py. Additionally, a test case for a function with no arguments is added in tests/unittests/models/test_litellm.py to ensure the fix works as expected.


if function_declaration.parameters.required:
if function_declaration.parametersandfunction_declaration.parameters.required:
Copy link

@gemini-code-assist gemini-code-assist bot Sep 8, 2025

Choose a reason for hiding this comment

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

high

high: This change adds a check for function_declaration.parameters before accessing the required attribute. This prevents an AttributeError when function_declaration.parameters is None. This is good defensive programming, as it prevents the code from crashing when encountering unexpected input. However, it would be better to add a comment explaining why this check is necessary, and what kind of input would cause function_declaration.parameters to be None.

Comment on lines +734 to +750
(
"no_arguments_function",
types.FunctionDeclaration(
name="function_no_args"
),
{
"type": "function",
"function": {
"name": "function_no_args",
"description": "",
"parameters": {
"type": "object",
"properties": {},
},
},
},
)
Copy link

@gemini-code-assist gemini-code-assist bot Sep 8, 2025

Choose a reason for hiding this comment

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

high

high: Adding a test case for a function with no arguments is a good way to ensure that the fix works as expected. This test case covers the scenario where function_declaration.parameters is None, which is the root cause of the bug. It would be better to add a comment explaining what this test case is testing, and why it is important.


if function_declaration.parameters.required:
if function_declaration.parametersandfunction_declaration.parameters.required:
Copy link

@gemini-code-assist gemini-code-assist bot Sep 8, 2025

Choose a reason for hiding this comment

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

medium

medium: Consider simplifying this condition by using the walrus operator to reduce redundancy.

if params := function_declaration.parameters and params.required:
Suggested change
if function_declaration.parameters and function_declaration.parameters.required:
ifparams:= function_declaration.parameters and params.required:

Copy link
Contributor Author

Oops...
This fix already fixed in this

@Lin-Nikaido Lin-Nikaido deleted the fix/#2839-function-attributes-reference-error branch September 11, 2025 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

1 more reviewer

@gemini-code-assist gemini-code-assist[bot] gemini-code-assist[bot] left review comments

Reviewers whose approvals may not affect merge requirements

Assignees

No one assigned

Labels

models [Component] Issues related to model support

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AttributeError: 'NoneType' object has no attribute 'required' when using LoopAgent as sub-agent with LiteLLM

AltStyle によって変換されたページ (->オリジナル) /