anything-llm/server/utils/agents/imported-manifest.schema.json
2024-09-23 11:07:56 -05:00

159 lines
4.7 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "AnythingLLM Agent Skill Plugin Manifest Schema",
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Determines if the custom agent skill is active."
},
"hubId": {
"type": "string",
"description": "Used to identify the custom agent skill. Must be the same as the parent folder name."
},
"name": {
"type": "string",
"description": "The human-readable name of the skill displayed in the AnythingLLM UI."
},
"schema": {
"type": "string",
"enum": ["skill-1.0.0"],
"description": "Must be 'skill-1.0.0'. May be updated on manifest spec changes."
},
"version": {
"type": "string",
"description": "Version of the custom agent skill, defined by the user."
},
"description": {
"type": "string",
"description": "Short description of the custom agent skill."
},
"author": {
"type": "string",
"description": "Author tag of the custom agent skill."
},
"author_url": {
"type": "string",
"format": "uri",
"description": "URL of the author of the custom agent skill."
},
"license": {
"type": "string",
"description": "License of the custom agent skill."
},
"setup_args": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of value expected."
},
"required": {
"type": "boolean",
"description": "Indicates if the argument is required."
},
"input": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of input to be rendered."
},
"default": {
"type": "string",
"description": "Default value of the input."
},
"placeholder": {
"type": "string",
"description": "Placeholder text for the input."
},
"hint": {
"type": "string",
"description": "Hint text for the input."
}
},
"required": ["type"],
"additionalProperties": false
},
"value": {
"type": "string",
"description": "Preset value of the argument."
}
},
"required": ["type"],
"additionalProperties": false
},
"description": "Setup arguments used to configure the custom agent skill from the UI and make runtime arguments accessible in the handler.js file when the skill is called."
},
"examples": {
"type": "array",
"items": {
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "Example prompt for the custom agent skill."
},
"call": {
"type": "string",
"description": "Expected invocation format matching the input format of the custom agent skill."
}
},
"required": ["prompt", "call"],
"additionalProperties": false
},
"description": "Array of examples used to pre-inject examples into the custom agent skill."
},
"entrypoint": {
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Location of the file to be executed relative to the plugin.json file."
},
"params": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Short description of the parameter's purpose."
},
"type": {
"type": "string",
"enum": ["string", "number", "boolean"],
"description": "Type of the parameter."
}
},
"required": ["description", "type"],
"additionalProperties": false
},
"description": "Parameters expected by the custom agent skill."
}
},
"required": ["file", "params"],
"additionalProperties": false,
"description": "Defines the entrypoint of the custom agent skill and the expected inputs."
},
"imported": {
"type": "boolean",
"enum": [true],
"description": "Must be set to true."
}
},
"required": [
"active",
"hubId",
"name",
"schema",
"version",
"description",
"entrypoint",
"imported"
],
"additionalProperties": true
}