Syllable Agents API

Operations related to agent configuration. When a user interacts with the Syllable system, they do so by communicating with an agent. An agent is linked to a prompt, a custom message, and one or more channel targets to define its behavior and capabilities. For more information, see [Console docs](https://docs.syllable.ai/workspaces/Agents).

OpenAPI Specification

syllable-agents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Agents API
  description: "\n# Syllable Platform SDK\n\nSyllable SDK gives you the power of awesome AI agentry. \U0001F680\n\n## Overview\n\nThe Syllable SDK provides a comprehensive set of tools and APIs to integrate powerful AI\ncapabilities into your communication applications. Whether you're building phone agents, chatbots,\nvirtual assistants, or any other AI-driven solutions, Syllable SDK has got you covered.\n\n## Features\n\n- **Agent Configuration**: Create and manage agents that can interact with users across various \nchannels.\n- **Channel Management**: Configure channels like SMS, web chat, and more to connect agents with \nusers.\n- **Custom Messages**: Set up custom messages that agents can deliver as greetings or responses.\n- **Conversations**: Track and manage conversations between users and agents, including session \nmanagement.\n- **Tools and Workflows**: Leverage tools and workflows to enhance agent capabilities, such as data \nprocessing and API calls.\n- **Data Sources**: Integrate data sources to provide agents with additional context and \ninformation.\n- **Insights and Analytics**: Analyze conversations and sessions to gain insights into user \ninteractions.\n- **Permissions and Security**: Manage permissions to control access to various features and \nfunctionalities.\n- **Language Support**: Define language groups to enable multilingual support for agents.\n- **Outbound Campaigns**: Create and manage outbound communication campaigns to reach users \neffectively.\n- **Session Labels**: Label sessions with evaluations of quality and descriptions of issues \nencountered.\n- **Incident Management**: Track and manage incidents related to agent interactions.\n"
  version: 0.0.3
servers:
- url: https://api.syllable.cloud
  description: API server
tags:
- name: agents
  description: Operations related to agent configuration. When a user interacts with the           Syllable system, they do so by communicating with an agent.           An agent is linked to a prompt, a custom message, and one or more channel targets to           define its behavior and capabilities. For more information, see           [Console docs](https://docs.syllable.ai/workspaces/Agents).
paths:
  /api/v1/agents/:
    get:
      tags:
      - agents
      summary: Agent List
      description: List the existing agents
      operationId: agent_list
      security:
      - APIKeyHeader: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: The page number from which to start (0-based)
          examples:
          - 0
          default: 0
          title: Page
        description: The page number from which to start (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: The maximum number of items to return
          examples:
          - 25
          default: 25
          title: Limit
        description: The maximum number of items to return
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/AgentProperties'
          description: String names of fields to search. Correspond by index to search field values
          examples:
          - name
          default: []
          title: Search Fields
        description: String names of fields to search. Correspond by index to search field values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
          examples:
          - Some Object Name
          default: []
          title: Search Field Values
        description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/AgentProperties'
          - type: 'null'
          description: The field whose value should be used to order the results
          examples:
          - name
          title: Order By
        description: The field whose value should be used to order the results
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: The direction in which to order the results
          title: Order By Direction
        description: The direction in which to order the results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/AgentProperties'
          - type: 'null'
          description: The fields to include in the response
          default: []
          title: Fields
        description: The fields to include in the response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The start datetime for filtering results
          examples:
          - '2023-01-01T00:00:00Z'
          title: Start Datetime
        description: The start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The end datetime for filtering results
          examples:
          - '2024-01-01T00:00:00Z'
          title: End Datetime
        description: The end datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_AgentResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.list(page=0, limit=25, search_fields=[\n        models.AgentProperties.NAME,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.list({\n    page: 0,\n    searchFields: [\n      \"name\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    post:
      tags:
      - agents
      summary: Create Agent
      description: Create a new agent
      operationId: agent_create
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentCreate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentResponse'
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.create(request={\n        \"name\": \"Weather agent\",\n        \"description\": \"Agent for answering questions about weather.\",\n        \"labels\": [\n            \"Information\",\n            \"Weather\",\n        ],\n        \"type\": \"ca_v1\",\n        \"prompt_id\": 1,\n        \"prompt_version_number\": 3,\n        \"custom_message_id\": 1,\n        \"language_group_id\": 1,\n        \"bridge_phrases_id\": 1,\n        \"timezone\": \"America/New_York\",\n        \"prompt_tool_defaults\": [\n            {\n                \"tool_name\": \"get_weather\",\n                \"default_values\": [\n                    {\n                        \"field_name\": \"temperature_unit\",\n                        \"default_value\": \"fahrenheit\",\n                    },\n                ],\n            },\n        ],\n        \"variables\": {\n            \"vars.location_name\": \"Main Street Pizza\",\n        },\n        \"tool_headers\": {\n            \"some-header\": \"some-value\",\n        },\n        \"stt_provider\": models.AgentSttProvider.GOOGLE_STT_V2_CHIRP_2_,\n        \"wait_sound\": models.AgentWaitSound.NO_SOUND,\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.create({\n    name: \"Weather agent\",\n    description: \"Agent for answering questions about weather.\",\n    labels: [\n      \"Information\",\n      \"Weather\",\n    ],\n    type: \"ca_v1\",\n    promptId: 1,\n    promptVersionNumber: 3,\n    customMessageId: 1,\n    languageGroupId: 1,\n    bridgePhrasesId: 1,\n    timezone: \"America/New_York\",\n    promptToolDefaults: [\n      {\n        toolName: \"get_weather\",\n        defaultValues: [\n          {\n            fieldName: \"temperature_unit\",\n            defaultValue: \"fahrenheit\",\n          },\n        ],\n      },\n    ],\n    variables: {\n      \"vars.location_name\": \"Main Street Pizza\",\n    },\n    toolHeaders: {\n      \"some-header\": \"some-value\",\n    },\n    sttProvider: \"Google STT V2 (Chirp 2)\",\n    waitSound: \"No Sound\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - agents
      summary: Update Agent
      description: Update an existing agent
      operationId: agent_update
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentResponse'
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.update(request={\n        \"name\": \"Weather agent\",\n        \"description\": \"Agent for answering questions about weather.\",\n        \"labels\": [\n            \"Information\",\n            \"Weather\",\n        ],\n        \"type\": \"ca_v1\",\n        \"prompt_id\": 1,\n        \"prompt_version_number\": 3,\n        \"custom_message_id\": 1,\n        \"language_group_id\": 1,\n        \"bridge_phrases_id\": 1,\n        \"timezone\": \"America/New_York\",\n        \"prompt_tool_defaults\": [\n            {\n                \"tool_name\": \"get_weather\",\n                \"default_values\": [\n                    {\n                        \"field_name\": \"temperature_unit\",\n                        \"default_value\": \"fahrenheit\",\n                    },\n                ],\n            },\n        ],\n        \"variables\": {\n            \"vars.location_name\": \"Main Street Pizza\",\n        },\n        \"tool_headers\": {\n            \"some-header\": \"some-value\",\n        },\n        \"stt_provider\": models.AgentSttProvider.GOOGLE_STT_V2_CHIRP_2_,\n        \"wait_sound\": models.AgentWaitSound.NO_SOUND,\n        \"id\": 1,\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.update({\n    name: \"Weather agent\",\n    description: \"Agent for answering questions about weather.\",\n    labels: [\n      \"Information\",\n      \"Weather\",\n    ],\n    type: \"ca_v1\",\n    promptId: 1,\n    promptVersionNumber: 3,\n    customMessageId: 1,\n    languageGroupId: 1,\n    bridgePhrasesId: 1,\n    timezone: \"America/New_York\",\n    promptToolDefaults: [\n      {\n        toolName: \"get_weather\",\n        defaultValues: [\n          {\n            fieldName: \"temperature_unit\",\n            defaultValue: \"fahrenheit\",\n          },\n        ],\n      },\n    ],\n    variables: {\n      \"vars.location_name\": \"Main Street Pizza\",\n    },\n    toolHeaders: {\n      \"some-header\": \"some-value\",\n    },\n    sttProvider: \"Google STT V2 (Chirp 2)\",\n    waitSound: \"No Sound\",\n    id: 1,\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/agents/labels:
    get:
      tags:
      - agents
      summary: List Active Agent Labels
      description: List all distinct labels in use across active agents.
      operationId: agent_list_active_labels
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response Agent List Active Labels
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.agent_list_active_labels()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.agentListActiveLabels();\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/agents/{agent_id}:
    get:
      tags:
      - agents
      summary: Get Agent By Id
      description: Get an agent by ID.
      operationId: agent_get_by_id
      security:
      - APIKeyHeader: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: integer
          title: Agent Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.get_by_id(agent_id=910445)\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.getById({\n    agentId: 910445,\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - agents
      summary: Delete Agent
      operationId: agent_delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: integer
          title: Agent Id
      - name: reason
        in: query
        required: true
        schema:
          type: string
          title: Reason
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.delete(agent_id=78115, reason=\"<value>\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.delete({\n    agentId: 78115,\n    reason: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/agents/voices/available:
    get:
      tags:
      - agents
      summary: Get Available Agent Voices
      description: Get available agent voices.
      operationId: agent_get_available_voices
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AgentVoice'
                type: array
                title: Response Agent Get Available Voices
      security:
      - APIKeyHeader: []
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.agents.agent_get_available_voices()\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.agents.agentGetAvailableVoices();\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    InputParameter:
      properties:
        name:
          type: string
          title: Name
          description: The name of the property.
        type:
          anyOf:
          - type: string
            enum:
            - string
            - number
            - integer
            - boolean
            - object
            - array
            - 'null'
          - type: 'null'
          title: Type
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        format:
          anyOf:
          - type: string
          - type: 'null'
          title: Format
        pattern:
          anyOf:
          - type: string
          - type: 'null'
          title: Pattern
        enum:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Enum
        examples:
          anyOf:
          - items:
              $ref: '#/components/schemas/JsonValue'
            type: array
          - type: 'null'
          title: Examples
        required:
          type: boolean
          title: Required
          default: true
      type: object
      required:
      - name
      title: InputParameter
    CallAction:
      properties:
        if:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/CelExpression'
            - $ref: '#/components/schemas/JMESPathExpression'
            discriminator:
              propertyName: type
              mapping:
                cel: '#/components/schemas/CelExpression'
                jmespath: '#/components/schemas/JMESPathExpression'
                jp: '#/components/schemas/JMESPathExpression'
          - $ref: '#/components/schemas/CaseExpression'
          - type: string
          - type: 'null'
          title: If
          description: 'Condition to decide whether this item executes. Supported expression forms: (1) JMESPath string (default for plain strings), (2) typed JMESPath object {"type":"jp"|"jmespath","expression":"..."}, or (3) typed CEL object {"type":"cel","expression":"..."}. Example JMESPath string: "inputs.can_sign_consent == `true`".'
          examples:
          - inputs.can_sign_consent == `true`
          - expression: inputs.can_sign_consent == `true`
            type: jp
          - expression: inputs.can_sign_consent == true
            type: cel
        action:
          type: string
          const: call
          title: Action
          default: call
        name:
          type: string
          title: Name
          description: The name of the tool to call.
        arguments:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/JsonValue'
            type: object
          - type: 'null'
          title: Arguments
          description: Optional arguments to pass to the tool (supports template strings)
        result:
          anyOf:
          - $ref: '#/components/schemas/CallResult'
          - type: 'null'
          description: Optional deterministic result-capture configuration. When present, selected fields from the tool response are saved into workflow state, so later transitions/conditions/validations can branch on them without the model re-deriving them from tool call history. Currently applied only when the call is routed in inject mode (arguments already complete); hinted/routed calls are not yet supported.
      type: object
      required:
      - name
      title: CallAction
    LanguageGroupAgentInfo:
      properties:
        id:
          type: integer
          title: Id
          description: The ID of the agent
          examples:
          - 1
        name:
          type: string
          title: Name
          description: The name of the agent
          examples:
          - Test Agent
      type: object
      required:
      - id
      - name
      title: LanguageGroupAgentInfo
      description: Information about an agent linked to a language group.
    ToolArgumentLocation:
      type: string
      enum:
      - body
      - form
      - path
      - query
      title: ToolArgumentLocation
      description: 'The location of the argument in a tool HTTP request.

        ''body'' is used for JSON data in the POST request body.

        ''form'' is used for form data in the POST request body.

        ''path'' is used for URL path parameters.

        ''query'' is used for query parameters in the URL.'
    NextStep:
      properties:
        if:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/CelExpression'
            - $ref: '#/components/schemas/JMESPathExpression'
            discriminator:
              propertyName: type
              mapping:
                cel: '#/components/schemas/CelExpression'
                jmespath: '#/components/schemas/JMESPathExpression'
                jp: '#/components/schemas/JMESPathExpression'
          - $ref: '#/components/schemas/CaseExpression'
          - type: string
          - type: 'null'
          title: If
          description: 'Condition to decide whether this item executes. Supported expression forms: (1) JMESPath string (default for plain strings), (2) typed JMESPath object {"type":"jp"|"jmespath","expression":"..."}, or (3) typed CEL object {"type":"cel","expression":"..."}. Example JMESPath string: "inputs.can_sign_consent == `true`".'
          examples:
          - inputs.can_sign_consent == `true`
          - expression: inputs.can_sign_consent == `true`
            type: jp
          - expression: inputs.can_sign_consent == true
            type: cel
        id:
          type: string
          title: Id
          description: The identifier of the next step.
        requires:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Requires
          description: List of input field names required for this transition. Validates that specified inputs are collected before allowing transition.
      type: object
      required:
      - id
      title: NextStep
      description: Represents a conditional transition to the next step.
    ToolParameterDefault:
      properties:
        transform:
          $ref: '#/components/schemas/ToolParameterTransform'
          description: The transform to apply to the value before using it as the default.
          examples: []
      type: object
      required:
      - transform
      title: ToolParameterDefault
      description: The default value for a parameter of a tool call.
    ToolParameterTransformCondition:
      properties:
        key:
          type: string
          title: Key
          description: The name of the parameter to check.
          examples:
          - key
        value:
          type: string
          title: Value
          description: The value to check against the parameter.
          examples:
          - value
        operator:
          anyOf:
          - type: string
            const: eq
          - type: 'null'
          title: Operator
          description: The operator to use for the comparison. Currently only supports "eq"
          default: eq
          examples:
          - eq
      type: object
      required:
      - key
      - value
      title: ToolParameterTransformCondition
      description: A condition to be met for a transform to be applied to the value of a tool parameter.
    PromptLlmConfig:
      properties:
        provider:
          $ref: '#/components/schemas/PromptLlmProvider'
          description: Provider of the LLM model.
          default: azure_openai
          examples:
          - anthropic
          - azure_openai
          - google
          - openai
        model:
          type: string
          title: Model
          description: Name of the model. Must match the deployment name in Azure AI Studio.
          default: gpt-4o
          examples:
          - gpt-4o
        version:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
          description: Deprecated model version. This value is ignored and resolved automatically.
          deprecated: true
          examples:
          - '2024-05-13'
        api_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Version
          description: Version of the provider's API.
          examples:
          - '2024-06-01'
        temperature:
          anyOf:
          - type: number
          - type: 'null'
          title: Temperature
          description: Temperature parameter for the model. Determines randomness of responses - higher is more random, lower is more focused. Must be between 0.0 and 2.0, inclusive.
          examples:
          - 1.0
        seed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Seed
          description: Controls the reproducibility of the job. The LLM will give the same or similar responses given the same inputs in multiple conversations with the same seed.
          examples:
          - 123
      type: object
      title: PromptLlmConfig
      description: LLM configuration for a prompt.
    AgentLanguage:
      properties:
        name:
          type: string
          title: Name
          description: Name of the language
          examples:
          - English
        code:
          $ref: '#/components/schemas/LanguageCode'
          description: BCP 47 code of the language
          examples:
          - en-US
      type: object
      required:
      - name
      - code
      title: AgentLanguage
      description: Language option for an agent.
    AgentVoice:
      properties:
        provider:
          $ref: '#/components/schemas/TtsProvider'
          description: The provider for the voice
          examples:
          - OpenAI
        display_name:
          $ref: '#/components/schemas/AgentVoiceDisplayName'
          description: The display name of the voice
          examples:
          - Alloy
        var_name:
          $ref: '#/components/schemas/AgentVoiceVarName'
          description: The variable name of the voice (used when processing messages)
          deprecated: true
          examples:
          - openai:alloy
        gender:
          $ref: '#/components/schemas/AgentVoiceGender'
          description: The gender of the voice
          examples:
          - male
        model:
          $ref: '#/components/schemas/AgentVoiceModel'
          description: The model of the voice
          examples:
          - tts-1
        supported_languages:
          items:
            $ref: '#/components/schemas/AgentLanguage'
          type: array
          title: Supported Languages
          description: Languages supported by the voice
          examples:
          - code: en-US
            name: English
        deprecated:
          type: boolean
          title: Deprecated
          description: Whether the voice is deprecated and should not be used
          examples:
          - false
      type: object
      required:
      - provider
      - display_name
      - var_name
      - gender
      - model
      - supported_languages
      - deprecated
      title: AgentVoice
      description: Voice option for an agent.
    ToolParameterTransform:
      properties:
        action:
          type: string
          enum:
          - default
          - override
          - remove
          title: Action
          description: 'The action to perform on the tool parameter value: `default` means only set the value (using the `format` field) if the parameter doesn''t exist or is empty, `override` means always set the value," and `remove` means "remove the parameter value."'
          default: default
          examples: []
        when:
          anyOf:
          - $ref: '#/components/schemas/ToolParameterTransformCondition'
          - type: 'null'
          description: Only apply the transform if the condition is met.
          examples: []
        value:
          anyOf:
          - {}
          - type: 'null'
          title: Value
          description: The default value to use for t

# --- truncated at 32 KB (145 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/syllable/refs/heads/main/openapi/syllable-agents-api-openapi.yml