Open Floor Protocol   ›   Protocol   ›   Schemas   ›   Assistant Manifest

Assistant Manifest

You can find the current and all previous versions of this schema also in our GitHub repository.

Full Schema

{
  "$id": "https://github.com/open-voice-interoperability/docs/tree/main/schemas/assistant-manifest/1.0.0/assistant-manifest-schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "A representation of an 'assistant manifest’ - a standard format for publishing the identity and capability of an Open-Floor agent.",
  "type": "object",
  "required":  [ "identification","capabilities" ],
  "properties": {
    "identification": {
      "required":  ["serviceUrl" , "organization", "conversationalName" ],
      "properties": {
        "speakerUri": {
          "$ref": "#/$defs/uri",
          "description": "The unique identity of the agent."
        },
        "serviceUrl": {
          "$ref": "#/$defs/url",
          "description": "The endpoint of the conversational assistant."
        },
        "organization": {
          "type": "string",
          "description": "The name of the organization administering this assistant."
        },
        "conversationalName": {
          "type": "string",
          "description": "The 'given name' of the conversational agent."
        },
        "department": {
          "type": "string",
          "description": "The department within the organization."
        },
        "role": {
          "type": "string",
          "description": "The 'job title', or 'role' of the assistant."
        },
        "synopsis": {
          "type": "string",
          "description": "A sentence signposting the who the assistant is and their area of expertise."
        }
      }
    },
    "capabilities": {
      "type": "array",
      "description": "A list of capabilities supported by this endpoint.",
      "items" : {
        "type" : "object",
        "description": "One of the capabilities supported by this endpoint.",
        "required":  ["keyphrases" , "descriptions" ],
        "properties" : {
          "keyphrases": {
            "type": "array",
            "description": "A list of searchable key phrases.",
            "items" : {
              "type": "string",
              "description": "A searchable key phrase"
            }
          },
          "languages": {
            "type": "array",
            "description": "A list of the languages supported by this capability.",
            "items" : {
              "type": "string",
              "description": "A language supported by this capability"
            }
          },
          "descriptions": {
            "type": "array",
            "description": "A set of searchable texts, in no particular order, describing the services and capabilities of the assistant.",
            "items" : {
              "type": "string",
              "description": "A searchable text describing one of the services or capabilities of the assistant."
            }
          },
          "supportedLayers": {
            "type" : "object",
            "description": "The input and output capabilities supported by this endpoint.",
            "required":  ["input" , "output" ],
            "properties" : {
              "input": {
                "type": "array",
                "description": "A list of the dialogEvent layers supported as input for this capability.",
                "items" : {
                  "type": "string",
                  "description": "A dialogEvent input layer supported by this capability"
                }
              },
              "output": {
                "type": "array",
                "description": "A list of the dialogEvent layers supported as output for this capability.",
                "items" : {
                  "type": "string",
                  "description": "A dialogEvent output layer supported by this capability"
                }
              }
            }
          }
        }
      }
    }
  },

  "$defs": {
    "url": {
      "type": "string",
      "description": "Any valid URL"
    },
    "uri": {
      "type": "string",
      "description": "Any valid URI"
    }
  }
}

Usage Examples

Manifest

 {
    "identification":
    {
        "speakerUri": "https://dev.buerokratt.ee/ovonr/conversation",
        "serviceUrl": "https://dev.buerokratt.ee/ovonr/conversation",
        "organization": "Government of Estonia",
        "conversationalName": "Buerokratt",
        "department": "Passport Office",
        "role": "Immigration Specialist",
        "synopsis" : "Immigration specialist as part of the Buerokratt system."
    },               
    "capabilities": [
        {
            "keyphrases": [
                "visa",
                "immigration",
                "passport",
                "permanent resident"
            ],
            "languages": [
                "en-us"
            ],
            "descriptions": [
                "international travel to and from Estonia"
            ],
            "supportedLayers": {
                "input" : [ 
                    "text"
                ],
                "output" : [
                    "text"
                ]
            }
        }
    ]
}