For the complete documentation index, see llms.txt. This page is also available as Markdown.

SSLSearchServer

Поиск по Библиотеке стандартных подсистем (БСП).

Назначение

SSLSearchServer предоставляет ИИ доступ к справке по БСП (Библиотека стандартных подсистем) нужной вам версии. Если ваша конфигурация использует БСП — этот сервер незаменим.

Доступные инструменты MCP

ИИ получает следующие инструменты:

Инструмент
Описание

ssl_search

Поиск функций и процедур БСП по описанию или имени

plugin_state

Состояние плагинов, активные hooks, ошибки и fingerprint производного индекса

plugin_reload

Атомарно перечитать каталог плагинов без перезапуска сервера

embedding_state

Состояние embedding-провайдера: поддержка input_type, размерность и причина выбранного режима; блок active (с 27.09.2026) — активная модель, её размерность, backend (api/local), разрешён ли переход на локальную модель (fallback_permitted) и произошёл ли он (fell_back)

vector_store_state

Состояние векторного хранилища: рантайм zvec, обслуживающее поколение, запись манифеста и итог последней миграции

session_state

Границы и счётчики HTTP-сессий сервера

Поиск по документации БСП (Библиотеки стандартных подсистем) с использованием векторного поиска zvec. Рекомендуется всегда использовать, если конфигурация содержит БСП.

Параметр
Тип
По умолчанию
Описание

query

string

—

Имя метода, описание функции или текст, описывающий нужное действие (на русском языке)

limit

int

5

Количество результатов, от 1 до 20

min_score

float

калиброванный порог сервера

Минимальная cosine similarity; больше — релевантнее

database

string

—

Вернуть результаты только из указанной базы БСП, например 3111.db

detail

string

compact

compact — цитата и ограниченная выдержка; full — запись целиком

cursor

string

—

Непрозрачный маркер из усечённого ответа: вернуть то, что в него не поместилось

doc_id

string

—

Получить ровно эту запись целиком, без поиска

Возврат: Отформатированная строка с результатами, разделёнными ---. Заголовок каждого результата — одна строка вида:

Поля заголовка: database — база БСП, из которой взята запись; version — версия БСП, которую разрешил сервер; doc_id — идентификатор записи в индексе; source — место внутри корпуса; section — раздел библиотеки (в кавычках, потому что имя подсистемы содержит пробелы); lane — маршрут, которым получен результат; score — similarity, на которую действует min_score.

Маршруты поиска. Запрос, синтаксически являющийся именем символа — один идентификатор, при необходимости с точкой, либо такое имя со списком параметров, — сначала ищется точным совпадением по каноническому имени, и это lane=exact; карточка такого результата содержит строку Signature:. Каноническое имя записи — имя с модулем (ОбщегоНазначения.ЗначениеРеквизитаОбъекта), его сервер берёт из строки объявления под заголовком записи. Имя метода без модуля (ЗначениеРеквизитаОбъекта) находит этот метод в любом модуле; если метод с таким именем есть в нескольких модулях, возвращается ambiguous_name со списком кандидатов. Всё остальное отвечает гибридное извлечение: векторная дорожка и полнотекстовая (BM25) дорожка по одному и тому же корпусу, объединённые reciprocal rank fusion. Каждый результат называет дорожку, которой получен (semantic, lexical, hybrid, exact или fetch). Если имя соответствует нескольким записям (например, двум перегрузкам), возвращается код ambiguous_name со списком кандидатов, их сигнатурами и doc_id, а не одна произвольно выбранная запись.

Дорожки отключаются настройками: EXACT_LOOKUP=false убирает точный маршрут, HYBRID_SEARCH=false возвращает сервер к одной только векторной дорожке — без перестроения индекса, меняется только путь запроса.

