Griptape WebSearch Driver: Exa
Exa, explained
- DRIVER
Exa is a search engine built specifically for AI agents - instead of just returning links like Google, it returns content, and it searches by meaning rather than keywords. For a Griptape agent in ComfyUI, that's the difference between "here are some URLs" and "here's the actual paragraph you needed." If you've been feeding your agent web content and getting frustrated with keyword search misses, this driver is worth the API key. It's the most configurable of the three web-search drivers in this pack, and the one that makes the most sense when you want your agent grounded in current, real-world info.
How it works
The node builds an ExaWebSearchDriver, and the inputs read like a power user's wishlist:
type(defaultneural) -keyword,neural, orauto. Neural is Exa's embedding-based semantic search, the whole point of the service;autolets Exa decide; keyword is the literal fallback.num_results(default10) - how many results come back. This one you'll actually tune.category- a beta filter for the kind of content: company, research paper, news, github, tweet, movie, song, personal site, pdf. Search GitHub issues vs. papers without a million irrelevant hits.highlights(defaultfalse) - asks Exa to extract relevant excerpts from each result. Cheap, and exactly what an agent wants when you're about to stuff this into a prompt.use_autoprompt(defaultfalse) - lets Exa rewrite your query into a better one (neural/auto only). Worth enabling once you trust it.include_domains/exclude_domains/include_text/exclude_text- multiline lists to narrow the search.api_key_env_var(defaultEXA_API_KEY) - the env var name holding your key.
Output is DRIVER (WEB_SEARCH_DRIVER). It doesn't search on its own - it plugs into the Griptape Web Search tool node, which is what actually runs the search and hands results to an agent.
The one trap
EXA_API_KEY is mandatory, and the node will raise an exception if it's missing rather than failing softly - set it in ComfyUI's Settings → Griptape section (or your environment) before wiring anything. The good news: the settings screen auto-detects keys already in your environment. If you search and get nothing, check the category filter - a github category will happily return zero results for a query that isn't code.
Install
Pack install as usual: ComfyUI Manager → search "Griptape" → INSTALL, or git clone https://github.com/griptape-ai/ComfyUI-Griptape into custom_nodes, then restart. Dependencies (griptape[all], python-dotenv) install alongside, and the README's torch fix is the go-to if ComfyUI errors after install. Grab your Exa key from exa.ai - there's a free tier - and you're searching semantically instead of just googling.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| type | COMBO | neural | The type of search |
| highlights | BOOLEAN | false | Extracts relevant excerpts or highlights from retrieved content. |
| use_autoprompt | BOOLEAN | false | If true, your query will be converted to a Exa query. Default false. Neural or Auto search only. |
| category | COMBO | none | 10 options: none, company, research paper, news, github, tweet, +4 |
| num_results | INT | 10 | The maximum number of search results to return. |
| include_domains | STRING | A list of domains to include in the search results | |
| exclude_domains | STRING | A list of domains to exclude from the search results | |
| include_text | STRING | A list of words to include in the search results | |
| exclude_text | STRING | A list of words to exclude from the search results | |
| api_key_env_varopt | STRING | EXA_API_KEY | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DRIVER | WEB_SEARCH_DRIVER | — |