agentleFS
superagntsuperagnt/leverage/skills/core/exa-search/SKILL.md

exa-search

Skill6 starsChanged 2 months agoMITView on GitHub

Neural web search, parsed page contents, find-similar, and agentic Q&A over the live web through the superagnt unified API.

  • Reads credentials
  • Sends data out

64 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use deepxiv, figure-description and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • raja21068Skill

    deepxiv

    Search and progressively read open-access academic papers through DeepXiv. Use when the user wants layered paper access, section-level reading, trending papers, or DeepXiv-backed literature retrieval.

    Also in 4 projects that use this

  • raja21068Skill

    figure-description

    Process user-provided patent figures and generate formal drawing descriptions. Use when user says \"附图处理\", \"figure description\", \"附图说明\", \"drawings description\", or wants to describe patent figures with reference numerals.

    Also in 5 projects that use this

  • tpavanipradeepSkill

    bun-runtime

    Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, migration notes, and Vercel support.

    Also in 22 projects that use this

  • niloykumarbarmanSkill

    agent-sort

    Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

    Also in 10 projects that use this

  • junimnjwSkill

    ralphinho-rfc-pipeline

    RFC-driven multi-agent DAG execution pattern with quality gates, merge queues, and work unit orchestration.

    Also in 9 projects that use this

  • mryeastcodeSkill

    everything-claude-code-conventions

    Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

    Also in 8 projects that use this

  • +2 more from raja21068

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 63 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If this client speaks MCP, you can connect the workspace server instead of using this skill's curl calls — after the user connects their …

    line 30
  2. Distinctive:

    Confirm before destructive or outbound actions: Never delete, overwrite, or send on the user's behalf without their explicit confirmation …

    line 52
  3. Distinctive:

    Stay inside the user's request: Use only the endpoints the task needs.

    line 55
  4. Distinctive:

    If the variable is not set, ask the user for their key or point them at https://superagnt.com/r/ch-exa-search-key.

    line 77
  5. Distinctive:

    Run agentic Q&A that returns answers plus the sources Exa used

    line 355

“Common” is measured: kept by at least 6 in 10 of the 63 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Exa Integration

The Exa integration connects your Exa AI account to superagnt so AI agents and automations can query the live web with neural + keyword search, pull parsed page content (text, highlights, summaries), discover semantically similar URLs, and run agentic Q&A with cited sources. Supports the full set of Exa endpoints — /search, /contents, /findSimilar, and /answer — proxied through your superagnt API key.

Alternative install: the MCP server

If this client speaks MCP, you can connect the workspace server instead of using this skill's curl calls — after the user connects their Exa account in the superagnt app, the same endpoints below are exposed as native MCP tools:

https://mcp.superagnt.com/mcp

The URL publishes full OAuth discovery — an MCP-capable client needs the URL and nothing else (approve once in the browser). Per-client setup lines: https://www.superagnt.com/install

Everything below works on curl-only environments with just the API key.

Capabilities and safety

This skill documents the Exa API surface the user's connected account can reach — which can include destructive operations (updates, deletes) and, where the vendor supports them, actions performed as the user (sending messages, modifying records, changing settings). Two hard rules:

  • Confirm before destructive or outbound actions. Never delete, overwrite, or send on the user's behalf without their explicit confirmation in the conversation.
  • Stay inside the user's request. Use only the endpoints the task needs; this skill grants no access beyond the Exa connection the user set up themselves.

Prerequisites

  1. An API key — get one from the superagnt app and export it as SUPERAGNT_API_KEY.
  2. A connected Exa account — connect it on the Connections page. Calls fail with a clear error until the vendor is connected; that error is the signal to send the user to the connections page, not a bug.