Индекс имён (SSL от 01.10.2026). У поставленных баз каноническое имя читается из строки объявления под путём записи, а не из первой строки, и карточка называет раздел библиотеки, а не unknown. Отпечаток извлечения из-за этого другой: первый старт один раз пересобирает коллекцию из корпуса и снова вызывает embedding-провайдер. RESET_DATABASE=true не нужен. Пока пересборка не закончилась, /ready сообщает о неготовности, и точный маршрут по голому имени ещё не отвечает. Повторный старт уже пересобранную коллекцию не трогает.

Бюджет ответа. Длина ответа не превышает MAX_RESPONSE_CHARS (по умолчанию 4000 символов) и измеряется на готовой строке. Обычно результаты отбрасываются целиком с конца и не пересказываются. Исключение — если один лучший результат сам не помещается: сервер возвращает его дословный префикс с явной отметкой truncated, doc_id и инструкцией получить полную запись, а курсор продолжает с символьного смещения. Ответ завершается строкой вида:

total — сколько записей совпало под фильтром и порогом этого вызова, returned — сколько несёт этот ответ, truncated — исключил ли бюджет что-то, cursor — маркер для остального. Передайте его обратно в cursor с тем же query. Курсор живёт 300 секунд, хранится в ограниченном реестре процесса (до 1024 записей), не переживает рестарт и привязан к поколению индекса, plugin epoch, запросу и doc_id. Нарушение любой привязки отклоняется с кодом stale_cursor — это значит «искать заново», а не «продолжать».

Compact и full. По умолчанию результат приходит в compact: цитата и ограниченная выдержка. Все поля цитаты присутствуют на обоих уровнях, поэтому compact-результат всегда разрешим: ssl_search(doc_id="3111.db_42") возвращает эту запись целиком без поиска.

Группировка. Ответ берёт не более трёх результатов из одной пары (база, раздел), поэтому пять результатов описывают несколько частей библиотеки, а не пять фрагментов одной. Результаты упорядочены по score, при равенстве — по doc_id, поэтому два одинаковых вызова отвечают одинаково. Поэтому описательный запрос о методе из большого раздела («Базовая функциональность» — около 570 записей) может не вернуть нужную запись, если три других записи этого раздела ранжированы выше; по имени метода она находится точным маршрутом.

Если результатов выше порога нет, сервер возвращает типизированный ответ с кодом not_found без correlation id: ничего не сломалось, и повтор вызова вернёт то же самое.

Ошибки (SSL от 14.10.2026). Поиск, который не уложился в EMBEDDING_SEARCH_DEADLINE («The search did not complete within its deadline…»), был отменён или завершился ошибкой с кодом и correlation id, возвращается как ошибка инструмента: в ответе MCP isError: true, текст тот же. Клиент различает успех и неудачу по статусу вызова, разбирать текст не нужно. Ответ not_found, пустой запрос и пустая база остаются обычными ответами.

Возможности

ИИ получает инструменты для:

  • Поиска функций БСП

  • Объяснения назначения процедур

  • Подсказки по правильному использованию

  • Учёта особенностей разных версий БСП

Примеры использования

  • "Как в БСП получить список пользователей?"

  • "Какая функция БСП для отправки email?"

  • "Как правильно использовать ОбщегоНазначения.ЗначениеРеквизитаОбъекта?"

Требования

  • Docker Engine или Docker Desktop с поддержкой Linux-контейнеров

  • Лицензионный ключ

  • Embedding модель (LM Studio или CPU)

Порт

8008

Образ Docker

Теги: latest, light, arm64. Подробнее: Теги и ключи образов.

Быстрый старт

Конфигурация Cursor

Как узнать версию БСП

В Конфигураторе 1С:

  1. Справка → О программе

  2. Найдите "Библиотека стандартных подсистем"

  3. Скопируйте номер версии (например, 3.1.11)

Структура раздела

Доработка

Сервер расширяется плагинами: четыре hooks (on_startup, on_request, on_result, on_entry) и таблица QUERY_ALIASES. См. Систему плагинов и Конфигурацию.

Last updated