Exa Skill

Exa 的核心是 /search,但最容易踩的坑是 type 参数:早期训练语料里常见的 neural/keyword 已经从枚举里消失,现在合法值是 instant/fast/auto/deep-lite/deep/deep-reasoning,传旧值是报错还是静默回退到 auto 仍未验证。文档自己还留了一处矛盾:resolvedSearchType 字段被标注为「废弃,生产环境可能返回空字符串,不要用它做分支判断」,但同一份规范里 POST /search 的示例响应却写着 "resolvedSearchType": "neural"。这份 skill 是基于官方文档和 OpenAPI 规范整理的文档版,尚未用真实 Key 验证过任何一条结论。

文档版 · 未实测exaapi.exa.aiAuthorization: Bearer $EXA_API_KEYAgent 工具更新 2026-09-21
5份 reference
7个易错点
0条无凭证探测
2026-09-21文档抓取
INSTALL · 安装

安装

选你用的 Agent,复制命令。

npx -y skills add fxp/skillify --skill exa --agent claude-code --yes

装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。

或者让 Agent 自己装

读 https://github.com/fxp/skillify/blob/main/skills/exa/prompt.md 并照它执行

装对了的标志:references/ 下有 5 份文档。

TRY ASKING · 装好后可以这样问

装好后,可以这样问你的 Agent

这份 Skill 覆盖的典型任务。点一下复制。

CAPABILITIES · 能力清单

5 类能力

每类能力对应一份 reference,Agent 按任务只打开需要的那份。

语义搜索

自然语言查询网页排序结果,六种 type 搜索模式、内容选项、outputSchema 结构化输出与历史快照

references/search.mdPOST /search

取正文与已废弃的相似链接

已知 URL 批量取正文/高亮/摘要、子页面抓取、URL 级失败处理,以及已废弃的 /findSimilar

references/contents-and-find-similar.mdPOST /contents · POST /findSimilar

问答与引用

一步生成带引用的直接答案,支持结构化输出、流式响应与 OpenAI 兼容的 /chat/completions

references/answer.mdPOST /answer · POST /chat/completions

研究型代理

异步研究任务:建列表、实体富化、多跳核查、接入 Exa Connect 第三方数据源,轮询/SSE/续接/取消/停止

references/agent.mdPOST /agent/runs · GET /agent/runs/{id} · POST /agent/runs/{id}/cancel · POST /agent/runs/{id}/stop

鉴权、错误码与限流

鉴权头写法、两种错误信封结构、HTTP 状态码与错误 tag、按 QPS 计的限流、定价速查

references/errors-and-limits.mdGlobal · 10/5/100 QPS per endpoint
FACTS · 当前事实

当前事实

整理自官方文档(抓取于 2026-09-21),还没有用真实凭证验证。

项值
Base URLhttps://api.exa.ai;Websets(/v0/websets/*,39 个 endpoint)是独立产品面,本 skill 未覆盖
鉴权Authorization: Bearer $EXA_API_KEY;规范里 x-api-key 头也声明等价,但所有文档示例代码只用 Bearer
最容易选错/search 的 type 不再是 neural/keyword,合法值是 instant/fast/auto/deep-lite/deep/deep-reasoning
限流/search//answer 10 QPS(deep 系列 5 QPS)、/contents 100 QPS、/agent/runs 5 QPS 且并发上限 50,起一个 run 按 2 次请求计
计费速查/search $7/1k 次(deep 系列 $12–$15)、/answer $5/1k 次、/contents $1/1k 页;Agent 固定 effort 从 minimal $0.012 到 xhigh $1.00/次
GOTCHAS · 易错点

照通用经验写容易错的 7 件事

来自官方文档,还没有用真实凭证验证。

  1. type 参数已经整体换代。训练语料里常见的 neural/keyword 已不在枚举里,当前合法值是 instant/fast/auto/deep-lite/deep/deep-reasoning,传旧值是报错还是静默回退到 auto 未经验证。
  2. /search 和 /contents 的内容选项嵌套位置不同。照抄一个端点的请求体去拼另一个大概率写错:/search 把 highlights/text/summary 包在 contents: {...} 里,/contents 把它们直接摊平在请求体顶层,和 urls/ids 平级。
  3. resolvedSearchType 字段文档自相矛盾。OpenAPI 规范说它是「废弃字段,生产环境可能返回空字符串,不要用它做分支判断」,但同一份规范里 POST /search 的示例响应却写着 "resolvedSearchType": "neural",两处口径对不上。
  4. POST /findSimilar 已废弃。这是 Exa 早期最出名的端点,规范标注 deprecated: true,官方建议改用 /search 把源页面主题写进自然语言 query,但没给出具体的转换算法或示例代码。
  5. Agent API 的错误结构和其他三个端点不一样。Search/Contents/Answer 是扁平的 {"requestId", "error", "tag"},Agent(/agent/runs)却是嵌套的 {"error": {"type", "code", "message"}},复用同一个错误解析函数会在 Agent 响应上读错字段。
  6. maxAgeHours 不是发布时间过滤器,是缓存新鲜度阈值。省略=优先用缓存、0=总是抓新鲜页面、-1=只用缓存绝不抓取,正整数 N=缓存新于 N 小时才用;想按发布时间筛选要用 startPublishedDate/endPublishedDate,是完全不同的参数。
  7. 创建 Agent run 默认立即返回,不是等跑完。POST /agent/runs 默认马上给一个 status: "queued" 的 run 对象,必须轮询 GET /agent/runs/{id} 或带 Accept: text/event-stream 才能拿到 output.text/output.structured,当成同步接口用会拿到一个空/未完成的 run。
STATUS · 验证状态

验证状态

文档版:整理自官方文档(抓取于 2026-09-21),还没有用真实凭证调用验证。页面和 Skill 里标「文档原文,未实测」的报错与行为都来自文档本身。

有这个平台的沙箱或 API Key?联系我们——补测并做完装与不装的对照测试后,它会升级为「已实测」。