Toolhouse · Schema

Toolhouse Agent

Represents an AI agent in the Toolhouse platform, including its configuration, tools, schedules, and execution metadata.

Agent InfrastructureAI AgentsAI WorkersBackend as a ServiceMCPMCP DiscoveryRAGToolsWorkers API

Properties

Name Type Description
agentId string Unique identifier for the agent (UUID format).
name string Human-readable name of the agent.
description string Detailed description of what the agent does.
type string The type of entity this schema represents.
slug string URL-friendly vanity slug for the agent.
model string The LLM model used by the agent (e.g., gpt-4, claude-3).
system_prompt string System prompt that defines the agent's behavior and personality.
is_public boolean Whether the agent is publicly accessible without authentication.
tools object Collection of tools available to the agent.
bundles array Tool bundles assigned to the agent.
files array Files attached to the agent for RAG or reference.
schedule object Scheduled execution configuration for the agent.
auth_required boolean Whether Bearer token authentication is required to invoke the agent.
tags array Categorization tags for the agent.
theme object Visual theme customization for the agent.
monetization object Monetization settings for the agent.
View JSON Schema on GitHub

JSON Schema

toolhouse-agent-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://toolhouse.ai/schemas/toolhouse/agent.json",
  "title": "Toolhouse Agent",
  "description": "Represents an AI agent in the Toolhouse platform, including its configuration, tools, schedules, and execution metadata.",
  "type": "object",
  "required": ["agentId", "name", "type"],
  "properties": {
    "agentId": {
      "type": "string",
      "description": "Unique identifier for the agent (UUID format).",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name of the agent.",
      "minLength": 1
    },
    "description": {
      "type": "string",
      "description": "Detailed description of what the agent does."
    },
    "type": {
      "type": "string",
      "description": "The type of entity this schema represents.",
      "enum": ["agent", "tool", "schedule", "bundle"]
    },
    "slug": {
      "type": "string",
      "description": "URL-friendly vanity slug for the agent."
    },
    "model": {
      "type": "string",
      "description": "The LLM model used by the agent (e.g., gpt-4, claude-3)."
    },
    "system_prompt": {
      "type": "string",
      "description": "System prompt that defines the agent's behavior and personality."
    },
    "is_public": {
      "type": "boolean",
      "description": "Whether the agent is publicly accessible without authentication.",
      "default": false
    },
    "tools": {
      "$ref": "#/$defs/ToolSet",
      "description": "Collection of tools available to the agent."
    },
    "bundles": {
      "type": "array",
      "description": "Tool bundles assigned to the agent.",
      "items": {
        "$ref": "#/$defs/Bundle"
      }
    },
    "files": {
      "type": "array",
      "description": "Files attached to the agent for RAG or reference.",
      "items": {
        "$ref": "#/$defs/AgentFile"
      }
    },
    "schedule": {
      "$ref": "#/$defs/Schedule",
      "description": "Scheduled execution configuration for the agent."
    },
    "auth_required": {
      "type": "boolean",
      "description": "Whether Bearer token authentication is required to invoke the agent.",
      "default": true
    },
    "tags": {
      "type": "array",
      "description": "Categorization tags for the agent.",
      "items": {
        "type": "string"
      }
    },
    "theme": {
      "$ref": "#/$defs/ThemePreference",
      "description": "Visual theme customization for the agent."
    },
    "monetization": {
      "$ref": "#/$defs/Monetization",
      "description": "Monetization settings for the agent."
    }
  },
  "$defs": {
    "ToolSet": {
      "type": "object",
      "description": "A collection of tools available to an agent.",
      "properties": {
        "installed": {
          "type": "array",
          "description": "List of tools installed and available for the agent.",
          "items": {
            "$ref": "#/$defs/Tool"
          }
        }
      }
    },
    "Tool": {
      "type": "object",
      "description": "A single tool that can be executed by an agent.",
      "required": ["toolId", "name"],
      "properties": {
        "toolId": {
          "type": "string",
          "description": "Unique identifier for the tool."
        },
        "name": {
          "type": "string",
          "description": "Human-readable name of the tool.",
          "minLength": 1
        },
        "description": {
          "type": "string",
          "description": "Description of what the tool does."
        },
        "category": {
          "type": "string",
          "description": "Category the tool belongs to."
        },
        "inputs": {
          "$ref": "#/$defs/InputSchema",
          "description": "JSON Schema describing the tool's input parameters."
        }
      }
    },
    "Bundle": {
      "type": "object",
      "description": "A named collection of tools grouped together.",
      "required": ["bundleId", "name"],
      "properties": {
        "bundleId": {
          "type": "string",
          "description": "Unique identifier for the bundle."
        },
        "name": {
          "type": "string",
          "description": "Name of the bundle."
        },
        "description": {
          "type": "string",
          "description": "Description of the bundle's purpose."
        },
        "tools": {
          "type": "array",
          "description": "Tools included in this bundle.",
          "items": {
            "$ref": "#/$defs/Tool"
          }
        }
      }
    },
    "AgentFile": {
      "type": "object",
      "description": "A file attached to an agent.",
      "required": ["fileId"],
      "properties": {
        "fileId": {
          "type": "string",
          "description": "Unique identifier for the file."
        },
        "name": {
          "type": "string",
          "description": "File name."
        },
        "position": {
          "type": "integer",
          "description": "Display position of the file."
        }
      }
    },
    "Schedule": {
      "type": "object",
      "description": "Scheduled execution configuration using cron expressions.",
      "properties": {
        "scheduleId": {
          "type": "string",
          "description": "Unique identifier for the schedule."
        },
        "cron_expression": {
          "type": "string",
          "description": "Cron expression defining the execution schedule."
        },
        "is_active": {
          "type": "boolean",
          "description": "Whether the schedule is currently active.",
          "default": true
        }
      }
    },
    "ThemePreference": {
      "type": "object",
      "description": "Visual theme customization for the agent UI.",
      "properties": {
        "theme": {
          "type": "string",
          "description": "Theme identifier or configuration."
        }
      }
    },
    "Monetization": {
      "type": "object",
      "description": "Monetization configuration for a paid agent.",
      "properties": {
        "is_monetized": {
          "type": "boolean",
          "description": "Whether the agent charges for access."
        },
        "price": {
          "type": "number",
          "description": "Subscription price for the agent."
        },
        "subscriber_count": {
          "type": "integer",
          "description": "Number of active subscribers."
        }
      }
    },
    "InputSchema": {
      "type": "object",
      "description": "Schema describing the input parameters for a tool or operation.",
      "properties": {
        "type": {
          "type": "string",
          "const": "object"
        },
        "required": {
          "type": "array",
          "description": "List of required input parameter names.",
          "items": {
            "type": "string"
          }
        },
        "properties": {
          "type": "object",
          "description": "Map of parameter names to their type definitions.",
          "additionalProperties": {
            "$ref": "#/$defs/InputParameter"
          }
        }
      }
    },
    "InputParameter": {
      "type": "object",
      "description": "Definition of a single input parameter.",
      "properties": {
        "type": {
          "type": "string",
          "description": "The data type of the parameter.",
          "enum": ["string", "integer", "number", "boolean", "array", "object"]
        },
        "description": {
          "type": "string",
          "description": "Human-readable description of the parameter."
        },
        "enum": {
          "type": "array",
          "description": "Allowed values for the parameter."
        },
        "default": {
          "description": "Default value for the parameter when not provided."
        },
        "format": {
          "type": "string",
          "description": "Format hint for the parameter value, such as 'email', 'uri', or 'date-time'."
        }
      }
    }
  }
}