exa-agent
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseExa Agent Research
Exa Agent 研究
You are operating Exa Agent through MCP. Exa Agent is a tool that allows you to run multi-step web research, list-building, enrichment, structured output, run continuation, and coverage validation.
你正在通过MCP操作Exa Agent。Exa Agent是一款可用于执行多步骤网页研究、列表构建、信息补全、结构化输出、任务续跑以及覆盖范围验证的工具。
Required tools
必备工具
agent_run
agent_run
Exa Connect providers
Exa Connect 提供商
When a run needs premium partner data alongside Exa web search, pass to .
dataSourcesagent_runUse only the currently usable self-serve providers:
- : B2B company, people, jobs, and contact enrichment
fiber - : ticker-based news for US public companies
financial_datasets - : website traffic estimates, rankings, and competitor discovery
similarweb - : US business verification, officers, registrations, and KYB
baselayer - : product catalog search, pricing, brands, and merchant links
affiliate - : podcast transcript search with speaker attribution and timestamps
particle - : travel destination discovery ranked by fare
jinko
Do not suggest request-only providers unless the user explicitly says their Exa account already has them enabled.
当任务需要在Exa网页搜索之外使用优质合作伙伴数据时,可向传入参数。
agent_rundataSources仅使用当前可用的自助式提供商:
- :B2B企业、人员、职位及联系人信息补全
fiber - :美国上市公司基于股票代码的新闻数据
financial_datasets - :网站流量估算、排名及竞品发现
similarweb - :美国企业验证、管理人员信息、注册信息及反洗钱尽调(KYB)
baselayer - :产品目录搜索、定价、品牌及商家链接
affiliate - :带说话人归属和时间戳的播客文稿搜索
particle - :按票价排序的旅行目的地发现
jinko
除非用户明确说明其Exa账户已启用,否则请勿推荐需申请的提供商。
Decision tree
决策树
Choose the work surface before acting:
-
Known input rows plus repeated same-shape enrichment at scale
- Write a deterministic script using Exa APIs directly.
- Use bounded concurrency, exponential backoff, checkpoints, and a stable output file.
- Read the output file and synthesize from it.
- Do not burn context manually looping over hundreds of identical tool calls.
-
Open-ended universe definition, list-building, people/company discovery, multi-hop research, structured research, or follow-up over previous work
- Use Exa Agent.
- Define the objective and before creating the run.
outputSchema
行动前先选择工作方式:
-
已知输入行且需大规模重复同格式信息补全
- 直接使用Exa API编写确定性脚本。
- 使用有限并发、指数退避、检查点及稳定输出文件。
- 读取输出文件并从中汇总信息。
- 避免手动循环执行数百次相同工具调用以消耗上下文。
-
开放式范围定义、列表构建、人员/企业发现、多跳研究、结构化研究或基于先前工作的跟进
- 使用Exa Agent。
- 创建任务前先定义目标和。
outputSchema
Before creating a run
创建任务前
Always write down:
- Objective: what the run is meant to answer.
- Universe: what entities qualify.
- Segments: geographies, industries, personas, dates, asset classes, or other partitions.
- Coverage target: desired count, maximum count, and what "good enough" means.
- Output fields: columns needed in the final answer.
- Evidence requirements: URLs, source titles, dates, and confidence.
- Exclusions: prior results or disallowed entities.
If the user uses relative time like "recent", "last 6 months", or "post-IPO", calculate exact dates from today's date first.
务必明确以下内容:
- 目标:任务要解决的问题。
- 范围:符合条件的实体类型。
- 细分维度:地域、行业、用户角色、日期、资产类别或其他划分标准。
- 覆盖目标:期望数量、最大数量,以及“足够好”的定义。
- 输出字段:最终结果所需的列。
- 证据要求:URL、来源标题、日期及可信度。
- 排除项:已有结果或不允许的实体。
如果用户使用“近期”“过去6个月”“上市后”等相对时间表述,需先根据当前日期计算出精确日期。
Schema rules
规则说明
Use for list-building, enrichment, finance/company research, and repeatable workflows.
outputSchemaRules:
- Use a top-level object.
- Put list rows in a named array field.
- Add to arrays when possible.
maxItems - Include source/evidence fields, not just conclusions.
- Include stable identifiers: company name, website/domain, person LinkedIn URL, ticker, CIK, etc.
- Include confidence or rationale fields for fuzzy judgments.
- Keep required fields limited to what must exist.
- Use ,
format: "uri", orformat: "email"when needed.format: "phone"
Example company-list schema:
json
{
"type": "object",
"properties": {
"companies": {
"type": "array",
"maxItems": 50,
"items": {
"type": "object",
"properties": {
"company_name": { "type": "string" },
"website": { "type": "string", "format": "uri" },
"segment": { "type": "string" },
"why_it_qualifies": { "type": "string" },
"evidence_url": { "type": "string", "format": "uri" },
"confidence": { "type": "string", "enum": ["low", "medium", "high"] }
},
"required": ["company_name", "website", "why_it_qualifies", "evidence_url"]
}
},
"coverage_notes": { "type": "string" },
"known_gaps": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["companies", "coverage_notes"]
}Example with Exa Connect:
json
{
"tool": "agent_run",
"arguments": {
"query": "Find 10 fast-growing B2B SaaS companies and return estimated monthly website visits from Similarweb.",
"dataSources": [
{ "provider": "similarweb" }
],
"outputSchema": {
"type": "object",
"properties": {
"companies": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"domain": { "type": "string" },
"monthlyVisits": {
"type": "number",
"description": "Estimated monthly visits from Similarweb"
}
},
"required": ["name", "domain", "monthlyVisits"]
}
}
},
"required": ["companies"]
}
}
}列表构建、信息补全、金融/企业研究及可重复工作流需使用。
outputSchema规则:
- 使用顶层对象。
- 将列表行放在命名数组字段中。
- 尽可能为数组添加属性。
maxItems - 包含来源/证据字段,而非仅结论。
- 包含稳定标识符:企业名称、网站/域名、人员LinkedIn URL、股票代码、CIK等。
- 为模糊判断添加可信度或理由字段。
- 仅保留必须存在的必填字段。
- 必要时使用、
format: "uri"或format: "email"。format: "phone"
示例企业列表规则:
json
{
"type": "object",
"properties": {
"companies": {
"type": "array",
"maxItems": 50,
"items": {
"type": "object",
"properties": {
"company_name": { "type": "string" },
"website": { "type": "string", "format": "uri" },
"segment": { "type": "string" },
"why_it_qualifies": { "type": "string" },
"evidence_url": { "type": "string", "format": "uri" },
"confidence": { "type": "string", "enum": ["low", "medium", "high"] }
},
"required": ["company_name", "website", "why_it_qualifies", "evidence_url"]
}
},
"coverage_notes": { "type": "string" },
"known_gaps": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["companies", "coverage_notes"]
}Exa Connect使用示例:
json
{
"tool": "agent_run",
"arguments": {
"query": "Find 10 fast-growing B2B SaaS companies and return estimated monthly website visits from Similarweb.",
"dataSources": [
{ "provider": "similarweb" }
],
"outputSchema": {
"type": "object",
"properties": {
"companies": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"domain": { "type": "string" },
"monthlyVisits": {
"type": "number",
"description": "Estimated monthly visits from Similarweb"
}
},
"required": ["name", "domain", "monthlyVisits"]
}
}
},
"required": ["companies"]
}
}
}Exa Agent workflow
Exa Agent 工作流程
-
Run the agent
- Call .
agent_run - Omit to use the tool's
effortdefault. Chooselowor a higher effort only when the user asks for more depth or the task clearly requires it.auto - Include for structured work.
outputSchema - Use for known rows.
input.data - Use for entities already returned or disallowed.
input.exclusion - Add only when one of the self-serve Exa Connect providers is clearly useful.
dataSources - Name the provider-specific data you want in both the query and the schema so Agent uses the provider instead of falling back to web search.
- Save the returned when a later continuation may use
id.previousRunId - If the response has , call
status: "running"again with thatagent_rununtilrunIdis true. This continuation is available for retained runs that outlive one MCP call.outputReady - Zero Data Retention (ZDR) teams: new runs always stream, and output is only available on that live stream (not via resumption). The MCP call window is ~750 seconds; if a ZDR run cannot finish in one call, retry with lower effort or split the task.
runIdis not available on ZDR.previousRunId
- Call
-
Read the result
- Wait until is true (or status is failed/cancelled).
outputReady - Read both and
output.structured.output.grounding - Do not assume results are exhaustive just because the run completed.
- Wait until
-
Validate coverage
- Check row count against target.
- Check segment coverage.
- Deduplicate entities.
- Inspect evidence quality.
- Identify gaps.
-
Continue if needed
- Use with
agent_runfor follow-up/refinement.previousRunId - Use to avoid resurfacing prior results.
input.exclusion - Segment large universes into multiple runs if one run is too broad.
- Use
-
Final answer
- State what was done.
- Present structured results.
- State coverage and limitations.
- Say "best-effort discovery" unless exhaustiveness was explicitly scoped and validated.
-
运行Agent
- 调用。
agent_run - 省略参数将使用工具默认的
effort级别。仅当用户要求更深入研究或任务明确需要时,才选择low或更高级别。auto - 结构化工作需包含。
outputSchema - 已知行数据使用。
input.data - 已返回或不允许的实体使用。
input.exclusion - 仅当某一自助式Exa Connect提供商明显有用时,才添加。
dataSources - 在查询和规则中明确指定需要的提供商特定数据,以便Agent使用该提供商而非默认网页搜索。
- 保存返回的,以便后续续跑时使用
id。previousRunId - 如果响应显示,需使用该
status: "running"再次调用runId,直到agent_run为true。对于超过一次MCP调用时长的保留任务,可使用此续跑功能。outputReady - 零数据保留(ZDR)团队:新任务始终流式传输,输出仅在该实时流中可用(无法通过恢复)。MCP调用窗口约为750秒;如果ZDR任务无法在一次调用内完成,需降低级别或拆分任务重试。ZDR不支持
runId。previousRunId
- 调用
-
读取结果
- 等待变为true(或状态为失败/已取消)。
outputReady - 同时读取和
output.structured。output.grounding - 不要仅因任务完成就假设结果是全面的。
- 等待
-
验证覆盖范围
- 检查行数是否符合目标。
- 检查细分维度覆盖情况。
- 去重实体。
- 检查证据质量。
- 识别空白点。
-
必要时续跑
- 使用带的
previousRunId进行跟进/细化。agent_run - 使用避免重复显示已有结果。
input.exclusion - 如果范围过大,可将其拆分为多个任务。
- 使用带
-
最终答案
- 说明已执行的操作。
- 展示结构化结果。
- 说明覆盖范围和局限性。
- 除非明确界定并验证了全面性,否则需说明这是“尽力而为的发现”。
Continuation patterns
续跑模式
Use when:
previousRunId- narrowing a list
- filling missing fields
- asking for another segment
- validating a prior set
- requesting "more like these"
Do not use when:
previousRunId- the prior run failed or is still running
- the new task is unrelated
- you need clean independent coverage for another segment
For independent segments, create separate runs and aggregate results yourself.
在以下场景使用:
previousRunId- 缩小列表范围
- 补充缺失字段
- 请求另一细分维度的数据
- 验证先前结果集
- 请求“更多类似结果”
在以下场景请勿使用:
previousRunId- 先前任务失败或仍在运行
- 新任务与先前任务无关
- 需要为另一细分维度获取独立的干净覆盖结果
对于独立细分维度,需创建单独任务并自行汇总结果。
Exhaustiveness and coverage language
全面性与覆盖范围表述
Never claim exhaustive coverage unless all are true:
- The universe is bounded and well-defined.
- Search/discovery strategy covers the main segments.
- The output count and gaps were checked.
- Duplicates were resolved.
- Evidence was inspected.
- Any remaining unknowns are disclosed.
Preferred language when not fully validated:
- "best-effort discovery"
- "high-confidence initial universe"
- "not exhaustive"
- "coverage appears strongest in X and weaker in Y"
Avoid:
- "all companies"
- "complete list"
- "exhaustive"
- "definitive"
unless validation supports it.
仅当以下所有条件满足时,才可声称覆盖全面:
- 范围明确且有界。
- 搜索/发现策略覆盖主要细分维度。
- 已检查输出数量和空白点。
- 已解决重复项。
- 已检查证据质量。
- 已披露所有剩余未知信息。
未完全验证时的首选表述:
- “尽力而为的发现”
- “高可信度初始范围”
- “非全面性结果”
- “在X领域覆盖较强,在Y领域覆盖较弱”
避免使用以下表述:
- “所有企业”
- “完整列表”
- “全面覆盖”
- “权威结果”
除非验证结果支持上述表述。
Batch Script Mode
批量脚本模式
If the task requires many parallel Exa calls of the same shape, especially batch enrichment over known companies/people:
- Write a script instead of issuing many MCP calls manually.
- The script must:
- read deterministic inputs from a file
- use bounded concurrency
- use exponential backoff for 429/5xx
- checkpoint partial progress
- write deterministic JSON/CSV/TSV output
- preserve raw API errors per row
- Run the script.
- Read the output file.
- Synthesize from the output.
Use Exa Agent instead of Batch Script Mode when the hard part is discovery, reasoning, multi-hop research, or deciding what to search next.
如果任务需要多次并行执行相同格式的Exa调用,尤其是针对已知企业/人员的批量信息补全:
- 编写脚本,而非手动发起多次MCP调用。
- 脚本必须:
- 从文件读取确定性输入
- 使用有限并发
- 对429/5xx错误使用指数退避
- 记录部分进度检查点
- 输出确定性JSON/CSV/TSV格式结果
- 保留每行的原始API错误信息
- 运行脚本。
- 读取输出文件。
- 从输出中汇总信息。
当核心难点在于发现、推理、多跳研究或决定下一步搜索内容时,使用Exa Agent而非批量脚本模式。
Failure handling
故障处理
If a run fails to start:
- Surface the HTTP error and fix schema/auth/input.
- Do not silently fall back to generic web search for Exa Agent-shaped work.
If the run fails:
- Explain the failure from the returned terminal status.
- Create a corrected follow-up/new run only if the correction is clear.
If the run objective/schema is wrong, abort the streaming call. The server will attempt to cancel the upstream run; you will then need to create a new run with the corrected objective/schema.
If output is sparse:
- Continue with .
previousRunId - Add exclusions for prior results.
- Segment the universe.
- Tighten or clarify schema fields.
如果任务无法启动:
- 显示HTTP错误并修正规则/权限/输入。
- 对于适合Exa Agent的任务,请勿默认回退到通用网页搜索。
如果任务失败:
- 根据返回的最终状态解释失败原因。
- 仅当明确知道修正方案时,才创建修正后的跟进/新任务。
如果任务目标/规则错误,需终止流式调用。服务器将尝试取消上游任务;之后你需要使用修正后的目标/规则创建新任务。
如果输出结果稀疏:
- 使用续跑。
previousRunId - 添加已有结果作为排除项。
- 拆分范围。
- 收紧或明确规则字段。