Update module instance configuration on Sherlock CloudFerro Cloud

Use this endpoint to update the configuration of an existing Assistant API module instance.

A module instance belongs to a specific tenant and project. The request identifies the module instance through the path parameters and sends the new configuration in the JSON request body.

Prerequisites

Before updating an Assistant module instance configuration, make sure that you have:

  • Access to the Sherlock API.

  • An authentication token for the Authorization header.

  • The tenantId, projectId, and moduleId values for the module instance that you want to update.

  • An HTTP client such as curl or Postman.

Endpoint

PUT /assistant/v1/configuration/{tenantId}/{projectId}/modules/assistant/{moduleId}

The endpoint updates the configuration of an existing assistant module instance.

Path parameters

Name

In

Type

Required

Description

tenantId

path

string

Yes

Identifier of the tenant that owns the module instance.

projectId

path

string

Yes

Identifier of the project in which the module instance exists.

moduleId

path

string

Yes

Identifier of the Assistant module instance to update.

Request body

The request body must be sent as JSON.

Supported content type:

application/json

The request body contains the module instance metadata and the internal Assistant configuration.

{
  "configuration": {
    "agents": [
      "string"
    ],
    "generative_model_id": "mistralai/Mistral-Small-24B-Instruct-2501",
    "max_response_tokens": 0,
    "stream": false,
    "system_instruction": "string",
    "temperature": 1
  },
  "description": "string",
  "is_active": true,
  "name": "string"
}

Request body fields

The following fields can be used in the request body.

configuration

Object, required. Internal configuration of the Assistant module instance.

configuration.agents

Array of strings, not required. Uses agent CID format for validation. Represents a list of agent CIDs in the AGENT_ID@AGENT_CLASS format used for tool calling.

configuration.generative_model_id

String, required. Must be one of the supported model identifiers. Defines the LLM model used to generate responses for user queries.

configuration.max_response_tokens

Integer, not required. Minimum value: 100. Maximum value: 30000. Defines the maximum number of tokens in the response.

configuration.stream

Boolean, not required. Default: false. Defines whether the response is streamed or returned in one response.

configuration.system_instruction

String, not required. Maximum length: 2048 characters. Defines the instruction prepended to the user query.

configuration.temperature

Number, not required. Default: 1. Minimum value: 0. Maximum value: 2. Defines the temperature of the LLM model.

description

String, not required. Maximum length: 512 characters. Description of the module instance.

is_active

Boolean, not required. Defines whether the module instance is active.

name

String, not required. Minimum length: 1 character. Maximum length: 64 characters. Name of the module instance.

Supported generative models

The configuration.generative_model_id field can use one of the following model identifiers.

mistralai/Mistral-Small-24B-Instruct-2501
speakleash/Bielik-11B-v2.3-Instruct
mistralai/Pixtral-12B-2409
meta-llama/Llama-3.3-70B-Instruct
meta-llama/Llama-3.1-8B-Instruct
deepseek-ai/DeepSeek-R1-Distill-Llama-70B
CYFRAGOVPL/PLLuM-8x7B-chat
speakleash/Bielik-11B-v2.6-Instruct
openai/gpt-oss-120b
experimental/Bielik-11B-v2.6-Instruct
speakleash/Bielik-11B-v3.0-Instruct
VillanovaAI/Villanova-2B-2512-Preview-Apnea-FT
MiniMaxAI/MiniMax-M2.5

Successful response

A successful request returns status code 200.

200 Updated

The response body contains the updated module instance details.

