FutureSearch Logofuturesearch
  • Solutions
  • Pricing
  • Research
  • Docs
  • Evals
  • Blog
  • Company
  • Try it for free
FutureSearch Logo

General inquiry? You can reach us at hello@futuresearch.ai.

Company

Team & CareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHubSupport

Integrations

Claude CodeCursorChatGPT CodexClaude.ai

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Your research team
Installation
  • All install methods
  • Claude.ai
  • Claude Code
  • Web App
  • Python SDK
  • Skill
Reference
  • API Key
  • forecast
  • multi_agent
  • agent_map
  • rank
  • classify
  • merge
  • dedupe
  • MCP Server
  • Progress Monitoring
  • Chaining Operations
Guides
  • LLM-Powered Data Labeling
  • Add a Column via Web Research
  • Classify and Label Rows
  • Deduplicate Training Data
  • Error Handling
  • Filter a Dataset Intelligently
  • Find Profitable Prediction Market Trades
  • Forecast Outcomes for a List of Entities
  • Value a Private Company
  • Join Tables Without Shared Keys
  • Rank Data by External Metrics
  • Research a Question with a Team of Agents
  • Resolve Duplicate Entities
  • Scale Deduplication to 20K Rows
  • Turn Claude into an Accurate Forecaster
Case Studies
  • Deduplicate Contact Lists
  • Deduplicate CRM Records
  • Enrich Contacts with Company Data
  • Find Startups Selling to Frontier AI Labs
  • Forecast a Sum-of-the-Parts SpaceX IPO Valuation
  • Forecast Anthropic and OpenAI IPO Valuations
  • Forecast Founder Seed Valuations for AI Researchers
  • Forecast When Anthropic and OpenAI Will IPO
  • Fuzzy Match Across Tables
  • Link Records Across Medical Datasets
  • LLM Cost vs. Accuracy
  • Merge Costs and Speed
  • Merge Thousands of Records
  • Multi-Stage Lead Qualification
  • Research and Rank Web Data
  • Research Formal Verification for AI
  • Run 10,000 LLM Web Research Agents
  • Score Cold Leads via Web Research
  • Score Leads from Fragmented Data
  • Screen 10,000 Rows
  • Screen Job Listings
  • Screen Stocks by Economic Sensitivity
  • Screen Stocks by Investment Thesis
FutureSearchby futuresearch
by futuresearch

Multi-Agent

multi_agent answers one question with a team of web research agents. Each agent researches a different angle, then their findings are synthesized into one structured result.

Use multi_agent for a single question that deserves depth or breadth. To run one agent per row of a table, use agent_map.

Examples

A single question

Pass an empty DataFrame for a standalone question.

import pandas as pd
from futuresearch.ops import multi_agent

result = await multi_agent(
    task="Research the current state of formal verification for AI systems",
    input=pd.DataFrame(),
)
print(result.data.head())

The team explores different angles in parallel, then synthesizes one answer. By default the result has a single answer column.

Structured output

Pass a response_schema (a JSON Schema object) to get a multi-field result.

import pandas as pd
from futuresearch.ops import multi_agent

result = await multi_agent(
    task="Research the current state of formal verification for AI systems",
    input=pd.DataFrame(),
    response_schema={
        "type": "object",
        "properties": {
            "overall_maturity": {"type": "string"},
            "what_works": {"type": "string"},
            "key_limitations": {"type": "string"},
            "trajectory": {"type": "string"},
        },
        "required": ["overall_maturity", "what_works", "key_limitations", "trajectory"],
    },
)

Explicit directions

By default the research angles are generated for you. Pass directions to set them yourself, up to 6. Each direction is a full brief, not a short title.

result = await multi_agent(
    task="Research the major prediction-market platforms",
    input=pd.DataFrame(),
    directions=[
        "Research Polymarket: mechanism, volume, regulatory status, user base.",
        "Research Kalshi: mechanism, volume, regulatory status, user base.",
        "Research Metaculus and other forecasting-aggregation platforms.",
    ],
)

Generate a list

Set return_list=True to turn one question into a list. The response_schema describes a single item; the result has one row per item, with an _expand_index column.

import pandas as pd
from futuresearch.ops import multi_agent

result = await multi_agent(
    task="Find startups that sell training data, benchmarks, or RL environments to frontier AI labs",
    input=pd.DataFrame(),
    return_list=True,
    response_schema={
        "type": "object",
        "properties": {
            "company_name": {"type": "string"},
            "category": {"type": "string"},
            "funding_stage": {"type": "string"},
        },
        "required": ["company_name", "category", "funding_stage"],
    },
)
print(result.data)  # one row per company

Parameters

Name Type Description
task str Instructions for the research
input DataFrame | UUID The input. Pass an empty DataFrame for a standalone question, or rows to run the team on each
session Session Optional, auto-created if omitted
directions list[str] Optional, up to 6 explicit research angles. Auto-generated from effort_level if omitted
effort_level EffortLevel LOW, MEDIUM, or HIGH (default: MEDIUM)
response_schema dict Optional JSON Schema for the synthesized output. Defaults to {answer: string}
return_list bool If True, emit one output row per item. Pair with a response_schema describing a single item
join_with_input bool If True, merge the output with the input row (default: True)

Effort levels

The effort level sets the number of research agents on the question.

  • LOW: 3 agents
  • MEDIUM: 4 agents (default)
  • HIGH: 6 agents

Cost and runtime

Cost scales with effort. Across production runs, a single question costs roughly:

Effort Typical cost Typical runtime
LOW ~$0.30 ~3 minutes
MEDIUM ~$0.50 ~4 minutes
HIGH $0.80 to $2 ~4 to 6 minutes

Via MCP

MCP tool: futuresearch_multi_agent

Parameter Type Description
task string The question to research
directions string[] Optional explicit research angles
response_schema object Optional JSON Schema for the output
effort_level string low, medium, or high
return_table bool Set true when the task asks for a list of items

Related docs

Guides

  • Research a Question with a Team of Agents

Case Studies

  • Find Startups Selling to AI Labs
  • Research Formal Verification for AI

Reference

  • agent_map to run one agent per row of a table