File size: 1,073 Bytes
c2df2b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""This module provides example tools for web scraping and search functionality.



It includes a basic Tavily search function (as an example)



These tools are intended as free examples to get started. For production use,

consider implementing more robust and specialized tools tailored to your needs.

"""

from typing import Any, Callable, List, Optional, cast

from langchain_tavily import TavilySearch
from langgraph.runtime import get_runtime

from react_agent.context import Context


async def search(query: str) -> Optional[dict[str, Any]]:
    """Search for general web results.



    This function performs a search using the Tavily search engine, which is designed

    to provide comprehensive, accurate, and trusted results. It's particularly useful

    for answering questions about current events.

    """
    runtime = get_runtime(Context)
    wrapped = TavilySearch(max_results=runtime.context.max_search_results)
    return cast(dict[str, Any], await wrapped.ainvoke({"query": query}))


TOOLS: List[Callable[..., Any]] = [search]