{
  "properties": {
    "cid": {
      "description": "Concatenation \"<module_id>@<module_class>\" used as id in other modules (like conversation store)",
      "pattern": "^[0-9a-fA-F-]{36}@[a-zA-Z0-9_.-]+$",
      "type": "string"
    },
    "configuration": {
      "description": "Representation of internal module configuration",
      "additionalProperties": false,
      "properties": {
        "agents": {
          "description": "List of agent CIDs in format AGENT_ID@AGENT_CLASS for tool calling.",
          "items": {
            "format": "reference",
            "type": "string"
          },
          "title": "Agents",
          "type": "array"
        },
        "generative_model_id": {
          "description": "LLM model used to generate responses for user queries.",
          "enum": [
            "mistralai/Mistral-Small-24B-Instruct-2501",
            "speakleash/Bielik-11B-v2.3-Instruct",
            "mistralai/Pixtral-12B-2409",
            "meta-llama/Llama-3.3-70B-Instruct",
            "meta-llama/Llama-3.1-8B-Instruct",
            "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
            "CYFRAGOVPL/PLLuM-8x7B-chat",
            "speakleash/Bielik-11B-v2.6-Instruct",
            "speakleash/Bielik-11B-v2.6-Instruct",
            "openai/gpt-oss-120b",
            "experimental/Bielik-11B-v2.6-Instruct",
            "speakleash/Bielik-11B-v3.0-Instruct",
            "VillanovaAI/Villanova-2B-2512-Preview-Apnea-FT",
            "MiniMaxAI/MiniMax-M2.5"
          ],
          "title": "Generative model",
          "type": "string"
        },
        "max_response_tokens": {
          "description": "Maximum number of tokens in the response.",
          "maximum": 30000,
          "minimum": 100,
          "title": "Max response tokens",
          "type": "integer"
        },
        "stream": {
          "default": false,
          "description": "Whether to stream the response or send it in one go.",
          "title": "Stream",
          "type": "boolean"
        },
        "system_instruction": {
          "description": "Instruction to be prepended to the user query.",
          "format": "text",
          "maxLength": 2048,
          "title": "System instruction",
          "type": "string"
        },
        "temperature": {
          "default": 1,
          "description": "Temperature of the LLM model, low means more randomness, high means more focused.",
          "maximum": 2,
          "minimum": 0,
          "title": "Temperature",
          "type": "number"
        }
      },
      "required": [
        "generative_model_id"
      ],
      "type": "object",
      "title": "Configurator_AssistantConfiguration"
    },
    "created_date": {
      "format": "date-time",
      "pattern": "^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$",
      "type": "string"
    },
    "description": {
      "maxLength": 512,
      "type": "string"
    },
    "is_active": {
      "type": "boolean"
    },
    "kind": {
      "description": "Category of modules, each category can have many module classes (with many instances)",
      "examples": [
        "assistants"
      ],
      "maxLength": 32,
      "minLength": 1,
      "pattern": "^[a-zA-Z0-9_.-]+$",
      "type": "string",
      "title": "Configurator_ModuleKind"
    },
    "module_class": {
      "description": "Identifier of the module class",
      "examples": [
        "assistant"
      ],
      "maxLength": 32,
      "minLength": 1,
      "pattern": "^[a-zA-Z0-9_.-]+$",
      "type": "string",
      "title": "Configurator_ModuleClass"
    },
    "module_id": {
      "description": "Identifier of the module instance",
      "examples": [
        "4c205dfb-62e3-445c-84ff-c85ea744287a"
      ],
      "format": "uuid",
      "type": "string",
      "title": "Configurator_ModuleId"
    },
    "name": {
      "maxLength": 64,
      "minLength": 1,
      "type": "string"
    },
    "updated_date": {
      "format": "date-time",
      "pattern": "^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$",
      "type": "string"
    }
  },
  "required": [
    "module_id",
    "module_class",
    "cid",
    "kind",
    "name",
    "is_active",
    "configuration",
    "created_date",
    "updated_date"
  ],
  "type": "object",
  "title": "Configurator_AssistantModuleInstanceDetails"
}

Successful response fields

The following fields are returned in a successful response.

module_id

String, required. Identifier of the module instance. The value is returned as a UUID.

module_class

String, required. Identifier of the module class. For this endpoint, the expected module class is assistant.

cid

String, required. Concatenation of module_id and module_class in the <module_id>@<module_class> format.

kind

String, required. Category of modules. For Assistant modules, the expected category is assistants.

name

String, required. Name of the module instance.

description

String, not required. Description of the module instance.

is_active

Boolean, required. Defines whether the module instance is active.

configuration

Object, required. Internal Assistant module configuration.

created_date

String, required. Date and time when the module instance was created.

updated_date

String, required. Date and time when the module instance was last updated.

Error responses

The endpoint can return the following error responses. Error response bodies are returned as strings with error details.

Status code

Status

Response body

400

Bad request

String with error details.

404

Not found

String with error details.

500

Internal error

String with error details.

Example request

The following example updates an Assistant module instance configuration.

Replace <api-endpoint>, {tenantId}, {projectId}, {moduleId}, and <token> with values from your environment.

curl -X PUT \
  "https://<api-endpoint>/assistant/v1/configuration/{tenantId}/{projectId}/modules/assistant/{moduleId}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "configuration": {
      "agents": [
        "string"
      ],
      "generative_model_id": "mistralai/Mistral-Small-24B-Instruct-2501",
      "max_response_tokens": 1000,
      "stream": false,
      "system_instruction": "You are a helpful assistant.",
      "temperature": 1
    },
    "description": "Assistant module instance",
    "is_active": true,
    "name": "Assistant"
  }'

If the request succeeds, the API returns the updated module instance details with status code 200.

What to do next

After updating the module instance configuration, retrieve the module instance details or run a test conversation to verify that the new configuration is applied.

Still need help?
If this article doesn’t answer all of your questions, our support team will do their best to help you.
Contact support