exa-search

安装量: 186
排名: #4610

安装

npx skills add https://github.com/benedictking/exa-search --skill exa-search
Exa Search Skill
Trigger Conditions & Endpoint Selection
Choose Exa endpoint based on user intent:
search
Need semantic search / find web pages / research topics
contents
Given result IDs, need to extract full content
findsimilar
Given URL, need to find similar pages
answer
Need direct answer to a question
research
Need structured research output following given
output_schema
Recommended Architecture (Main Skill + Sub-skill)
This skill uses a two-phase architecture:
Main skill (current context)
Understand user question → Choose endpoint → Assemble JSON payload
Sub-skill (fork context)
Only responsible for HTTP call execution, avoiding conversation history token waste
Execution Method
Use Task tool to invoke
exa-fetcher
sub-skill, passing command and JSON (stdin):
Task parameters:
- subagent_type: Bash
- description: "Call Exa API"
- prompt: cat <<'JSON' | node .claude/skills/exa-search/exa-api.cjs
{ ...payload... }
JSON
Payload Examples
1) Search
cat
<<
'JSON'
|
node
.claude/skills/exa-search/exa-api.cjs search
{
"query": "Latest research in LLMs",
"type": "auto",
"numResults": 10,
"category": "research paper",
"includeDomains": [],
"excludeDomains": [],
"startPublishedDate": "2025-01-01",
"endPublishedDate": "2025-12-31",
"includeText": [],
"excludeText": [],
"context": true,
"contents": {
"text": true,
"highlights": true,
"summary": true
}
}
JSON
Search Types:
neural
Semantic search using embeddings
fast
Quick keyword-based search
auto
Automatically choose best method (default)
deep
Comprehensive deep search
Categories:
company
,
people
,
research paper
,
news
,
pdf
,
github
,
tweet
, etc.
2) Contents
cat
<<
'JSON'
|
node
.claude/skills/exa-search/exa-api.cjs contents
{
"ids": ["result-id-1", "result-id-2"],
"text": true,
"highlights": true,
"summary": true
}
JSON
3) Find Similar
cat
<<
'JSON'
|
node
.claude/skills/exa-search/exa-api.cjs findsimilar
{
"url": "https://example.com/article",
"numResults": 10,
"category": "news",
"includeDomains": [],
"excludeDomains": [],
"startPublishedDate": "2025-01-01",
"contents": {
"text": true,
"summary": true
}
}
JSON
4) Answer
cat
<<
'JSON'
|
node
.claude/skills/exa-search/exa-api.cjs answer
{
"query": "What is the capital of France?",
"numResults": 5,
"includeDomains": [],
"excludeDomains": []
}
JSON
5) Research
cat
<<
'JSON'
|
node
.claude/skills/exa-search/exa-api.cjs research
{
"input": "What are the latest developments in AI?",
"model": "auto",
"stream": false,
"output_schema": {
"properties": {
"topic": {
"type": "string",
"description": "The main topic"
},
"key_findings": {
"type": "array",
"description": "List of key findings",
"items": {
"type": "string"
}
}
},
"required": ["topic"]
},
"citation_format": "numbered"
}
JSON
Environment Variables & API Key
Two ways to configure API Key (priority: environment variable >
.env
):
Environment variable:
EXA_API_KEY
.env
file: Place in
.claude/skills/exa-search/.env
, can copy from
.env.example
Response Format
All endpoints return JSON with:
requestId
Unique request identifier
results
Array of search results
searchType
Type of search performed (for search endpoint)
context
LLM-friendly context string (if requested)
costDollars
Detailed cost breakdown
返回排行榜