# LangChain Custom Tools

[LangChain Custom tools](https://python.langchain.com/v0.1/docs/modules/tools/) are classes
that can be used to interact with the world.

````{only} internal
Coming soon, Imagine SDK will incorporate tools to interact with Qualcomm systems.
````

Imagine SDK can leverage
the [tools available on LangChain Community](https://api.python.langchain.com/en/stable/community_api_reference.html#module-langchain_community.tools)
which already contains many third-party integrations.

## Perform an Internet search and summarize the results

The following example performs an internet search with the [DuckDuckGo search engine](https://duckduckgo.com/)
and then summarizes the results:


```{literalinclude} ../../examples/langchain/tools/ddg.py
```

## Count the rows of a CSV file with a custom tool

The following example implements a custom tool to count the number of rows in a CSV file:

```{literalinclude} ../../examples/langchain/tools/count_csv_rows.py
```

## Using GitHub with a custom tool

The following example implements a custom tool to interact with [GitHub](https://github.com/).
The tools used are defined [here](../../examples/langchain/tools/git/github_api_request.py)

```{literalinclude} ../../examples/langchain/tools/git/example_git.py
```

## Using Jira with a custom tool

The following example implements a custom tool to interact with [JIRA](https://www.atlassian.com/software/jira#:~:text=Make%20the%20impossible,%20possible%20in%20Jira.) using this [Jira lib](https://pypi.org/project/jira/#:~:text=This%20library%20eases%20the%20use%20of%20the%20Jira)

```{literalinclude} ../../examples/langchain/tools/jira/example_jira.py
```

## Using tools with Agents

Check out how to use [tools with crewAI agents](crewai).
