Documentation Index
Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
Use this file to discover all available pages before exploring further.
Exa is a knowledge API for AI and developers.
Installation and setup
Exa integration exists in its own partner package. You can install it with:
pip install -qU langchain-exa
In order to use the package, you will also need to set the EXA_API_KEY environment variable to your Exa API key.
Retriever
You can use the ExaSearchRetriever in a standard retrieval pipeline. You can import it as follows.
See a usage example.
from langchain_exa import ExaSearchRetriever
You can use Exa as an agent tool as described in the Exa tool calling docs.
See a usage example.
ExaFindSimilarResults
A tool that queries the Metaphor Search API and gets back JSON.
from langchain_exa.tools import ExaFindSimilarResults
ExaSearchResults
Exa Search tool.
from langchain_exa.tools import ExaSearchResults
Exa search retriever
You can retrieve search results as follows
from langchain_exa import ExaSearchRetriever
exa_api_key = "YOUR API KEY"
# Create a new instance of the ExaSearchRetriever
exa = ExaSearchRetriever(exa_api_key=exa_api_key)
# Search for a query and save the results
results = exa.invoke("What is the capital of France?")
# Print the results
print(results)
Advanced features
You can use advanced features like text limits, summaries, and live crawling:
from langchain_exa import ExaSearchRetriever, TextContentsOptions
# Create a new instance with advanced options
exa = ExaSearchRetriever(
exa_api_key="YOUR API KEY",
k=20, # Number of results (1-100)
type="auto", # Can be "neural", "keyword", or "auto"
livecrawl="always", # Can be "always", "fallback", or "never"
summary=True, # Get an AI-generated summary of each result
text_contents_options={"max_characters": 3000} # Limit text length
)
# Search for a query with custom summary prompt
exa_with_custom_summary = ExaSearchRetriever(
exa_api_key="YOUR API KEY",
summary={"query": "generate one line summary in simple words."} # Custom summary prompt
)
Exa search results
You can run the ExaSearchResults module as follows
from langchain_exa import ExaSearchResults
# Initialize the ExaSearchResults tool
search_tool = ExaSearchResults(exa_api_key="YOUR API KEY")
# Perform a search query
search_results = search_tool._run(
query="When was the last time the New York Knicks won the NBA Championship?",
num_results=5,
text_contents_options=True,
highlights=True
)
print("Search Results:", search_results)
Exa find similar results
You can run the ExaFindSimilarResults module as follows
from langchain_exa import ExaFindSimilarResults
# Initialize the ExaFindSimilarResults tool
find_similar_tool = ExaFindSimilarResults(exa_api_key="YOUR API KEY")
# Find similar results based on a URL
similar_results = find_similar_tool._run(
url="http://espn.com",
num_results=5,
text_contents_options=True,
highlights=True
)
print("Similar Results:", similar_results)
Configuration options
All Exa tools support the following common parameters:
num_results (1-100): Number of search results to return
type: Search type - “neural”, “keyword”, or “auto”
livecrawl: Live crawling mode - “always”, “fallback”, or “never”
summary: Get AI-generated summaries (True/False or custom prompt dict)
text_contents_options: Dict to limit text length (e.g. {"max_characters": 2000})
highlights: Include highlighted text snippets (True/False)