Note: /v1/connections/* calls run on the USER'S Exa credentials — vendor-side rate limits and billing are theirs, not platform credits.

Authentication

Authorization: Bearer $SUPERAGNT_API_KEY

If the variable is not set, ask the user for their key or point them at https://superagnt.com/r/ch-exa-search-key.

Verify the install (do this first)

curl -s https://api.superagnt.com/v1/credits \
  -H 'Authorization: Bearer $SUPERAGNT_API_KEY'

A JSON result proves the key end to end. 401 = bad key; an error naming the connection means the Exa account is not connected yet.

Base URL

https://api.superagnt.com/v1/connections/exa

Available Endpoints

MethodPathSummary
POST/searchSearch
POST/contentsGet contents
POST/findSimilarFind similar links
POST/answerGenerate an answer from search results

Tool Schemas

The following JSON defines every operation with its parameters. Each tool maps to an API endpoint under the base URL.

[
  {
    "name": "superagnt_connection_exa_search",
    "description": "Search",
    "method": "POST",
    "path": "/search",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The query string for the search."
        },
        "additionalQueries": {
          "type": "array",
          "description": "Additional query variations for deep-search variants. Used alongside the main query for more comprehensive results."
        },
        "stream": {
          "type": "boolean",
          "description": "If true, the response is returned as an SSE stream of OpenAI-compatible chat completion chunks."
        },
        "outputSchema": {
          "type": "object",
          "description": "JSON schema for synthesized output. When provided, the response includes an output object and output.content matches this schema."
        },
        "systemPrompt": {
          "type": "string",
          "description": "Instructions that guide synthesized output and, for deep-search variants, search planning."
        },
        "type": {
          "type": "string",
          "description": "Search strategy. `auto` intelligently combines neural and other search methods; `fast` uses streamlined models; `deep-lite` / `deep` / `deep-reasoning` are synthesized-output modes; `instant` is the lowest-latency mode."
        },
        "category": {
          "type": "string",
          "description": "A data category to focus on. `people` and `company` support a limited filter set — `startPublishedDate`, `endPublishedDate`, `startCrawlDate`, `endCrawlDate`, and `excludeDomains` are not allowed; `includeDomains` for `people` only accepts LinkedIn domains."
        },
        "userLocation": {
          "type": "string",
          "description": "Two-letter ISO country code of the user (e.g. `US`)."
        },
        "numResults": {
          "type": "integer",
          "description": "Number of results to return. Max 100 for `neural` and deep-search variants."
        },
        "includeDomains": {
          "type": "array",
          "description": "Restrict results to these domains."
        },
        "excludeDomains": {
          "type": "array",
          "description": "Exclude these domains from results."
        },
        "startCrawlDate": {
          "type": "string",
          "description": "Only include links crawled after this ISO 8601 date."
        },
        "endCrawlDate": {
          "type": "string",
          "description": "Only include links crawled before this ISO 8601 date."
        },
        "startPublishedDate": {
          "type": "string",
          "description": "Only include links with a published date after this ISO 8601 date."
        },
        "endPublishedDate": {
          "type": "string",
          "description": "Only include links with a published date before this ISO 8601 date."
        },
        "moderation": {
          "type": "boolean",
          "description": "Enable content moderation to filter unsafe content from results."
        },
        "contents": {
          "type": "object",
          "description": "Content enrichment options returned alongside search results. See /contents for the full schema."
        }
      },
      "required": [
        "query"
      ]
    }
  },
  {
    "name": "superagnt_connection_exa_getContents",
    "description": "Get contents",
    "method": "POST",
    "path": "/contents",
    "parameters": {
      "type": "object",
      "properties": {
        "urls": {
          "type": "array",
          "description": "URLs to crawl (backwards compatible with `ids`)."
        },
        "ids": {
          "type": "array",
          "description": "Document IDs obtained from previous searches."
        },
        "text": {
          "type": "string",
          "description": "Boolean or advanced text options object. Object form supports `maxCharacters`, `includeHtmlTags`, `verbosity` (`compact` | `standard` | `full`), `includeSections`, `excludeSections` (header | navigation | banner | body | sidebar | footer | metadata)."
        },
        "highlights": {
          "type": "string",
          "description": "Boolean or advanced highlights object. Object form supports `maxCharacters`, `query`."
        },
        "summary": {
          "type": "object",
          "description": "LLM-generated summary options."
        },
        "livecrawl": {
          "type": "string",
          "description": "Deprecated — use `maxAgeHours`."
        },
        "livecrawlTimeout": {
          "type": "integer",
          "description": "livecrawlTimeout"
        },
        "maxAgeHours": {
          "type": "integer",
          "description": "Max age of cached content in hours. Positive = livecrawl if older, 0 = always livecrawl, -1 = never livecrawl."
        },
        "subpages": {
          "type": "integer",
          "description": "subpages"
        },
        "subpageTarget": {
          "type": "string",
          "description": "String or array of strings."
        },
        "extras": {
          "type": "object",
          "description": "extras"
        }
      },
      "required": [
        "urls"
      ]
    }
  },
  {
    "name": "superagnt_connection_exa_findSimilar",
    "description": "Find similar links",
    "method": "POST",
    "path": "/findSimilar",
    "parameters": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "The URL to find similar links for."
        },
        "numResults": {
          "type": "integer",
          "description": "numResults"
        },
        "includeDomains": {
          "type": "array",
          "description": "includeDomains"
        },
        "excludeDomains": {
          "type": "array",
          "description": "excludeDomains"
        },
        "startCrawlDate": {
          "type": "string",
          "description": "startCrawlDate"
        },
        "endCrawlDate": {
          "type": "string",
          "description": "endCrawlDate"
        },
        "startPublishedDate": {
          "type": "string",
          "description": "startPublishedDate"
        },
        "endPublishedDate": {
          "type": "string",
          "description": "endPublishedDate"
        },
        "moderation": {
          "type": "boolean",
          "description": "moderation"
        },
        "contents": {
          "type": "object",
          "description": "Content enrichment options. Same shape as in /search and /contents."
        }
      },
      "required": [
        "url"
      ]
    }
  },
  {
    "name": "superagnt_connection_exa_answer",
    "description": "Generate an answer from search results",
    "method": "POST",
    "path": "/answer",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "The question or query to answer."
        },
        "stream": {
          "type": "boolean",
          "description": "If true, returns an SSE stream."
        },
        "text": {
          "type": "boolean",
          "description": "If true, citations include full text content of each source."
        },
        "outputSchema": {
          "type": "object",
          "description": "JSON Schema Draft 7 for structured answers."
        }
      },
      "required": [
        "query"
      ]
    }
  }
]

Example

curl -X POST 'https://api.superagnt.com/v1/connections/exa/search' \
  -H 'Authorization: Bearer $SUPERAGNT_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"query":"latest developments in LLMs","numResults":10}'

Use Cases

  • Give agents real-time web knowledge beyond their training cutoff
  • Research a company, competitor, or topic with cited sources and summaries
  • Build retrieval-augmented generation pipelines grounded in the live web
  • Pull clean page text for summarization, extraction, or ingest into a vector store
  • Monitor news and blog posts filtered to trusted domains and date ranges
  • Run agentic Q&A that returns answers plus the sources Exa used

Links

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.