Skip to content

Conversation

@gaivrt
Copy link
Contributor

@gaivrt gaivrt commented Dec 7, 2025

Description

This PR adds support for Serper.dev as a search engine option within the SearchToolkit.

Key changes include:

  • Feature: Implemented search_serper method in camel/toolkits/search_toolkit.py following strict naming conventions (<toolkit_prefix>_<action>_<resource>).
  • Documentation: Updated docs/reference/camel.toolkits.search_toolkit.md and docs/mintlify/reference/camel.toolkits.search_toolkit.mdx with detailed API documentation, strictly following docstring guidelines (using :obj: for defaults).
  • Testing: Added comprehensive unit tests in test/toolkits/test_search_functions.py covering success and error scenarios.
  • Examples: Updated examples/toolkits/search_toolkit.py to include a working example of search_serper with real output demonstration.
  • Compliance: Ensured no sensitive keys are leaked, used logger instead of print (where applicable in library code), and avoided abbreviations in variable names.

Checklist

Go over all the following points, and put an x in all the boxes that apply.

  • I have read the CONTRIBUTION guide (required)
  • I have linked this PR to an issue using the Development section on the right sidebar or by adding Fixes #issue-number in the PR description (required)
  • I have checked if any dependencies need to be added or updated in pyproject.toml and uv lock (No new dependencies, uses requests)
  • I have updated the tests accordingly (required for a bug fix or a new feature)
  • I have updated the documentation if needed
  • I have added examples if this is a new feature

Copilot AI review requested due to automatic review settings December 7, 2025 17:49
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 7, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Wendong-Fan Wendong-Fan linked an issue Dec 7, 2025 that may be closed by this pull request
2 tasks
@fengju0213 fengju0213 modified the milestone: Sprint 44 Dec 8, 2025
Copy link
Collaborator

@fengju0213 fengju0213 left a comment

Choose a reason for hiding this comment

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

LGTM thanks @gaivrt !

@fengju0213 fengju0213 added this to the Sprint 44 milestone Dec 9, 2025
Copy link
Collaborator

@waleedalzarooni waleedalzarooni left a comment

Choose a reason for hiding this comment

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

LGTM

@waleedalzarooni waleedalzarooni merged commit fb8d51e into camel-ai:master Dec 22, 2025
7 of 13 checks passed
Copy link
Member

@Wendong-Fan Wendong-Fan left a comment

Choose a reason for hiding this comment

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

thanks @gaivrt 's contribution and @waleedalzarooni @fengju0213 @LIHUA919 's review, left some comments below and one enhance PR: #3617

def search_serper(
self,
query: str,
page: int = 1,
Copy link
Member

Choose a reason for hiding this comment

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

better align with other search engine's default value into 10

Comment on lines +104 to +105
except requests.exceptions.RequestException as e:
raise RuntimeError(f"Error making request to Serper: {e}")
Copy link
Member

Choose a reason for hiding this comment

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

instead of raise error msg, return error information would be more agent-friendly

}

try:
response = requests.post(url, headers=headers, data=payload)
Copy link
Member

Choose a reason for hiding this comment

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

timeout setting was not used in request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants