High-Level Overview

A task is a reusable template for web research and analysis. Think of it like a function that takes structured inputs and returns structured outputs and executes web research operations in between. Each Task requires the following components:

Schema itemDefinition
Task IDIdentifier for the Task
Task SpecNatural language instructions defining what to research and analyze
Input SchemaDefinition of required input parameters
Output SchemaStructure of the expected results
ProcessorChosen Parallel processor that will execute the research

Task Specification

Instructions written in natural language and can include:

  • Research context where needed

  • Categorization requirements (eg. categorize a company by industry)

  • Specific requirements for the research process (eg. find the population of {state})

It can be hyper-specific to your use case. Think of the task specification as the instructions you would provide a competent research analyst with. Variables in the Task Spec are marked with curly braces (e.g., find the population of {state}, identify the name of the CEO for {company}) and are replaced with input values when the task runs.

Input and Output Schema

Tasks can take various types of inputs and outputs. The Input schema corresponds to the input variables included as part of the Task Spec. It can be adapted to your use case. For example, in a company research use case, and may both be inputs. Outputs in a company research use case may include founding year, type of company, and key decision makers. Below is an example of both these inputs and outputs:

{
    "properties": {
        "company_name": {
            "type": "string",
            "description": "Company name"
        },
        "company_website": {
            "type": "string",
            "description": "Company website URL"
        }
    },
    "required": ["company_name", "company_website"]
}