{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://hai.ai/schemas/agent/v1/agent.schema.json", "title": "Agent", "description": "General schema for human, hybrid, and AI agents", "allOf": [ { "$ref": "https://hai.ai/schemas/header/v1/header.schema.json" }, { "type": "object", "properties": { "jacsAgentType": { "type": "string", "hai": "agent", "enum": [ "human", "human-org", "hybrid", "ai" ], "description": "Type of the agent. 'human' indicates a biological entity, 'human-org' indicates a group of people, hybrid' indicates a combination of human and artificial components, 'ai' indicates a fully artificial intelligence." } }, "jacsServices": { "type": "array", "minItems": 1, "description": "Services the agent can perform.", "items": { "$ref": "https://hai.ai/schemas/components/service/v1/service.schema.json" } }, "jacsContacts": { "type": "array", "description": "Contact information for the agent", "items": { "$ref": "https://hai.ai/schemas/components/contact/v1/contact.schema.json" } } } ], "if": { "properties": { "jacsAgentType": { "type": "string", "enum": [ "human", "human-org", "hybrid" ] } } }, "then": { "properties": { "jacsContacts": { "minItems": 1 } }, "required": [ "jacsContacts" ] }, "required": [ "jacsAgentType", "jacsServices" ] }