Skip to main content
Glama
avaazquezz

io.github.avaazquezz/mcp-qdrant

by avaazquezz

qdrant_collection_update

Idempotent

Update optimizer, HNSW, collection, and existing vector parameters on a Qdrant collection. Change only the fields you pass; omitted settings keep their current values.

Instructions

Update optimizer/HNSW/collection/vector params on an existing collection.

    Only the fields you pass are changed; omitted ones keep their current
    value. `quantization_config="disabled"` turns quantization off.
    `vectors_config`/`sparse_vectors_config` only **adjust** named
    vectors that already exist (HNSW/quantization/index tuning) — they
    cannot add a new one; use `qdrant_collection_vector_create` for
    that, or this fails with Qdrant's own "Not existing vector name"
    error. Fails with a clear error if the collection doesn't exist.

    Example: {"collection_name": "docs", "optimizers_config": {"indexing_threshold": 10000}}
    

Input Schema

NameRequiredDescriptionDefault
hnsw_configNo
vectors_configNo
collection_nameYes
collection_paramsNo
optimizers_configNo
strict_mode_configNo
quantization_configNo
sparse_vectors_configNo

Output Schema

NameRequiredDescriptionDefault
configYesCurrent statistics and configuration of the collection
statusYesCurrent statistics and configuration of the collection
warningsNoWarnings related to the collection
points_countNoApproximate number of points (vectors + payloads) in collection. Each point could be accessed by unique id.
update_queueNoUpdate queue info
payload_schemaYesTypes of stored payload
segments_countYesNumber of segments in collection. Each segment has independent vector as payload indexes
optimizer_statusYesCurrent statistics and configuration of the collection
indexed_vectors_countNoApproximate number of indexed vectors in the collection. Indexed vectors in large segments are faster to query, as it is stored in a specialized vector index.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv2.6.0
    • removedInput schema / $defs
      Removed value: -{
      -  "BinaryQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "binary": {
      -        "$ref": "#/$defs/BinaryQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "binary"
      -    ],
      -    "title": "BinaryQuantization",
      -    "type": "object"
      -  },
      -  "BinaryQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "encoding": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/BinaryQuantizationEncoding"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      },
      -      "query_encoding": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/BinaryQuantizationQueryEncoding"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance."
      -      }
      -    },
      -    "title": "BinaryQuantizationConfig",
      -    "type": "object"
      -  },
      -  "BinaryQuantizationEncoding": {
      -    "enum": [
      -      "one_bit",
      -      "two_bits",
      -      "one_and_half_bits"
      -    ],
      -    "title": "BinaryQuantizationEncoding",
      -    "type": "string"
      -  },
      -  "BinaryQuantizationQueryEncoding": {
      -    "enum": [
      -      "default",
      -      "binary",
      -      "scalar4bits",
      -      "scalar8bits"
      -    ],
      -    "title": "BinaryQuantizationQueryEncoding",
      -    "type": "string"
      -  },
      -  "CollectionParamsDiff": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "on_disk_payload": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `payload.memory` instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.",
      -        "title": "On Disk Payload"
      -      },
      -      "payload": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/PayloadStorageParams"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Update params of the payload storage. If none - it is left unchanged."
      -      },
      -      "read_fan_out_delay_ms": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Delay in milliseconds before sending read requests to remote nodes",
      -        "title": "Read Fan Out Delay Ms"
      -      },
      -      "read_fan_out_factor": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Fan-out every read request to these many additional remote nodes (and return first available response)",
      -        "title": "Read Fan Out Factor"
      -      },
      -      "replication_factor": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of replicas for each shard",
      -        "title": "Replication Factor"
      -      },
      -      "write_consistency_factor": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Minimal number successful responses from replicas to consider operation successful",
      -        "title": "Write Consistency Factor"
      -      }
      -    },
      -    "title": "CollectionParamsDiff",
      -    "type": "object"
      -  },
      -  "CompressionRatio": {
      -    "enum": [
      -      "x4",
      -      "x8",
      -      "x16",
      -      "x32",
      -      "x64"
      -    ],
      -    "title": "CompressionRatio",
      -    "type": "string"
      -  },
      -  "Datatype": {
      -    "enum": [
      -      "float32",
      -      "uint8",
      -      "float16",
      -      "turbo4"
      -    ],
      -    "title": "Datatype",
      -    "type": "string"
      -  },
      -  "Disabled": {
      -    "enum": [
      -      "Disabled"
      -    ],
      -    "title": "Disabled",
      -    "type": "string"
      -  },
      -  "HnswConfigDiff": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ef_construct": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.",
      -        "title": "Ef Construct"
      -      },
      -      "full_scan_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than `full_scan_threshold_kb`, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256",
      -        "title": "Full Scan Threshold"
      -      },
      -      "inline_storage": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.",
      -        "title": "Inline Storage"
      -      },
      -      "m": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.",
      -        "title": "M"
      -      },
      -      "max_indexing_threads": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs. On small CPUs, less threads are used.",
      -        "title": "Max Indexing Threads"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the HNSW graph. Overrides the deprecated `on_disk` flag if both are set. Default: `cached` (`cold` if `on_disk` is set to true)."
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false",
      -        "title": "On Disk"
      -      },
      -      "payload_m": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom M param for additional payload-aware HNSW links. If not set, default M will be used.",
      -        "title": "Payload M"
      -      }
      -    },
      -    "title": "HnswConfigDiff",
      -    "type": "object"
      -  },
      -  "MaxOptimizationThreadsSetting": {
      -    "enum": [
      -      "auto"
      -    ],
      -    "title": "MaxOptimizationThreadsSetting",
      -    "type": "string"
      -  },
      -  "Memory": {
      -    "description": "Memory placement of a component's data.  Data is always persisted on disk regardless of this setting; it only controls how the data is held in RAM.  Options:  * `Cold` - Data is not pre-loaded from disk to RAM. Preferred for rarely queried components or components larger than RAM size. First request might be slow, but data is cached with usage.  * `Cached` - Data is pre-loaded into disk-cache RAM on start. First request is fast, but data may be evicted if there is not enough memory and some other component's data is used more frequently.  * `Pinned` - Data is loaded in RAM and never evicted. First request is fast, but the component must fit in RAM at all times. Recommended for frequently queried small components like quantized vectors or primary indexes.",
      -    "enum": [
      -      "cold",
      -      "cached",
      -      "pinned"
      -    ],
      -    "title": "Memory",
      -    "type": "string"
      -  },
      -  "Modifier": {
      -    "description": "If used, include weight modification, which will be applied to sparse vectors at query time: None - no modification (default) Idf - inverse document frequency, based on statistics of the collection",
      -    "enum": [
      -      "none",
      -      "idf"
      -    ],
      -    "title": "Modifier",
      -    "type": "string"
      -  },
      -  "OptimizersConfigDiff": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "default_segment_number": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS  It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads If `default_segment_number = 0`, will be automatically selected by the number of available CPUs",
      -        "title": "Default Segment Number"
      -      },
      -      "deleted_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "The minimal fraction of deleted vectors in a segment, required to perform segment optimization",
      -        "title": "Deleted Threshold"
      -      },
      -      "flush_interval_sec": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Minimum interval between forced flushes.",
      -        "title": "Flush Interval Sec"
      -      },
      -      "indexing_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing  Default value is 20,000, based on <https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md>.  To disable vector indexing, set to `0`.  Note: 1kB = 1 vector of size 256.",
      -        "title": "Indexing Threshold"
      -      },
      -      "max_optimization_threads": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "$ref": "#/$defs/MaxOptimizationThreadsSetting"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use `max_indexing_threads` threads by itself for index building. If "auto" - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.",
      -        "title": "Max Optimization Threads"
      -      },
      -      "max_segment_size": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Do not create segments larger this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.  If indexation speed have more priority for your - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256",
      -        "title": "Max Segment Size"
      -      },
      -      "memmap_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.  Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.  To disable memmap storage, set this to `0`.  Note: 1Kb = 1 vector of size 256  Deprecated since Qdrant 1.15.0",
      -        "title": "Memmap Threshold"
      -      },
      -      "prevent_unoptimized": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as 'deferred points': they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with `wait=true` will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with `wait=false` are not affected. Default is disabled.",
      -        "title": "Prevent Unoptimized"
      -      },
      -      "vacuum_min_vector_number": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "The minimal number of vectors in a segment, required to perform segment optimization",
      -        "title": "Vacuum Min Vector Number"
      -      }
      -    },
      -    "title": "OptimizersConfigDiff",
      -    "type": "object"
      -  },
      -  "PayloadStorageParams": {
      -    "additionalProperties": false,
      -    "description": "Params of the payload storage",
      -    "properties": {
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the payload storage. Overrides the deprecated `on_disk_payload` flag if both are set. `pinned` is not supported for payload storage. Default: `cold` (`cached` if `on_disk_payload` is set to false)."
      -      }
      -    },
      -    "title": "PayloadStorageParams",
      -    "type": "object"
      -  },
      -  "ProductQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "product": {
      -        "$ref": "#/$defs/ProductQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "product"
      -    ],
      -    "title": "ProductQuantization",
      -    "type": "object"
      -  },
      -  "ProductQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "compression": {
      -        "$ref": "#/$defs/CompressionRatio",
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      }
      -    },
      -    "required": [
      -      "compression"
      -    ],
      -    "title": "ProductQuantizationConfig",
      -    "type": "object"
      -  },
      -  "ScalarQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "scalar": {
      -        "$ref": "#/$defs/ScalarQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "scalar"
      -    ],
      -    "title": "ScalarQuantization",
      -    "type": "object"
      -  },
      -  "ScalarQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage",
      -        "title": "Always Ram"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      },
      -      "quantile": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values",
      -        "title": "Quantile"
      -      },
      -      "type": {
      -        "$ref": "#/$defs/ScalarType",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "type"
      -    ],
      -    "title": "ScalarQuantizationConfig",
      -    "type": "object"
      -  },
      -  "ScalarType": {
      -    "enum": [
      -      "int8"
      -    ],
      -    "title": "ScalarType",
      -    "type": "string"
      -  },
      -  "SparseIndexParams": {
      -    "additionalProperties": false,
      -    "description": "Configuration for sparse inverted index.",
      -    "properties": {
      -      "datatype": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Datatype"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Defines which datatype should be used for the index. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.  - For `float32` datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For `float16` datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For `uint8` datatype - vectors are quantized to unsigned 8-bit integers, 1 byte. Quantization to fit byte range `[0, 255]` happens during indexing automatically, so the actual vector data does not need to conform to this range."
      -      },
      -      "full_scan_threshold": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "We prefer a full scan search upto (excluding) this number of vectors.  Note: this is number of vectors, not KiloBytes.",
      -        "title": "Full Scan Threshold"
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the index. Overrides the deprecated `on_disk` flag if both are set. Default: `pinned` (`cold` if `on_disk` is set to true)."
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. Store index on disk. If set to false, the index will be stored in RAM. Default: false",
      -        "title": "On Disk"
      -      }
      -    },
      -    "title": "SparseIndexParams",
      -    "type": "object"
      -  },
      -  "SparseVectorParams": {
      -    "additionalProperties": false,
      -    "description": "Params of single sparse vector data storage",
      -    "properties": {
      -      "index": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/SparseIndexParams"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Custom params for index. If none - values from collection configuration are used."
      -      },
      -      "modifier": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Modifier"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Configures addition value modifications for sparse vectors. Default: none"
      -      }
      -    },
      -    "title": "SparseVectorParams",
      -    "type": "object"
      -  },
      -  "StrictModeConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "condition_max_size": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a condition, eg. items in `MatchAny`.",
      -        "title": "Condition Max Size"
      -      },
      -      "enabled": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Whether strict mode is enabled for a collection or not.",
      -        "title": "Enabled"
      -      },
      -      "filter_max_conditions": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max conditions a filter can have.",
      -        "title": "Filter Max Conditions"
      -      },
      -      "max_collection_payload_size_bytes": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a collections payload storage in bytes",
      -        "title": "Max Collection Payload Size Bytes"
      -      },
      -      "max_collection_vector_size_bytes": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max size of a collections vector storage in bytes, ignoring replicas.",
      -        "title": "Max Collection Vector Size Bytes"
      -      },
      -      "max_payload_index_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of payload indexes in a collection",
      -        "title": "Max Payload Index Count"
      -      },
      -      "max_points_count": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of points estimated in a collection",
      -        "title": "Max Points Count"
      -      },
      -      "max_query_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max allowed `limit` parameter for all APIs that don't have their own max limit.",
      -        "title": "Max Query Limit"
      -      },
      -      "max_resident_memory_percent": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use the node-wide quota config (`PUT /quotas`) instead, which caps the same resource for every collection. Scheduled for removal in 1.21.  Reject memory-consuming update operations (e.g. upsert, set payload) when the process resident memory exceeds this percentage of total system memory (or cgroup limit). Value in [1, 100]. Memory is a node-wide resource, so this only tightens the quota for one collection; it cannot lift it. Delete operations are not affected, so callers can still free memory.",
      -        "title": "Max Resident Memory Percent"
      -      },
      -      "max_timeout": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max allowed `timeout` parameter.",
      -        "title": "Max Timeout"
      -      },
      -      "multivector_config": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {
      -              "$ref": "#/$defs/StrictModeMultivector"
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Multivector strict mode configuration",
      -        "title": "Multivector Config"
      -      },
      -      "read_rate_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of read operations per minute per replica",
      -        "title": "Read Rate Limit"
      -      },
      -      "search_allow_exact": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Whether exact search is allowed.",
      -        "title": "Search Allow Exact"
      -      },
      -      "search_max_batchsize": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max batchsize when searching",
      -        "title": "Search Max Batchsize"
      -      },
      -      "search_max_hnsw_ef": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max HNSW ef value allowed in search parameters.",
      -        "title": "Search Max Hnsw Ef"
      -      },
      -      "search_max_oversampling": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max oversampling value allowed in search.",
      -        "title": "Search Max Oversampling"
      -      },
      -      "sparse_config": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {
      -              "$ref": "#/$defs/StrictModeSparse"
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Sparse vector strict mode configuration",
      -        "title": "Sparse Config"
      -      },
      -      "unindexed_filtering_retrieve": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Allow usage of unindexed fields in retrieval based (e.g. search) filters.",
      -        "title": "Unindexed Filtering Retrieve"
      -      },
      -      "unindexed_filtering_update": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Allow usage of unindexed fields in filtered updates (e.g. delete by payload).",
      -        "title": "Unindexed Filtering Update"
      -      },
      -      "upsert_max_batchsize": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max batchsize when upserting",
      -        "title": "Upsert Max Batchsize"
      -      },
      -      "write_rate_limit": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of write operations per minute per replica",
      -        "title": "Write Rate Limit"
      -      }
      -    },
      -    "title": "StrictModeConfig",
      -    "type": "object"
      -  },
      -  "StrictModeMultivector": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "max_vectors": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max number of vectors in a multivector",
      -        "title": "Max Vectors"
      -      }
      -    },
      -    "title": "StrictModeMultivector",
      -    "type": "object"
      -  },
      -  "StrictModeSparse": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "max_length": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Max length of sparse vector",
      -        "title": "Max Length"
      -      }
      -    },
      -    "title": "StrictModeSparse",
      -    "type": "object"
      -  },
      -  "TurboQuantBitSize": {
      -    "enum": [
      -      "bits1",
      -      "bits1_5",
      -      "bits2",
      -      "bits4"
      -    ],
      -    "title": "TurboQuantBitSize",
      -    "type": "string"
      -  },
      -  "TurboQuantQuantizationConfig": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "always_ram": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead.",
      -        "title": "Always Ram"
      -      },
      -      "bits": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/TurboQuantBitSize"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": ""
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of quantized vectors. Overrides the deprecated `always_ram` flag if both are set. Default: follow the memory placement of the original vector storage."
      -      }
      -    },
      -    "title": "TurboQuantQuantizationConfig",
      -    "type": "object"
      -  },
      -  "TurboQuantization": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "turbo": {
      -        "$ref": "#/$defs/TurboQuantQuantizationConfig",
      -        "description": ""
      -      }
      -    },
      -    "required": [
      -      "turbo"
      -    ],
      -    "title": "TurboQuantization",
      -    "type": "object"
      -  },
      -  "VectorParamsDiff": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "hnsw_config": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/HnswConfigDiff"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Update params for HNSW index. If empty object - it will be unset."
      -      },
      -      "memory": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Memory"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Memory placement of the original vector storage. Overrides the deprecated `on_disk` flag if both are set. `pinned` is not supported for dense vector storage."
      -      },
      -      "on_disk": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Deprecated: use `memory` instead. If true, vectors are served from disk, improving RAM usage at the cost of latency",
      -        "title": "On Disk"
      -      },
      -      "quantization_config": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/ScalarQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/ProductQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/BinaryQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/TurboQuantization"
      -          },
      -          {
      -            "$ref": "#/$defs/Disabled"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Update params for quantization. If none - it is left unchanged.",
      -        "title": "Quantization Config"
      -      }
      -    },
      -    "title": "VectorParamsDiff",
      -    "type": "object"
      -  }
      -}
    • changedInput schema / properties / collection_params / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/CollectionParamsDiff"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "on_disk_payload": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "payload": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "memory": {
      +                "anyOf": [
      +                  {
      +                    "enum": [
      +                      "cold",
      +                      "cached",
      +                      "pinned"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "read_fan_out_delay_ms": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "read_fan_out_factor": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "replication_factor": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "write_consistency_factor": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / hnsw_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/HnswConfigDiff"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ef_construct": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "full_scan_threshold": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "inline_storage": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "m": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_indexing_threads": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "memory": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "cold",
      +              "cached",
      +              "pinned"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "on_disk": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "payload_m": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / optimizers_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/OptimizersConfigDiff"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "default_segment_number": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "deleted_threshold": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "flush_interval_sec": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "indexing_threshold": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_optimization_threads": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "enum": [
      +              "auto"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_segment_size": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "memmap_threshold": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "prevent_unoptimized": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "vacuum_min_vector_number": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / quantization_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/ScalarQuantization"
      -  },
      -  {
      -    "$ref": "#/$defs/ProductQuantization"
      -  },
      -  {
      -    "$ref": "#/$defs/BinaryQuantization"
      -  },
      -  {
      -    "const": "disabled",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "scalar": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "quantile": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "type": {
      +            "enum": [
      +              "int8"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "scalar"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "product": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "compression": {
      +            "enum": [
      +              "x4",
      +              "x8",
      +              "x16",
      +              "x32",
      +              "x64"
      +            ],
      +            "type": "string"
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "compression"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "product"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "binary": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "always_ram": {
      +            "anyOf": [
      +              {
      +                "type": "boolean"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "encoding": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "one_bit",
      +                  "two_bits",
      +                  "one_and_half_bits"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "memory": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "cold",
      +                  "cached",
      +                  "pinned"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "query_encoding": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "default",
      +                  "binary",
      +                  "scalar4bits",
      +                  "scalar8bits"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "binary"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "const": "disabled",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / sparse_vectors_config / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "$ref": "#/$defs/SparseVectorParams"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "index": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "datatype": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "float32",
      +                        "uint8",
      +                        "float16",
      +                        "turbo4"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "full_scan_threshold": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "memory": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "cold",
      +                        "cached",
      +                        "pinned"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "on_disk": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "modifier": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "none",
      +                "idf"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / strict_mode_config / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/StrictModeConfig"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "condition_max_size": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "filter_max_conditions": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_collection_payload_size_bytes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_collection_vector_size_bytes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_payload_index_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_points_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_query_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_resident_memory_percent": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_timeout": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "multivector_config": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "max_vectors": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "read_rate_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_allow_exact": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_batchsize": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_hnsw_ef": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "search_max_oversampling": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sparse_config": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "max_length": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "unindexed_filtering_retrieve": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "unindexed_filtering_update": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "upsert_max_batchsize": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "write_rate_limit": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / vectors_config / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "$ref": "#/$defs/VectorParamsDiff"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "hnsw_config": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "ef_construct": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "full_scan_threshold": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "inline_storage": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "m": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "max_indexing_threads": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "memory": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "cold",
      +                        "cached",
      +                        "pinned"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "on_disk": {
      +                  "anyOf": [
      +                    {
      +                      "type": "boolean"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "payload_m": {
      +                  "anyOf": [
      +                    {
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "memory": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "cold",
      +                "cached",
      +                "pinned"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "on_disk": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "quantization_config": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "scalar": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "quantile": {
      +                      "anyOf": [
      +                        {
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "type": {
      +                      "enum": [
      +                        "int8"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "type"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "scalar"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "product": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "compression": {
      +                      "enum": [
      +                        "x4",
      +                        "x8",
      +                        "x16",
      +                        "x32",
      +                        "x64"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "compression"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "product"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "binary": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "encoding": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "one_bit",
      +                            "two_bits",
      +                            "one_and_half_bits"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "query_encoding": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "default",
      +                            "binary",
      +                            "scalar4bits",
      +                            "scalar8bits"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "binary"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "turbo": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "always_ram": {
      +                      "anyOf": [
      +                        {
      +                          "type": "boolean"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "bits": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "bits1",
      +                            "bits1_5",
      +                            "bits2",
      +                            "bits4"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "memory": {
      +                      "anyOf": [
      +                        {
      +                          "enum": [
      +                            "cold",
      +                            "cached",
      +                            "pinned"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "turbo"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "enum": [
      +                "Disabled"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observedv1.1.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish non-read-only, idempotent, non-destructive behavior, and the description adds meaningful context: partial update semantics, the special quantization disable value, and failure modes for missing collections or unknown vector names. It does not discuss return values, but an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation, then gives the partial-update rule, vector constraint, failure behavior, and a practical example. The sentences are dense and useful, with no apparent filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex collection-update tool with an output schema and annotations, the description covers the essential invocation context: existing collection requirement, partial updates, vector-name limitation, quantization disabling, and failure behavior. Remaining gaps are mostly detailed nested parameter semantics that the schema itself does not explain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 8 complex top-level parameters, so the description must carry parameter meaning. It identifies the parameter categories and adds important constraints for vectors_config/sparse_vectors_config and quantization_config, plus one optimizers_config example, but it does not explain most nested fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: update optimizer/HNSW/collection/vector params on an existing collection. It distinguishes the tool from vector creation by explicitly naming qdrant_collection_vector_create for adding vectors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states that only passed fields are changed and omitted fields keep current values, which is the key partial-update behavior. It also gives explicit when-not guidance by naming the sibling to use for adding vectors and warning that this tool fails in that case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.