Files
twenty/packages/twenty-cli/schemas/agent.schema.json
T
martmullandGitHub 6fdd7894a1 Add serverless function in twenty-cli (#14819)
- add serverlessFunction schema in twenty-cli
- add trigger schema in twenty-cli
- update serverless function code save and get
- sync serverless function
2025-10-01 22:11:03 +02:00

110 lines
3.2 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-cli/schemas/agent.schema.json",
"title": "Twenty Agent Manifest",
"description": "Schema for Twenty AI agent configuration files",
"type": "object",
"required": ["standardId", "universalIdentifier", "name", "label", "prompt", "modelId"],
"properties": {
"$schema": {
"type": "string",
"description": "JSON Schema reference for validation and IDE support"
},
"universalIdentifier": {
"type": "string",
"description": "Unique identifier (UUID format recommended)",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
},
"standardId": {
"const": { "$data": "1/universalIdentifier" },
"description": "Should be the same as universalIdentifier"
},
"name": {
"type": "string",
"description": "Internal name for the agent (camelCase, used in code)",
"pattern": "^[a-zA-Z][a-zA-Z0-9]*$",
"minLength": 1,
"maxLength": 100
},
"label": {
"type": "string",
"description": "Human-readable display name for the agent",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"description": "Brief description of what the agent does",
"maxLength": 500
},
"icon": {
"type": "string",
"description": "Icon for the agent (emoji or icon name)",
"maxLength": 50
},
"prompt": {
"type": "string",
"description": "System prompt that defines the agent's behavior and personality",
"minLength": 10,
"maxLength": 10000
},
"modelId": {
"type": "string",
"description": "AI model to use for this agent",
"default": "auto",
"enum": [
"auto",
"gpt-4o",
"gpt-4o-mini",
"gpt-4-turbo",
"claude-opus-4-20250514",
"claude-sonnet-4-20250514",
"claude-3-5-haiku-20241022",
"grok-3",
"grok-3-mini",
"grok-4"
]
},
"responseFormat": {
"type": "object",
"description": "Format specification for agent responses",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"description": "Response format type",
"enum": ["text", "json"]
},
"schema": {
"type": "object",
"description": "JSON schema for structured responses (required when type is 'json')",
"additionalProperties": true
}
},
"if": {
"properties": {
"type": { "const": "json" }
}
},
"then": {
"required": ["schema"]
}
}
},
"additionalProperties": false,
"examples": [
{
"standardId": "550e8400-e29b-41d4-a716-446655440001",
"name": "customerSupportAgent",
"label": "Customer Support Assistant",
"description": "Helps customers with their inquiries and issues",
"icon": "🎧",
"prompt": "You are a helpful customer support agent. Always be polite, professional, and solution-oriented.",
"modelId": "auto",
"responseFormat": {
"type": "text"
}
}
]
}