Back to skills
extension
Category: Data & AnalyticsAPI key required

Exa Research

Use the local `exa` CLI to search the live web, ask grounded questions with citations, fetch page contents, find similar links, retrieve Exa code context, or...

personAuthor: wkenyahubclawhub

Exa Research

Use the bundled wrapper to run Exa reliably:

{baseDir}/scripts/exa-with-key.sh --help

Credentials

Preferred OpenClaw-native setup:

  • skills.entries.exa-research.apiKey
  • or skills.entries.exa-research.env.EXA_API_KEY

Other supported auth sources:

  • ambient EXA_API_KEY
  • EXA_API_KEY_FILE
  • default file fallback at ~/.openclaw/credentials/exa/api-key.txt

The wrapper prefers credentials in this order:

  1. existing EXA_API_KEY
  2. EXA_API_KEY_FILE
  3. the default file path above

Route to the smallest command that fits

  • Use search for live web discovery and filtered result lists.
  • Use answer for one grounded answer with citations.
  • Use contents when URLs or result IDs are already known and text/highlights/summary are needed.
  • Use similar when one seed URL is known and related pages are needed.
  • Use context for coding patterns, library usage, and implementation examples.
  • Use research for asynchronous or longer-running research workflows.
  • Use raw only when a higher-level command cannot express the request.

Keep context lean

  • Start narrow; broaden only if recall is poor.
  • Prefer answer over manual search-plus-synthesis when the user wants a concise cited answer.
  • Prefer highlights before full text when excerpts are enough.
  • Cap payload size with --text-max, --highlights-max, and context --tokens.
  • Add domains, categories, and date filters early instead of retrieving broad result sets.
  • Do not dump large raw payloads into chat when a short synthesis will do.

Command patterns

Search

{baseDir}/scripts/exa-with-key.sh "latest developments in llms"
{baseDir}/scripts/exa-with-key.sh search --category news --include-domain reuters.com --highlights "AI regulation"
{baseDir}/scripts/exa-with-key.sh search --type deep --additional-query "llm releases" "latest frontier models"

Answer

{baseDir}/scripts/exa-with-key.sh answer "What is the latest valuation of SpaceX?"
{baseDir}/scripts/exa-with-key.sh answer --text "What changed in the latest OpenAI release?"

Contents

{baseDir}/scripts/exa-with-key.sh contents --text https://exa.ai
{baseDir}/scripts/exa-with-key.sh contents --id doc-1 --id doc-2 --highlights
{baseDir}/scripts/exa-with-key.sh contents --highlights --summary https://exa.ai https://example.com

Similar

{baseDir}/scripts/exa-with-key.sh similar --highlights https://arxiv.org/abs/2307.06435
{baseDir}/scripts/exa-with-key.sh similar --text --text-max 3000 https://exa.ai/blog

Context

{baseDir}/scripts/exa-with-key.sh context "React hooks for state management"
{baseDir}/scripts/exa-with-key.sh context --tokens 5000 "pandas dataframe filtering and groupby operations"

Research

{baseDir}/scripts/exa-with-key.sh research create "Summarize the latest developments in AI safety research"
{baseDir}/scripts/exa-with-key.sh research list --limit 10
{baseDir}/scripts/exa-with-key.sh research get 01jszdfs0052sg4jc552sg4jc5

Raw

{baseDir}/scripts/exa-with-key.sh raw /search @payload.json
{baseDir}/scripts/exa-with-key.sh raw -X GET '/research/v1?limit=10'
printf '{"query":"latest llm news"}' | {baseDir}/scripts/exa-with-key.sh raw /search -

Practical guidance

  • Run {baseDir}/scripts/exa-with-key.sh <subcommand> --help before guessing flags.
  • If the task is exploratory, start with search, then escalate to contents only for selected URLs.
  • If the task is code-oriented, prefer context over broad search.
  • If the task needs longer-running synthesis, prefer research over ad hoc polling with raw.
  • If the user asks for the upstream generated skill text, run exa skill.