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. |
JSON Schema
{
"$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'."
}
}
}
}
}