cohere · Schema

Cohere Chat Message

Represents a message in a Cohere Chat API conversation, including user prompts, assistant responses, system instructions, and tool results.

Properties

Name Type Description
role string The role of the message author in the conversation. User messages are prompts, assistant messages are model responses, system messages set behavior, and tool messages return function results.
content string The text content of the message.
tool_call_id string The ID of the tool call this message is responding to. Required when role is tool.
tool_calls array Tool calls generated by the model when it decides to invoke available functions.
citations array Citations referencing source documents used in retrieval-augmented generation.
View JSON Schema on GitHub

JSON Schema

cohere-chat-message-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.cohere.com/schemas/cohere/chat-message.json",
  "title": "Cohere Chat Message",
  "description": "Represents a message in a Cohere Chat API conversation, including user prompts, assistant responses, system instructions, and tool results.",
  "type": "object",
  "required": ["role"],
  "properties": {
    "role": {
      "type": "string",
      "enum": ["user", "assistant", "system", "tool"],
      "description": "The role of the message author in the conversation. User messages are prompts, assistant messages are model responses, system messages set behavior, and tool messages return function results."
    },
    "content": {
      "type": "string",
      "description": "The text content of the message."
    },
    "tool_call_id": {
      "type": "string",
      "description": "The ID of the tool call this message is responding to. Required when role is tool."
    },
    "tool_calls": {
      "type": "array",
      "description": "Tool calls generated by the model when it decides to invoke available functions.",
      "items": {
        "$ref": "#/$defs/ToolCall"
      }
    },
    "citations": {
      "type": "array",
      "description": "Citations referencing source documents used in retrieval-augmented generation.",
      "items": {
        "$ref": "#/$defs/Citation"
      }
    }
  },
  "$defs": {
    "ToolCall": {
      "type": "object",
      "description": "A tool call generated by the model requesting execution of a specified function.",
      "required": ["id", "type", "function"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for this tool call."
        },
        "type": {
          "type": "string",
          "enum": ["function"],
          "description": "The type of tool call. Currently only function is supported."
        },
        "function": {
          "type": "object",
          "description": "The function to call with its arguments.",
          "required": ["name", "arguments"],
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the function to call."
            },
            "arguments": {
              "type": "string",
              "description": "The arguments to pass to the function, serialized as a JSON string."
            }
          }
        }
      }
    },
    "Citation": {
      "type": "object",
      "description": "A citation referencing source content used in generating a response.",
      "properties": {
        "start": {
          "type": "integer",
          "description": "The start index of the cited text span in the response.",
          "minimum": 0
        },
        "end": {
          "type": "integer",
          "description": "The end index of the cited text span in the response.",
          "minimum": 0
        },
        "text": {
          "type": "string",
          "description": "The cited text from the response."
        },
        "document_ids": {
          "type": "array",
          "description": "The IDs of the source documents referenced by this citation.",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}