Skip to content

Conversation

notgitika
Copy link
Contributor

@notgitika notgitika commented Aug 22, 2025

Description

This PR adds the Gemini model provider support to Strands

Related Issues

Documentation PR

TBD -- will edit description once its out

Type of Change

New feature

Testing

How have you tested the change? Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli

  • pre-commit run --all-files
  • I ran hatch run prepare
  • hatch test -- Wrote new unit tests covering 100% of the gemini src.
  • hatch run test-integ -- did not get a lot of useful information out of this (most tests skipped because of missing auth keys of those providers) but I did run my own integ test file for gemini that I added hatch test tests_integ/models/test_model_gemini.py. They all pass

Note to reviewer: re: integ tests -- a couple of the integ tests I added for Gemini can get flaky because of the nature of the tests, so I set the temperature to 0.15. They can still fail intermittently. If we do not feel the need to include a bunch of these tests and only include a few to be consistent with the other model provider integ tests, please let me know

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly -- adding Gemini in the user guide in the docs repository is TBD and a fast follow
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Follow up

To simplify this PR, we left out a few additional features that Gemini supports. We can handle these in a follow up though.

  • Incorporate use of Gemini's built in tools (e.g., google search) (docs).
  • Handle citations and guardrails.
  • See if prompt caching is available.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@mehtarac
Copy link
Member

mehtarac commented Aug 25, 2025

Would you be able to share a sample test script to test the model provider? :)

@notgitika
Copy link
Contributor Author

Changes made:

  • Updated google-genai dependency**: Bumped from >=0.5.0 to `>=1.32.0,<2.0.0 -- adding an upper bound

  • Code refactoring based on some comments and looking at the API closer.
    -- Made the documentation better; added links to the API ref
    -- Replaced string-based error detection with proper Gemini API enum matching for safety and quota messages
    -- Made all internal helper methods private
    -- Stream() method redesign
    -- Simplified direct argument handling
    -- Improved tests

@pgrayy pgrayy marked this pull request as draft September 12, 2025 14:30
@pgrayy pgrayy marked this pull request as ready for review September 12, 2025 16:59
pgrayy
pgrayy previously approved these changes Sep 12, 2025
pgrayy
pgrayy previously approved these changes Sep 12, 2025
JackYPCOnline
JackYPCOnline previously approved these changes Sep 12, 2025
@pgrayy pgrayy dismissed stale reviews from JackYPCOnline and themself via 7ec8800 September 12, 2025 19:34
@pgrayy pgrayy merged commit 54bc162 into strands-agents:main Sep 20, 2025
11 of 12 checks passed
@github-project-automation github-project-automation bot moved this from Coming Soon to Just Shipped in Strands Agents Roadmap Sep 20, 2025
@notgitika notgitika deleted the gitikavj/add-gemini-model-provider branch September 24, 2025 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Just Shipped

Development

Successfully merging this pull request may close these issues.

5 participants