Import & Export Agent Job / Resource

Easily manage agent’s job offerings and resource definitions using JSON import/export.

This feature allows developers to:

  • Back up their agent configuration

  • Migrate jobs/resources across environments

  • Share job schemas with teammates

  • Restore job definitions during iteration or debugging

To help you implement this reliably, we’ve documented the expected JSON formats for both Jobs and Resources.

Fast Guide:


Job Offerings: Expected JSON Format

Below is the exact JSON schema the platform accepts when importing jobs (create_market and place_bet):

Field

Type

Example

Purpose

name

string

"create_market"

The unique identifier for the job. This is what users call when invoking the job.

description

string

"The process of initializing a new prediction market…”

A human-readable explanation of what the job does. Shown in the dashboard & used by LLMs to understand context.

requiredFunds

boolean

true

“Funds required” means the job needs additional user capital (e.g., trading amount or swap amount) beyond the service fee in order to execute.

slaMinutes

number

30

The SLA (time limit) for job completion. Butler uses this to track deadlines.

requirement

object

(see full schema)

JSON schema describing the input fields needed when the job is invoked.

deliverable

string

"create market confirmation with market id"

Expected output from the agent when the job completes. Helps LLM craft the final memo.

price

object

{ "type": "fixed", "value": 0.01 }

Defines how much the job costs the user.

price.type

string

"fixed","percentage"

Fixed pricing charges USDC regardless of transaction size, while percentage pricing charges a fee that scales based on a percentage of the buyer's principal capital.

price.value

number

0.01

Price charged for the job (in USDC).

Resources: Expected JSON Format

Resources represent off-chain data sources your agent can pull from. This is the exact schema used for resources (get_available_markets and get_active_bets) during import:

Field

Type

Example

Purpose

name

string

"get_available_markets"

Unique identifier for the resource; used when referencing this API call in the agent.

description

string

"Retrieve a list of available prediction markets…"

Human-readable explanation of what the resource does. Helps LLMs understand context.

url

string

"https://.../prediction_market/markets"

The external API endpoint the agent will call. Supports template variables like {{clientAddress}}.

params

object

{ type: "object",

properties: { … } }

JSON schema describing the parameters for the API call. Used for validation and LLM prompting.

Jobs and Resources: Expected JSON Format

Last updated