Skip to main content
Glama

operbots-mcp

npm

MCP-сервер панели operbots. Даёт Claude Code и другим клиентам MCP работать со всеми разделами панели: делами, ботами Telegram и MAX, сценариями, маркетом, перепиской, заявками, контрагентами, рассылками, базой знаний, ИИ-сервисами, расширениями и уведомлениями.

Права те же, что у вас. Токен опознаёт вашу учётную запись, и панель применяет к запросам те же проверки ролей и прав по делам. Выдать помощнику больше, чем можете сами, нельзя.

собери сценарий приёма заявок для бота поддержки и прогони его на «привет»
поставь из маркета «Консультант с ИИ» боту магазина с нашим GigaChat и базой «Прайс»
покажи диалоги, где ждут ответа дольше часа, и ответь им от имени бота
добавь в базу знаний прайс со страницы example.com/prices и проверь поиск
составь рассылку про новый прайс клиентам, кроме отписавшихся, и покажи, кому уйдёт
почему бот молчит со вчера — посмотри его журнал

Требуется Node 20 или новее.


Установка

npx operbots-mcp@latest setup

Одна команда спрашивает всё нужное и подключает плагин сама: адрес панели, токен, дело по умолчанию. Токен выпускается в панели — аккаунт → Интеграции → «Выпустить токен»; значение показывается один раз, скопируйте сразу. По итогу перезапустите Claude Code.

Проверить в любой момент: npx operbots-mcp status.

Плагин везёт сервер с собой и запускает его настоящим node по полному пути. При старте ничего не качается и не разрешается по имени — потому что именно там установка и разваливалась: npx на Windows оказывался .cmd, на холодном кэше уходил в реестр дольше рукопожатия, а про старый Node молчал вовсе.

Codex

Установите плагин через CLI (Node 20+ должен быть доступен в PATH):

codex plugin marketplace add uk-kd/operbots-mcp
codex plugin add operbots-mcp@operbots

Если токен ещё не сохранён, выполните npx operbots-mcp@latest login. Codex и Claude Code используют один профиль ~/.operbots/credentials.json; повторно выпускать токен не нужно. Проверка доступа: npx operbots-mcp@latest status. После установки откройте новый диалог Codex и вызовите whoami.

Для разработки подключите локальный репозиторий:

codex plugin marketplace add /полный/путь/к/operbots-mcp
codex plugin add operbots-mcp@operbots

Пакет содержит переносимые plugin.json и mcp.json. Codex разворачивает ${PLUGIN_ROOT} в абсолютный путь установленного плагина; Claude Code использует свой .claude-plugin/plugin.json с ${CLAUDE_PLUGIN_ROOT}. Не копируйте команду из манифеста Claude в Codex вручную: в старом подключении переменная оставалась буквальной и Node завершался с MODULE_NOT_FOUND до рукопожатия MCP. Если установлен выпуск 0.1.17 без переносимого манифеста, переустановите плагин из исправленного выпуска либо локального репозитория.

Другие клиенты MCP

operbots-mcp setup в конце печатает готовую строку запуска с полным путём — её и вставляйте в свой клиент. Плагины Claude Code при этом не нужны.


Related MCP server: Telegram MCP Server

Доступ

Для входа хранится только токен — ~/.operbots/credentials.json с правами 600. В самой панели значения тоже нет, там лежит лишь его отпечаток, поэтому даже из базы токен не восстановить.

Вход выполняется через терминал (operbots-mcp login) или через operbots_login с абсолютным путём token_file. account_password читает явно указанный локальный JSON-файл password_file с полями current_password и new_password; пароль не сохраняется в профиле. Файлы с секретами удалите после использования. Пароли и токены не запрашиваются через формы MCP: это запрещает спецификация elicitation.

Отозвать доступ — в панели, аккаунт → Интеграции. Отзыв действует сразу и только для этого токена: остальные машины продолжают работать. Команда operbots-mcp logout лишь стирает токен с этой машины, сам он остаётся живым.

Выпускать и отзывать токены можно только из панели — по токену нельзя, иначе утёкший ключ выписывал бы себе новые.


Настройки

Все необязательны. Дело по умолчанию и режим чтения спрашивает setup и кладёт их рядом с токеном: плагин запускает сервер без окружения вовсе, и передать их иначе некуда. Переменные при этом главнее профиля — ими переопределяют в контейнере и на сборке.

Переменная

Что делает

OPERBOTS_URL

Адрес панели. Обычно берётся из сохранённого профиля

OPERBOTS_TOKEN

Токен вместо сохранённого файла: контейнер, сборка

OPERBOTS_CASE

Дело по умолчанию: короткое имя, название или идентификатор

OPERBOTS_READ_ONLY=1

Оставить инструменты чтения — 56 вместо 143; вход и выход остаются

OPERBOTS_CREDENTIALS

Другой путь к файлу доступа

OPERBOTS_TIMEOUT_MS

Сколько ждать ответ панели. По умолчанию 30000

OPERBOTS_INSECURE_TLS=1

Не проверять сертификат — для самоподписанного TLS


Инструменты

143 инструмента. Дела, ботов, сценарии, публикации маркета, материалы, заготовки, рассылки и подключения можно называть по имени — идентификаторы не нужны: flows_publish bot="бот поддержки" flow="Приём заявок".

При одинаковых названиях инструмент просит UUID из списка. Поиск диалога по номеру чата ограничен 1000 записями; поиск по имени отказывает при неполной странице. В делах с более чем 100 рассылками используйте их UUID. Неполная выборка не считается доказательством однозначного совпадения.

Раздел

Инструменты

Аккаунт

operbots_login, operbots_logout, whoami, sessions_list, sessions_revoke, account_update, account_appearance, account_password, account_security, users_search

Дела

cases_list, cases_get, cases_save, cases_delete, cases_leave, audit_list, audit_filters

Люди

members_list, members_save, members_remove, case_transfer, roles_save, roles_delete, invites_create, invites_get, invites_accept, invites_revoke

Боты

bots_list, bots_get, bots_status, bots_webhook_info, bots_journal, bots_save, bots_control, bots_commands_apply, bots_variables_set, bots_reveal_token, bots_webhook_check, bots_webhook_rotate, bots_detach, bots_delete

Сценарии

flows_list, flows_get, flows_save, flows_publish, flows_versions, flows_restore, flows_simulate, flows_export, flows_import, flows_delete

Маркет

market_list, market_get, market_like, market_install, market_publish, market_release, market_update, market_unpublish

Диалоги

dialogs_list, dialogs_get, dialogs_chat_info, dialogs_history, dialogs_mark_read, dialogs_export, dialogs_reply, dialogs_reply_file, dialogs_download_attachment, dialogs_edit_message, dialogs_delete_message, dialogs_update, dialogs_release, dialogs_forget_memory, dialogs_cancel_scheduled, dialogs_reset_stage, dialogs_delete, tasks_list, tasks_cancel

Заявки

requests_list, requests_get, requests_save, requests_delete, requests_types_list, requests_types_save, requests_types_delete, requests_tasks_list, requests_task_complete, requests_comment, requests_workflow, requests_cancel

Контрагенты

counterparties_list, counterparties_get, counterparties_save, counterparties_delete, counterparties_settings, counterparties_settings_save, counterparties_dialogs, counterparties_link, counterparties_unlink, counterparties_reconcile

Заготовки ответов

replies_list, replies_save, replies_delete

Рассылки

broadcasts_list, broadcasts_get, broadcasts_targets, broadcasts_attach, broadcasts_detach, broadcasts_preview, broadcasts_save, broadcasts_duplicate, broadcasts_retry, broadcasts_test, broadcasts_delete, broadcasts_start, broadcasts_cancel

База знаний

knowledge_list, knowledge_save, knowledge_add_document, knowledge_document, knowledge_document_update, knowledge_reindex, knowledge_search, knowledge_delete

ИИ-сервисы

ai_list, ai_save, ai_usage, ai_test, ai_delete

Расширения

extensions_list, extensions_get, extensions_templates, extensions_nodes, extensions_save, extensions_oauth_begin, extensions_delete

Уведомления

notifications_list, notifications_summary, notifications_filters, notifications_read, notifications_settings, notifications_settings_save

Справочники

operbots_catalog — платформы с их пределами, виды узлов с настройками, разделы маркета, виды ИИ-сервисов, права

31 инструмент помечен danger: клиент получает подсказку об опасном действии. Удаление дела, бота, сценария, диалога и базы знаний целиком, передача дела другому владельцу и запуск рассылки требуют вдобавок названия дословно: случайный вызов не сотрёт и не разошлёт.

Режим OPERBOTS_READ_ONLY=1 оставляет 56 инструментов: всё чтение плюс operbots_login и operbots_logout — они правят не панель, а токен на этой машине, и без них человек с отозванным токеном остался бы с советом войти и без способа это сделать.

Чтение истории не сбрасывает непрочитанные сообщения; для этого есть dialogs_mark_read. knowledge_search, ai_test и flows_simulate могут обращаться к настоящему ИИ-сервису и расходовать его лимиты, поэтому в режиме чтения недоступны.

Заявки и контрагенты

Карточки возвращают все поля, задачи, историю и доступные действия. Для изменения заявки передавайте актуальный revision, для типа — version; конфликт возвращается клиенту без скрытого повторения операции. Перенос диалога из другой карточки требует replace_counterparty_id прежнего контрагента: конкурентная перепривязка не затирается. Настройки автосопоставления сохраняют пропущенные поля.

members_list показывает метаданные приглашений, но их ссылки API отдаёт только при наличии member.invite. Без этого права MCP явно сообщает, что ссылка скрыта.

Расширения и уведомления

Расширения поддерживают авторизацию, операции, входные параметры, вебхуки и начало OAuth-подключения. Частичная правка сохраняет пропущенные поля и идентификаторы операций; переданный массив заменяет соответствующий список целиком. Пустые секреты сохраняют прежние значения, clear_secrets явно удаляет их.

Уведомления по умолчанию показываются по всем делам. Фильтр case ограничивает ленту только при явной передаче. Настройки видов уведомлений объединяются с текущими; replace=true заменяет карту полностью.

Маркет

Готовые сценарии — «Консультант с ИИ», «Заявка», «Запись на визит» и остальные — живут в маркете вместе с публикациями других дел, и ставятся оттуда: market_list находит, market_install заводит боту новый сценарий рядом с существующими. Первый сценарий своего вида включается автоматически только при наличии flow.publish; без этого права остаётся черновиком. Остальные включают через flows_publish. Это правило действует также для создания через flows_save без copy_of и импорта через flows_import. Копии сценариев остаются черновиками. Узлам «Ответ ИИ» при установке передают provider и knowledge_base — что именно нужно сценарию, показывает карточка market_get. Своё выкладывают через market_publish по праву market.publish; карточку и граф увидят все пользователи панели, поэтому текст в настройках узлов стоит проверить заранее — ссылки на подключения панель снимает сама, а вписанные руками адреса и ключи нет. Название дела на карточке не показывается, пока не разрешить show_origin.

Переписка

dialogs_history печатает id каждого сообщения: по нему dialogs_reply reply_to отвечает цитатой, dialogs_edit_message правит текст уже отправленного — и у собеседника, и в панели, — а dialogs_delete_message убирает своё сообщение из чата собеседника. В переписке панели удалённое остаётся зачёркнутым: история разговора важнее чистой ленты. Чужие сообщения не правятся и не удаляются.

Сообщества

Группы и каналы, где состоит бот, — это те же диалоги: dialogs_list kind=community показывает их, kind=private — только личную переписку. dialogs_get читает сохранённую карточку; dialogs_chat_info спрашивает платформу о сообществе и обновляет название и положение бота. Поэтому сверка недоступна в режиме чтения. У сценария есть вид — dialog для личной переписки и community для сообществ; у бота по одному включённому на вид, и какой ведёт разговор, решает вид чата. Вид задают в flows_save scope=…, узлы под него — operbots_catalog what=node_kinds scope=community: вход и выход участника, пост канала, удалить или ограничить участника, закрепить, название чата, ссылка-приглашение, «участник — админ?». Отдельному сообществу назначают свой сценарий через dialogs_update flow=…, публикации маркета отбирают по виду market_list scope=…. Прогон сценария сообществ — flows_simulate event=post|join|leave.

Рассылка

Составляют и отправляют в два шага. broadcasts_save заводит черновик — он никуда не уходит, даже если задан срок. Отправку начинает только broadcasts_start, и она необратима: разосланное не отзывается ни у одного получателя. Между ними — broadcasts_preview: он показывает, сколько разговоров подошло под условия, кто именно и что настораживает в самом сообщении. Отбор без единого условия означает всех собеседников бота, а забытое условие выглядит ровно так же — потому предпросмотр и стоит смотреть всегда.

Условий восемь: кто ведёт разговор, метки, метки-исключения, назначенный участник, молчание дольше стольких дней, язык, «без получателей прошлой рассылки» и дата начала общения (joined_after). Их можно передать в audience; audience={} снимает все условия. broadcasts_targets показывает состояния доставки, broadcasts_retry повторяет неудачные отправки, broadcasts_test отправляет одному явно выбранному диалогу. Повтор и тестовая отправка также требуют подтверждения.

Файлы и границы доступа

dialogs_reply_file и broadcasts_attach читают явно указанный абсолютный локальный путь (до 20 МиБ). MIME определяется по расширению либо задаётся content_type. Сетевые UNC-пути и Windows device пути не принимаются. dialogs_download_attachment скачивает вложение в абсолютный destination, не перезаписывая существующий файл. dialogs_export выгружает текст переписки. Материал базы знаний с source=file принимает уже извлечённый текст: backend не имеет маршрута загрузки бинарного документа.

Выпуск и отзыв интеграционных токенов, настройка 2FA и коды восстановления требуют браузерной сессии: backend не разрешает их по интеграционному токену. account_security возвращает прямые ссылки на соответствующие вкладки аккаунта. Регистрация, вход с паролем/2FA, обновление браузерной сессии, OAuth callback, входящие вебхуки платформ и WebSocket используют свои протоколы; MCP не выдаёт их за доступные операции токена. sessions_revoke all=true завершает браузерные сессии на всех устройствах.

Значения секретных переменных бота панель отдаёт открыто, а сервер скрывает — видно только имя.

Полотно

Граф отдаётся и принимается плоским, без внутренностей редактора:

узлы:
  - id: start
    kind: trigger.command
    config: { command: start }
  - id: hello
    kind: action.message
    config: { text: Здравствуйте! Чем помочь? }
связи:
  - from: start
    to: hello

Переданные nodes, edges и comments заменяют свой список целиком; пропущенные списки сохраняются. Сначала flows_get, затем flows_save с нужными списками. Размеры, координаты, оформление узлов и связей, комментарии и viewport сохраняются, если не передать их явно. Состав config — в operbots_catalog what=node_kinds; узлы у платформ одни и те же, а варианты в их настройках разные, поэтому передавайте platform — иначе в граф попадёт вариант, которого у платформы бота нет. Новая редакция создаётся, только если граф действительно изменился.


Команды

operbots-mcp setup    установка целиком: токен, настройки, плагин
operbots-mcp          запустить сервер MCP (так его вызывает клиент)
operbots-mcp login    только сохранить токен доступа к панели
operbots-mcp logout   удалить токен с этой машины
operbots-mcp status   проверить связь с панелью и показать права
operbots-mcp tools    перечислить доступные инструменты

MIT · правите код — загляните в CONTRIBUTING.md

Available Tools

143 tools
account_appearanceОформление панелиB

Меняет язык, тему, акцент, плотность и анимации панели. Пропущенные настройки сохраняет.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
accentNo
localeNo
motionNo
densityNo
custom_hueNo
glass_intensityNo
sidebar_collapsedNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare it is a non-readonly, non-idempotent, non-destructive mutation. The description adds the useful partial-update contract ('пропущенные настройки сохраняет'), clarifying that omitted settings are preserved — genuinely beyond the annotations. It still omits auth requirements and the effect on unspecified settings during the merge.

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?

Two tight sentences with zero waste, and the scope (what it changes) is front-loaded ahead of the partial-update behavior.

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

Completeness3/5

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

No output schema exists, so return values need not be described. However, for a mutation with 8 params at 0% schema coverage, the description leaves three settings unexplained and gives no usage context, so it is only partially sufficient.

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 coverage is 0% across 8 params, so the description must compensate, and it names five of them (язык=locale, тема=mode, акцент=accent, плотность=density, анимации=motion). It leaves custom_hue, glass_intensity, and sidebar_collapsed entirely undocumented and gives no format/syntax detail beyond the schema enums.

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

Purpose4/5

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

States a specific verb (меняет/changes) plus the resource (panel appearance) and enumerates which settings are affected (language, theme, accent, density, animations), so an agent knows what the tool does. It does not, however, differentiate itself from the sibling account_update, which plausibly overlaps.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing away from or toward alternatives such as account_update or account_security. The agent must infer that this touches only visual settings.

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

account_passwordИзменить парольA
Destructive

Меняет пароль из локального JSON-файла с current_password и new_password, созданного человеком вне MCP. Пароли не запрашиваются через формы MCP, не попадают в аргументы или ответ. Прежние браузерные сессии завершаются.

ParametersJSON Schema
NameRequiredDescriptionDefault
password_fileYesАбсолютный путь к локальному JSON с current_password и new_password. После смены удалите файл.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark it destructive, non-idempotent, and open-world, but the description adds critical context: passwords never enter MCP arguments or responses, and existing browser sessions are terminated. This exceeds what the annotations alone convey.

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?

Three sentences, front-loaded with the core action, then security handling, then the session-termination side effect. No wasted words; every sentence adds useful information.

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 destructive, security-sensitive tool with a rich schema and annotations but no output schema, the description covers purpose, prerequisite, security constraints, and a key side effect (session termination). It does not describe error behavior or return format, but those gaps are minor given the schema and annotation coverage.

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

Parameters4/5

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

Schema coverage is 100%, so the single parameter is fully documented in the schema. The description adds meaning beyond the schema by explaining why the file exists (human-created outside MCP) and that passwords never appear in arguments or response, reinforcing secure parameter handling.

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 states a specific verb and resource ('Меняет пароль') and specifies the exact mechanism (local JSON file created outside MCP). This distinguishes it from siblings like account_update or account_security, which handle different account aspects.

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

Usage Guidelines4/5

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

It provides clear context for use: the password file must be created by a human outside MCP, and passwords must not be passed as arguments or via MCP forms. No alternative tools are named, but the when-not condition is explicit.

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

account_securityБезопасность и токены аккаунтаA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so most of the safety profile is covered. The description usefully adds an auth constraint beyond that: the browser-session requirement and the integration-token limitation. It does not describe what the returned link targets or how it behaves.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the resource and followed by the access constraint; no filler. The phrasing is slightly indirect ('Ссылка на управление') rather than stating the action, but nothing is wasted.

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 no-output-schema, single-optional-parameter pointer tool, the definition covers what it returns (a link), the auth constraint, and the capability boundary. Nothing critical is missing, though it does not confirm whether the section parameter alters the target.

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 coverage is 0% and the single 'section' parameter has an enum (security | integrations) with no descriptions. The description names topics that map obliquely onto those enum values (2FA/recovery codes vs. integration tokens), so an agent can guess, but it never explains the parameter or its values explicitly.

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

Purpose4/5

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

The description states what the tool provides (a link to managing 2FA, recovery codes and integration tokens), which is a specific resource rather than a tautology of the name. The weak verb ('Ссылка на' = 'Link to') leaves a little ambiguity about whether it performs actions or merely returns a pointer, but the scope is inferable.

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

Usage Guidelines4/5

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

It gives a clear precondition (these operations require a browser session) and an explicit limitation (an integration token cannot issue new tokens or change 2FA), which tells the agent when this tool is usable. There is no routing to a specific alternative among the many account/session siblings, so it stops short of a 5.

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

account_updateИзменить данные аккаунтаA

Меняет ФИО, дату рождения, телефон, часовой пояс и номера в Telegram и MAX учётной записи — по номерам бот шлёт участнику весточки из сценария (узел «Сообщить в чат» с адресатом «участник команды»). Передавайте только те поля, которые нужно изменить: остальные останутся как есть. Этим же инструментом проходят шаг знакомства: пока фамилии, имени и даты рождения нет, API закрыт целиком.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoТелефон.
max_idNoНомер человека в MAX. null — стереть.
timezoneNoЧасовой пояс, например Europe/Moscow.
last_nameNoФамилия.
avatar_urlNoАдрес аватара; null — удалить.
birth_dateNoДата рождения в виде ГГГГ-ММ-ДД. Без неё профиль считается незаполненным.
first_nameNoИмя.
middle_nameNoОтчество.
telegram_idNoНомер в Telegram (число, не @имя). null — стереть.

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, idempotent=false, destructive=false, openWorld=true) the description discloses two non-obvious traits: patch semantics (unspecified fields are untouched) and an onboarding gate (all name/birth-date fields required before the API otherwise works). It omits that passing null erases a value and says nothing about the response or side effects of the Telegram/MAX notification.

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

Conciseness4/5

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

Three sentences, front-loaded with the action and affected fields, with the two behavioral notes packed in tightly. Dense but each clause carries information; the parenthetical about the scenario node is somewhat tangential to tool selection.

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 mutation tool with no output schema and rich annotations, the definition covers mutability model and a critical precondition. Remaining gaps (null-erase behavior, response shape, side effects of outward notifications) are partly covered by the schema and are relatively minor.

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 100% and the schema itself documents every field, including the important null-erases semantics for max_id/telegram_id/avatar_url. The description adds only the high-level field list and the partial-update rule, so the baseline 3 is appropriate.

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?

States a specific verb (меняет) and resource (данные аккаунта) and enumerates the exact mutable fields (ФИО, дата рождения, телефон, часовой пояс, Telegram/MAX id), which clearly separates it from account_security, account_appearance and account_password.

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

Usage Guidelines4/5

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

Gives concrete usage guidance: pass only the fields to change, the rest stay as-is, and it names a second use case (прохождение шага знакомства). It does not point to a sibling for the cases this tool does not cover, so it stops short of a 5.

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

ai_deleteУдалить подключение к ИИA
Destructive

Удаляет подключение вместе с сохранёнными ключами. Пока сервис используют боты, панель удалить его не даст: отвяжите его от каждого бота (bots_save ai_provider=null) и от баз знаний (knowledge_save provider=null), а из узлов «Ответ ИИ» уберите provider_id через flows_save.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
providerYesПодключение: название или идентификатор.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description reveals important behavior: deletion destroys saved keys, deletion is blocked while the connection is still referenced, and the agent must first detach it from bots, knowledge bases, and AI Reply nodes. This is rich, non-obvious context that annotations alone do not provide.

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 only two sentences: the first front-loads the core destructive action, and the second compactly lists the necessary dependency-clearing steps. Every sentence earns its place, and there is no filler.

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

Completeness5/5

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

For a destructive delete tool with no output schema, the description covers the effect, the sensitive-data consequence, the blocking condition, and the exact steps to unblock it. This is sufficient for an agent to invoke the tool correctly and avoid failed calls.

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 100%, so the schema already documents both parameters. The description does not add significant new direct meaning for the provider or case parameters, though it does mention provider_id in flows_save as part of the unblocking workflow. Baseline 3 is appropriate.

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 starts with a specific verb and resource: 'Удаляет подключение вместе с сохранёнными ключами' — it clearly states what is deleted and that saved keys are also removed. This distinguishes it from sibling AI tools like ai_save, ai_list, and ai_test.

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?

The description explicitly explains when deletion is blocked ('Пока сервис используют боты, панель удалить его не даст') and provides precise removal steps using sibling tools with parameter values: bots_save ai_provider=null, knowledge_save provider=null, and flows_save. This gives the agent clear conditions and alternatives.

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

ai_listПодключения к ИИ-сервисамA
Read-onlyIdempotent

Какие ИИ-сервисы подключены к делу, с какими моделями и сколько ботов их используют. Ключи не показываются — только последние символы.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
providerNoИдентификатор подключения для полной карточки.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, idempotentHint=true). The description adds meaningful behavioral context by disclosing that keys are masked and only the last characters are shown, which is beyond what annotations provide.

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?

Two well-formed sentences, purpose front-loaded, with zero wasted words. The key-masking note is placed as a secondary sentence, keeping the core purpose clear.

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 read-only list tool with no output schema, the description adequately covers what is returned (services, models, bot usage counts, masked keys). It does not explain how the provider parameter changes output to a full card, but that detail is present in the schema.

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 100%, so both the case and provider parameters are already documented in the schema. The description adds no additional parameter meaning, which is the baseline when the schema fully covers them.

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

Purpose4/5

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

States a clear list operation over AI service connections, including the models and bot counts returned. It is specific and distinguishable from ai_save/ai_delete/ai_test, but does not explicitly name a sibling to differentiate from, which keeps it at 4 rather than 5.

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

Usage Guidelines2/5

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

The description states what the tool returns but gives no when-to-use guidance, no conditions or alternatives, and no exclusions. An agent can infer it is for viewing connected AI services, but no explicit usage context is provided.

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

ai_saveПодключить или настроить ИИ-сервисA

Без параметра provider подключает новый сервис, с ним — меняет настройки. Какие ключи нужны: gigachat — authorization_key (обязательно), scope (по умолчанию GIGACHAT_API_PERS); yandexgpt — api_key (обязательно), folder_id (обязательно); openai — api_key (обязательно); openrouter — api_key (обязательно); custom — api_key (по желанию); обязателен base_url. При изменении переданные ключи дописываются поверх прежних, а стереть ключ пустой строкой нельзя — только перезаписать.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
kindNoВид сервиса. Обязателен при создании, сменить его потом нельзя.
nameNoНазвание подключения в панели.
modelNoМодель. Известные: gigachat — GigaChat, GigaChat-Pro, GigaChat-Max, GigaChat-2 (по умолчанию GigaChat); yandexgpt — yandexgpt-lite, yandexgpt, yandexgpt-32k (по умолчанию yandexgpt-lite); openai — gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, o4-mini (по умолчанию gpt-4o-mini); openrouter — openai/gpt-4o-mini, anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-001, meta-llama/llama-3.3-70b-instruct, deepseek/deepseek-chat; custom — зависит от вашего сервера; поле обязательно заполнить вручную
activeNoВключено ли подключение.
optionsNoНастройки памяти, экономии контекста и сервиса. Заменяет карту: memory, summary_every, cache_context и другие поля API.
base_urlNoАдрес сервера. Обязателен для вида custom.
providerNoКакое подключение менять. Не указывайте, чтобы создать новое.
max_tokensNoПредел длины ответа. По умолчанию 1024.
credentialsNoКлючи доступа. Состав зависит от вида сервиса — см. описание инструмента.
temperatureNoРазброс ответов: 0 — строго по делу, 2 — свободно. По умолчанию 0.7.
history_depthNoСколько прошлых реплик подмешивать в запрос. По умолчанию 10.
system_promptNoПостоянная подсказка модели: как себя вести и о чём говорить.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover safety (destructive=false, idempotent=false) and the description adds genuinely non-obvious behavior: on update, passed keys are merged over existing ones and cannot be erased with an empty string, only overwritten. This merge/no-erase constraint is exactly the kind of context structured fields cannot carry.

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

Conciseness4/5

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

Front-loads the provider create/update distinction, then a compact per-provider key list, then the merge caveat. Dense but every clause earns its place; the enumeration is long but necessary given the credentials gap.

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 13-param, no-required-param, no-output-schema mutation tool, this covers the two hardest parts (create vs update, and credentials per kind) plus a merge gotcha. Largely complete; it does not mention default case resolution or the response shape, though those are minor here.

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

Parameters4/5

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

Schema coverage is 100%, but the credentials object is deliberately generic in the schema ('composition depends on the service — see tool description'), and the description supplies that per-provider key map (gigachat authorization_key/scope, yandexgpt api_key/folder_id, custom base_url, etc.). That is real added meaning beyond the schema, though the create-vs-update 'provider' semantics could be tied more tightly to the parameter.

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?

States a specific verb+resource (podklyuchit/nastroit ИИ-сервис) and precisely distinguishes the two modes: create without provider, update with it. An agent can tell it apart from siblings ai_list, ai_delete, ai_test without opening any schema.

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

Usage Guidelines4/5

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

Explicitly explains the provider parameter's role in selecting create-vs-update, which is the key decision. However it does not name when to reach for ai_test or ai_list instead, so it stops short of full alternative routing.

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

ai_testПроверить ИИ-сервисA

Отправляет пробную реплику и показывает ответ модели или причину отказа. Это настоящий запрос к сервису: он расходует лимиты и может стоить денег.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
promptNoЧто спросить. По умолчанию — короткое приветствие.
providerYesПодключение: название или идентификатор.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, idempotentHint=false), the description discloses that this is a real request consuming limits and potentially costing money. It also mentions it shows 'reason for refusal,' indicating potential failures. These are valuable behavioral traits not captured in annotations.

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 two sentences long, front-loaded with the action and outcome, and the cost warning is a necessary caveat. Every sentence earns its place with no fluff or repetition.

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

Completeness5/5

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

Given the simplicity of the tool (3 parameters, no nested objects, no output schema) and the strong annotations, the description covers the essential aspects: what it does, what it returns (response or error reason), and the cost/limit implications. It is complete for an agent to select and invoke it correctly.

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 100%, and each parameter (case, prompt, provider) already has a description. The tool description adds no additional parameter-level semantics, so it reaches the baseline but does not elevate it. It does not repeat or contradict schema information.

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 states a specific verb+resource: 'Sends a test replica and shows the model's response or reason for refusal.' This clearly distinguishes it from sibling tools like ai_list or ai_save, as it is about testing an AI service rather than managing configurations or listing services.

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

Usage Guidelines4/5

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

The description gives clear context: it sends a real request to the service and warns that it consumes limits and may cost money. This implies caution and informs when to use (testing a service) but does not explicitly name alternatives or exclusions. The cost warning is a useful usage guideline, though it could be more explicit about comparing to ai_list/ai_save.

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

ai_usageРасход ИИB
Read-onlyIdempotent

Полный отчёт расхода с итогами, сравнением, днями и разрезами. provider, bot, kind, model — точные ключи из choices предыдущего ответа, включая удалённые подключения.

ParametersJSON Schema
NameRequiredDescriptionDefault
botNo
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
daysNo
kindNo
modelNo
providerNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered structurally. The description adds real context beyond that: the filter values must match keys returned in a prior response and may include deleted connections, which warns the agent about value provenance. It still omits anything about auth needs, rate limits, or result size.

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

Conciseness4/5

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

Two tight sentences, front-loaded with what the report contains and followed by the critical value-provenance constraint. No filler, though the second clause is dense and slightly cryptic without the prior-response context.

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

Completeness3/5

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

For a read-only report with no output schema, the description usefully enumerates the report's sections (totals, comparison, days, breakdowns), which partially stands in for a return-shape spec. But with 5 of 6 parameters undocumented in the schema and only a partial description of the filter values, the definition leaves the agent short on how to call it correctly.

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 only 17% (only 'case' is documented), so the description must compensate. It partially does by explaining that provider, bot, kind and model are exact keys from the previous response's choices (including deleted connections), giving their valid domain. The 'days' parameter and the schema's case semantics remain unexplained by the description.

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

Purpose4/5

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

The description states a specific deliverable: a full usage report ('Полный отчёт расхода') with totals, comparison, per-day data and breakdowns. This is clearly a reporting/read tool and is easily distinguished from the ai_list/ai_save/ai_delete/ai_test siblings. It does not, however, explicitly name or contrast with a sibling.

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

Usage Guidelines2/5

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

There is no explicit statement of when to use this tool versus alternatives such as ai_list or ai_test. The only usage-shaped hint is that provider/bot/kind/model must be exact keys from a previous response, which is a data-sourcing note rather than selection guidance.

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

audit_filtersОтбор журнала действийB
Read-onlyIdempotent

Доступные виды событий и авторы с числом записей, включая ушедших участников.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile needs no restating. The description contributes one genuinely useful behavioral detail beyond them: results include departed participants. It says nothing about result shape, ordering or pagination, so it is only a modest addition.

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

Conciseness4/5

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

A single compact sentence with the key qualifiers front-loaded and no filler. It is arguably too terse rather than padded, so it does not lose points for verbosity.

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

Completeness3/5

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

For a one-optional-parameter, read-only aggregation tool with no output schema, the agent still lacks any indication of the returned structure (e.g., a list of event types vs. authors with counts). The phrase 'with number of records' hints at it but does not fully compensate for the absent output schema.

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 100% and the sole 'case' parameter is fully documented in the schema, including the default-resolution behaviour. The description adds no parameter-level semantics beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description names the resource (event types and authors) and adds qualifiers (record counts, includes departed participants), which distinguishes this enumeration/filter tool from the sibling audit_list that returns the journal entries themselves. It does not name the sibling explicitly, but the scope is clear from the text.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus audit_list or any other sibling, and no mention of prerequisites or ordering (e.g., call this first to discover valid filter values). Usage must be inferred from the noun phrase alone.

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

audit_listЖурнал действийA
Read-onlyIdempotent

Кто и что менял в деле: правки, включения, удаления, выдачу прав. Отвечает на вопрос «кто это сделал» — в том числе про действия, совершённые токеном доступа: у таких записей указано, каким именно. Чтение в журнал не попадает. Требует права audit.view.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
limitNoСколько записей вернуть, максимум 200. По умолчанию 50.
actionNoВид события, например flow.update, bot.delete, role.update. Без него — все виды.
offsetNoСколько записей пропустить.
actor_idNoАвтор из audit_filters.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations already declaring readOnly, idempotent, non-destructive, and openWorld behavior, the description adds meaningful context beyond annotations: it lists the types of actions recorded, notes that token-performed actions identify the token, states that reads are not logged, and names the required audit.view permission.

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

Conciseness4/5

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

The description is reasonably concise and front-loads the main purpose. There is some redundancy between 'who changed what' and 'answers who did this', but every sentence still contributes useful scope or permission information.

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?

Given that all parameters are documented in the schema and annotations cover the safety profile, the description is fairly complete: it includes content scope, token-action behavior, read exclusion, and the required permission. It does not need to explain return values because no output schema exists, though more detail on pagination or filtering could help.

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 100%, so all five parameters are already documented in the input schema. The description does not add syntax, defaults, or filtering semantics beyond what the schema provides, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description states a specific purpose: an audit journal showing who changed what in a case, including edits, enables/disables, deletions, and permission grants. It is clear enough to distinguish from generic list tools, but it does not explicitly contrast itself with the sibling audit_filters tool.

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

Usage Guidelines3/5

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

It gives useful context that the tool answers 'who did this' and that read operations are not logged, plus a required permission (audit.view). However, it does not state when to use this tool versus alternatives such as audit_filters, nor does it give explicit exclusions.

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

bots_commands_applyНастроить меню командA

Приводит меню команд бота к переданному списку: недостающие команды добавляет, существующие обновляет, порядок расставляет по порядку в списке. Команды, которых нет в списке, сохраняются — чтобы удалить их, передайте remove_missing=true. Само меню у платформы обновляется, только если sync=true или бот перезапущен.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
syncNoСразу отправить меню платформе. По умолчанию да.
commandsYesЖелаемое меню целиком, в нужном порядке.
remove_missingNoУдалить команды бота, которых нет в списке. По умолчанию нет.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare the coarse profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description adds real behavioral nuance the annotations cannot convey: additive-by-default semantics, the opt-in deletion path, and the deferred-sync timing. It stops short of noting auth/permission requirements, so not a 5.

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?

Three tightly packed sentences with no filler; the core reconciliation behavior is front-loaded, followed by the two flags that modify it. Every clause carries distinct information.

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 5-param non-mutating-looking yet actually write tool with no output schema and full schema coverage, the description covers the divergent default behaviors an agent would otherwise get wrong. Return-value behavior is unstated, but with no output schema that gap is minor.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds behavioral meaning to two key params beyond their schema text — remove_missing governs preservation of unlisted commands and sync governs when the platform is actually updated. The commands array is correctly framed as the complete desired menu in order.

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?

States a precise verb and resource ('приводит меню команд бота к переданному списку') and immediately decomposes it into add/update/reorder semantics. An agent can distinguish this reconciliation tool from siblings like bots_save or bots_detach without opening a schema.

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

Usage Guidelines4/5

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

Gives concrete conditions: commands absent from the list are preserved unless remove_missing=true, and the platform menu only refreshes with sync=true or a bot restart. It does not name an alternative sibling, but the when-to-use context is explicit rather than implied.

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

bots_controlЗапуск и остановка ботаA

Запускает, останавливает или перезапускает бота, а также отправляет меню команд у платформы. Запуск сам синхронизирует меню; отдельная синхронизация нужна после правки команд у уже работающего бота.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
actionYesЧто сделать: запустить, остановить, перезапустить, обновить меню команд.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already state readOnlyHint=false and destructiveHint=false, so the agent knows this mutates bot state. The description adds useful behavioral nuance: startup automatically syncs the menu, while a separate sync is required after editing commands on a live bot. This goes beyond what structured data provides.

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?

Two compact sentences: the first enumerates the actions, the second explains the only important conditional nuance. There is no filler, no restating of the schema, and the key context is front-loaded.

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 simple three-parameter tool with no output schema, this description covers the main actions and the sync nuance well. A brief note on the effect of stop/restart on a running bot would add completeness, but the current text is sufficient for correct selection and invocation.

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 coverage is 100%, so the schema already documents all parameters. The description reinforces the meaning of the action enum by explaining the sync_commands edge case, but it does not add extra detail about the bot or case parameters. Baseline 3 is appropriate.

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 starts with a specific set of actions and resource: 'Запускает, останавливает или перезапускает бота, а также отправляет меню команд'. This clearly distinguishes bots_control from sibling tools like bots_save or bots_journal by naming the runtime-control responsibility.

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

Usage Guidelines4/5

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

The description gives explicit guidance about when the sync_commands action is needed: after editing commands on an already running bot, because startup already performs synchronization. It does not name sibling alternatives, but the provided context is unambiguous for the listed actions.

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

bots_deleteОтключить ботаA
Destructive

Убирает бота из дела вместе с командами и переменными. Диалоги и переписка удаляются. Восстановить нельзя. Чтобы временно выключить, используйте bots_save enabled=false.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
confirm_nameYesТочное название бота — подтверждение удаления.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate destructiveHint=true, but the description adds specific consequences: deletion of commands, variables, dialogues, and irreversibility. This goes beyond the annotation, giving the agent a full picture of the tool's impact.

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?

Three short sentences: the first states the core action, the second describes consequences, the third gives an alternative. Every sentence adds value and the description is front-loaded, making it easy to parse.

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

Completeness5/5

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

Given no output schema, the description fully explains the destructive behavior, scope, and irreversibility. It also provides a contrast with the non-destructive alternative, making the tool's usage context complete.

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 100% with clear descriptions for bot, case, and confirm_name. The tool description does not add additional parameter-level details, so the baseline score of 3 applies.

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 clearly states the tool removes the bot from the case along with commands, variables, dialogues, and correspondence, and that restoration is impossible. This distinguishes it from sibling tools like bots_save (used for temporary disablement).

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?

Explicitly provides an alternative for temporary disablement: 'use bots_save enabled=false.' This tells when not to use this tool and directs to the correct sibling, fulfilling the usage guideline requirement.

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

bots_detachОтключить бота с выбором сохраняемых данныхA
Destructive

Отключает бота с точным подтверждением названием. По умолчанию сохраняет сценарии, диалоги, рассылки и журнал под архивной записью. Сценарии можно передать другому боту.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flows_toNoБот для переноса сохраняемых сценариев: название или идентификатор. null — оставить под архивным ботом.
keep_flowsNoСохранить сценарии. По умолчанию да.
confirm_nameYesТочное название бота — подтверждение отключения.
keep_dialogsNoСохранить диалоги. По умолчанию да.
keep_journalNoСохранить журнал. По умолчанию да.
keep_broadcastsNoСохранить рассылки. По умолчанию да.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotent=false, but the description meaningfully adds that an exact-name confirmation is required, that flows/dialogs/broadcasts/journal are retained by default under an archive entry, and that flows can be handed off to another bot. That is real behavioral context beyond the annotations.

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

Conciseness4/5

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

Three short sentences, front-loaded with the action and confirmation requirement, then defaults, then the optional transfer. No filler, though it could more tightly tie the retention sentence to the keep_* switches.

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 destructive, 8-parameter tool with no output schema, the description covers the confirmation requirement, default retention, and the transfer option. Minor gaps remain around the 'case' scoping and error behavior, but annotations plus full schema coverage carry the rest.

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 100%, so the schema already documents all 8 parameters including their defaults. The description only reinforces confirm_name and flows_to semantics without adding format or edge-case detail, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Отключает бота') and adds the distinguishing constraint that data is preserved under an archive record rather than purged. This implicitly separates it from siblings like bots_delete or bots_save, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: the default-retention semantics hint that this is the non-destructive alternative to deleting a bot, but there is no explicit 'use this when... instead of...' statement and no prerequisites (permissions, irreversible effects) called out.

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

bots_getКарточка ботаA
Read-onlyIdempotent

Бот целиком: настройки, меню команд, переменные контента и список сценариев. Значения переменных, отмеченных как секретные, скрыты.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond annotations: secret variable values are hidden. This is a meaningful disclosure about response content that annotations do not cover.

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 two concise sentences. The first sentence front-loads the core purpose with a colon list of contents; the second adds a crucial detail about secrets. No wasted words or redundant information.

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?

The description covers what the tool returns, including the masking of secret variables, which is important given there is no output schema. With strong annotations and 100% parameter schema coverage, it is nearly complete, though it does not explicitly address error cases or access restrictions.

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 100%: both 'bot' and 'case' parameters have descriptive text. The tool description itself adds no extra parameter semantics, so the baseline score of 3 applies.

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 clearly states the tool returns the full bot object ('Бот целиком') and enumerates its contents: settings, command menu, content variables, and scenario list. This distinguishes it from sibling tools like bots_list (list only) and bots_save (modify). The implicit verb is evident from the tool name and title.

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

Usage Guidelines3/5

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

The description implies this is the comprehensive single-bot retrieval tool, but it does not explicitly state when to use it versus alternatives such as bots_list or bots_control. No exclusions or alternative tool names are mentioned, so usage guidance remains implicit rather than explicit.

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

bots_journalЖурнал ботаA
Read-onlyIdempotent

Что делал сам бот: запуски и остановки, входящие обновления, ответы модели и сколько она думала, ожидание ответа по сценарию, отложенные действия, ошибки сценария и отказы платформой. Журнал дела (audit_list) пишет действия людей — этот пишет действия бота, и на вопрос «почему бот молчит» отвечает именно он. Записи идут от свежих к старым; сузить можно видом (kind) и уровнем — level=error оставит одни сбои. Какие виды у этого бота вообще встречались и сколько их, перечислено в конце ответа. Журнал — недавняя история, а не архив: старые записи панель убирает сама.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
kindNoВиды записей, например ai.error, flow.error, update.in, message.out. Подходит любой из перечисленных.
levelNoinfo — обычные записи, warn — предупреждения, error — сбои.
limitNoСколько записей вернуть, максимум 200. По умолчанию 30.
offsetNoСколько записей пропустить.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already signal readOnly, idempotent, non-destructive behavior. The description adds meaningful behavioral context: entries are returned newest-first, the log is recent history rather than an archive because the panel removes old entries, and the response ends with a summary of encountered kinds and counts. This goes beyond the structured annotations without contradicting them.

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?

Every sentence adds distinct value: scope of entries, differentiation from audit_list, ordering and filtering, response summary, and retention behavior. The text is dense but not bloated, and the most important information is front-loaded.

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?

There is no output schema, but the description partially compensates by explaining ordering, filtering, the kind summary at the end, and the non-archival nature of the log. A more explicit list of per-entry fields would make it fully complete, but the provided context is sufficient for an agent to call the tool and interpret the high-level result.

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 100%, so the schema already documents all six parameters. The description mentions the kind and level filters, particularly level=error, but does not add new semantic detail beyond what the schema provides. Baseline 3 is appropriate.

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?

Description opens with a concrete statement of what the tool returns: bot actions such as starts/stops, incoming updates, model responses, script errors, and platform refusals. It also explicitly contrasts this with audit_list, making the resource and scope unmistakable and distinguishing it from a sibling tool.

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?

The description explicitly names audit_list as the log of human actions and states that this journal answers 'why the bot is silent', giving a clear selection condition. It also explains how to narrow results by kind and level, which directly supports correct invocation.

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

bots_listСписок ботовA
Read-onlyIdempotent

Боты дела: состояние, режим работы, число диалогов и непрочитанного.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds context about the output contents (status, operation mode, dialogue counts, unread), which is useful behavioral information beyond the annotations. No contradictions.

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 a single, compact sentence that front-loads the resource and purpose. It avoids unnecessary words while conveying the key output fields.

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 simple read-only list with one optional parameter, the description provides sufficient context: what is listed and what information is included. Annotations cover safety, and schema covers parameters. The lack of output schema is mitigated by the description's field enumeration.

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?

The single parameter 'case' is fully described in the schema (100% coverage), including default behavior when omitted. The tool description itself does not add parameter details, so it relies on the schema, appropriate for baseline 3.

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 clearly identifies the tool as listing bots for a case ('Боты дела'), with a specific verb ('список') and resource ('боты'). It also lists the returned aspects (status, mode, dialog counts, unread), distinguishing it from sibling tools like bots_get by its list-focused scope.

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

Usage Guidelines3/5

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

The description implies usage for retrieving bots of a case, but it does not explicitly state when to use this tool versus alternatives (e.g., bots_get). No exclusions or conditions are mentioned, so it falls short of clear guidance.

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

bots_reveal_tokenПоказать токен ботаA
Destructive

Возвращает токен бота в открытом виде. Токен даёт полное управление ботом — запрашивайте его, только если пользователь прямо об этом попросил, и не пересказывайте без надобности.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, the description adds crucial behavioral context: the token grants full control over the bot, and the tool should be used only on explicit user request. This meaningfully expands on destructiveHint=true and explains why the operation is sensitive.

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?

Two sentences, zero filler. The first sentence states the primary function; the second delivers essential security guidance. The most important operational caution is placed up front.

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 two-parameter tool with no output schema, the description covers the action, the sensitive nature of the result, and the required user-consent condition. It is complete enough for safe invocation, though it does not detail output formatting or explicitly rule out token rotation.

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 coverage is 100%, so the schema already documents both bot and case parameters. The description adds no parameter-specific meaning beyond the operation itself, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the operation: 'Возвращает токен бота в открытом виде' — a specific verb, resource, and even the output form. It is recognizable as distinct from siblings like bots_get, but it does not explicitly name or differentiate against any sibling, so it falls short of a 5.

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

Usage Guidelines4/5

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

The description gives an explicit usage condition: request the token only if the user directly asks, and do not repeat it unnecessarily. It provides clear context and a strong exclusion rule, though it does not mention alternatives or broader when-not-to-use scenarios.

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

bots_saveПодключить или настроить ботаA

Без параметра bot подключает бота по токену или восстанавливает его архивную запись с оставленными сценариями и диалогами. Токен проверяется живым запросом к платформе и хранится зашифрованным. С параметром bot меняет настройки. Смена токена или режима перезапускает работающего бота. Платформу у подключённого бота сменить нельзя: у неё свой вид токена и свои пределы.

ParametersJSON Schema
NameRequiredDescriptionDefault
botNoКакого бота менять. Не указывайте при подключении или восстановлении из архива.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
modeNopolling — панель сама забирает обновления; webhook — платформа шлёт их на панель (нужен публичный адрес по https).
nameNoНазвание бота в панели.
tokenNoТокен бота. Обязателен при подключении. Вид у каждой платформы свой: у Telegram 1234567890:AA… от @BotFather, у MAX — длинная строка без двоеточия из кабинета разработчика. Точный вид и где его брать — operbots_catalog what=platforms.
enabledNoВключён ли бот. false останавливает работающего.
platformNoКуда подключаем нового бота. По умолчанию telegram. У подключённого не меняется.
settingsNoНастройки бота целиком: заменяют прежний объект.
autostartNoЗапускать бота при старте панели.
ai_providerNoПодключение к ИИ-сервису: название или идентификатор. null — отвязать сервис от бота, ничего взамен не назначая.
descriptionNoОписание бота. null — стереть.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations it discloses meaningful behavior: the token is validated by a live platform request and stored encrypted, changing token or mode restarts a running bot, an archived record is restored with its scenarios and dialogs, and a connected bot's platform is immutable. These are exactly the side effects and constraints an agent needs before invoking a non-idempotent, open-world write.

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?

Five tight sentences, front-loaded with the parameter-based mode split, then the token handling, then the restart and platform-immutability caveats. No sentence is redundant and none repeats the schema verbatim.

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

Completeness5/5

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

For an 11-parameter upsert tool with nested objects and no output schema, the description covers the create/restore/update flows and their consequences sufficiently. Return values need not be explained without an output schema, so nothing essential is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema states only piecemeal: that `bot` presence routes between create/restore and update, and that `platform` is frozen once connected. That is genuine value over the per-field schema text.

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 names the specific verb and resource and, crucially, splits the tool into two distinct operations keyed on the presence of the `bot` parameter: connect/restore when absent, reconfigure when present. This distinguishes it cleanly from siblings like bots_get, bots_delete, bots_control, and bots_detach.

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

Usage Guidelines4/5

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

It states exactly when to omit `bot` (connecting by token or restoring from archive) versus when to supply it (changing settings), which is real selection guidance. It stops short of naming any sibling alternative or exclusion, so it does not reach a 5.

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

bots_statusЖивое состояние ботаB
Read-onlyIdempotent

Состояние живого рантайма: время работы, обновления, ошибки и время проверки.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds that this reflects a 'live runtime' with uptime/updates/errors, which is useful behavioral context, but says nothing about freshness, auth needs, or what happens when a bot is offline.

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

Conciseness4/5

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

A single compact sentence with no filler, and the returned facets are front-loaded. It is perhaps overly terse for a tool with an undocumented default-case fallback, but nothing is wasteful.

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

Completeness3/5

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

There is no output schema, so the description does useful work by naming the returned fields (uptime, updates, errors, check time). However it omits usage context and any indication of refresh semantics or failure states, leaving gaps for an operational-status tool.

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 100% with only two parameters (bot, case), and the schema already explains the default-case fallback behavior in detail. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

Names a specific resource and enumerates the returned runtime facets (uptime, updates, errors, check time), so an agent knows this returns live operational state. It does not differentiate itself from close siblings like bots_get or bots_journal, which also surface bot state, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no indication of when to call this versus bots_get, bots_journal, or bots_webhook_check, nor any prerequisites or exclusions. The agent is left to infer the use case from the field list alone.

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

bots_variables_setПеременные контента ботаA

Задаёт переменные, которые подставляются в тексты сценария: цены, адреса, ссылки. Существующие ключи обновляются, новые создаются. Отмеченные секретными не показываются обратно. Ключ: латиница, цифры, подчёркивание и точка.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
variablesNoПеременные, которые нужно завести или обновить.
delete_keysNoИмена переменных, которые удалить.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover safety (readOnly=false, destructive=false, openWorld=true), and the description adds meaningful context beyond them: upsert behavior, that secret-marked values are not returned back, and the allowed key charset. This is genuine behavioral disclosure not found in the structured fields.

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

Conciseness4/5

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

Four tight sentences with the core action front-loaded, followed by upsert, secrecy, and key-format details in order of importance. Dense and free of filler, though a slightly more explicit routing sentence could be added.

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?

With no output schema, the description still covers upsert semantics, secret-value behavior, and key constraints, which is enough for an agent to call a 4-parameter mutation correctly. Only explicit when-to-use guidance is missing.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds the key character-set rule (Latin letters, digits, underscore, dot) that the schema only illustrates with a single example, plus the secret round-trip caveat. That is added value beyond the schema.

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

Purpose4/5

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

States a specific verb+resource (sets the variables substituted into scenario texts) and clarifies what those variables are (prices, addresses, links). It is clearly distinguishable from sibling bots_* tools, though it does not explicitly name an alternative.

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

Usage Guidelines3/5

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

Usage is implied through the upsert semantics (existing keys update, new ones are created), which tells the agent this is the write path for variables. However, there is no explicit when-to-use vs alternatives guidance or prerequisites, so it stays at the minimum viable level.

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

bots_webhook_checkЧто платформа знает о вебхукеA
Read-onlyIdempotent

Отчёт самой платформы: на какой адрес она шлёт обновления, сколько их ждёт доставки и какой была последняя ошибка доставки. Единственный способ понять, почему бот в режиме вебхука молчит: со стороны панели всё бывает исправно — адрес публичный, запрос доходит, — а платформа не достучалась и знает причину. Ни токен, ни ключ из адреса наружу не отдаются: адрес показан без ключа, а вывод прямо говорит, тот ли это адрес, которого ждёт панель.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool as read-only and idempotent; the description goes further by stating that no token or key is ever exposed from the address and that the output states whether the address matches the panel's expectation. This adds safety and interpretation context beyond the annotations.

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?

Three sentences, each meaningful: report contents, diagnostic use-case, and privacy caveat. Key information is front-loaded in the first sentence. No filler or repetition.

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

Completeness5/5

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

For a simple diagnostic tool with two documented parameters and no output schema, the description covers all relevant expectations: what the report contains, what insight it provides, and the security guarantee about secrets. Nothing essential is missing.

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 100%: both bot and case are described in the schema, including the default fallback for case. The description adds no parameter-level detail, so it stays at the baseline for high schema coverage.

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 names a concrete resource ('Отчёт самой платформы') and specifies the exact outputs: delivery address, count of pending updates, and last delivery error. This clearly distinguishes bots_webhook_check from action-oriented siblings like bots_webhook_rotate.

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

Usage Guidelines4/5

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

It gives an explicit trigger scenario: use when a webhook-mode bot is silent but the panel side looks healthy ('Единственный способ понять...'). It does not, however, spell out when not to use it or name alternative diagnostic tools.

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

bots_webhook_infoГотовность панели к вебхукамA
Read-onlyIdempotent

Публичный адрес панели и условия для включения режима webhook. Бот не требуется.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that no bot is required and that it returns a public address plus conditions, but does not disclose auth requirements, rate limits, or response format beyond that.

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?

Two short sentences with no waste, front-loading the main resource and immediately clarifying the bot-not-required condition.

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 simple, read-only info tool with one optional parameter and rich annotations, the description is sufficient: it explains what is returned and that no bot is needed. It could be slightly more complete by stating the read-only nature explicitly, but the annotations already cover that.

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 100% and the single optional 'case' parameter is fully described in the schema. The description adds no parameter-level detail; baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description names the returned resource ('public address of the panel and conditions for enabling webhook mode') and adds a clarifying constraint ('bot not required'), making the tool's output clear. However, it lacks an explicit verb and does not differentiate itself from siblings like bots_webhook_check or bots_webhook_rotate.

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

Usage Guidelines3/5

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

Usage is implied: checking conditions before enabling webhook mode and the note that no bot is required hint at when the tool is relevant. But there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives such as bots_webhook_check.

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

bots_webhook_rotateСменить адрес вебхукаA
Destructive

Выдаёт боту новый секретный адрес вебхука. Прежний перестаёт работать навсегда — это нужно, если старый адрес утёк. Работающий бот перезапускается.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already mark destructiveHint=true, and the description adds that the old address 'stops working forever' (перестаёт работать навсегда), reinforcing irreversibility. It also reveals a new side effect: the running bot restarts (работающий бот перезапускается), which annotations don't cover. This gives valuable operational context beyond the structured hints.

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?

Three short sentences in Russian, each with a distinct purpose: action, condition, and side effect. No filler words, and the main verb appears in the first sentence, front-loading the purpose.

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 destructive, non-idempotent tool with no output schema, the description covers the key aspects: what it does, when to use it, and permanent consequences. It lacks explicit permission requirements, but given the annotations and schema, it is thorough enough for an agent to invoke the tool correctly.

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?

The schema already describes both parameters (bot and case) with 100% coverage, so the baseline is 3. The description doesn't add parameter-specific semantics, but the schema does the heavy lifting. No additional meaning is provided by the description.

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 clearly states the tool 'issues a new secret webhook address' (Выдаёт боту новый секретный адрес вебхука) for the bot, indicating a rotation action. It distinguishes from sibling bot tools (bots_get, bots_save, bots_delete) by focusing specifically on address rotation. The title 'Сменить адрес вебхука' aligns perfectly.

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

Usage Guidelines4/5

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

The description explicitly says this is needed 'if the old address leaked' (если старый адрес утёк), giving a clear trigger for use. It warns that the previous address stops working forever, implying it is not for routine changes. It doesn't name alternatives but provides sufficient context for when to use it.

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

broadcasts_attachПриложить файл к рассылкеA

Прикладывает локальный файл к черновику или ещё не начавшейся рассылке.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.
file_pathYesПуть к локальному файлу, до 20 МиБ.
content_typeNoMIME; без него определяется по имени.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the mutation profile (readOnly=false, destructive=false, idempotent=false, openWorld=true), so the safety bar is low. The description adds one genuinely useful behavioral fact — attachment is only permitted while the broadcast is a draft or not started. It omits any note on permissions, replacement semantics, or the non-idempotent behavior.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; verb and object come first. It is arguably terse for a mutation tool, but nothing is wasted.

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

Completeness3/5

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

For a mutation tool with annotations covering the safety profile and a fully documented schema, the description is minimally adequate. It omits success/error behavior, whether an existing attachment is replaced, and permission requirements, leaving gaps for an agent handling failure cases.

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 100% and every parameter is documented there, including the 20 MiB size limit and MIME auto-detection. The description adds no parameter detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (attaches), a specific resource (a local file), and a precise target (a broadcast). The scope qualifier 'draft or not-yet-started broadcast' clearly separates it from broadcasts_detach and broadcasts_start, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

The phrase 'к черновику или ещё не начавшейся рассылке' acts as a clear precondition: the broadcast must not yet be running. This tells the agent when the tool is valid, but it names no alternative tool and gives no explicit when-not guidance.

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

broadcasts_cancelОстановить рассылкуA

Останавливает рассылку: то, что ещё не ушло, не уйдёт. Отправленное вернуть нельзя, счётчики остаются. Повторить неудачные отправки — broadcasts_retry; составить новый черновик из этой рассылки — broadcasts_duplicate.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare non-destructive, non-idempotent, open-world, but the description adds genuinely useful behavior: already-sent messages cannot be recalled and counters remain, i.e. the operation is a partial, irreversible-in-effect stop. It does not contradict destructiveHint=false since no data is deleted. Lacks note on permissions or response, keeping it from a 5.

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?

Three compact sentences, effect stated first, then the two sibling routes. Every clause earns its place with no 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 mutation tool with no output schema, the description covers the core outcome and the relevant alternatives, and annotations carry the safety profile. It stops short of noting permission requirements or confirming what the call returns, which would complete the picture.

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 100% and both parameters (case, broadcast) already document names/IDs and the default-case behavior in the schema itself. The description adds nothing about parameter format or defaults, so the baseline 3 applies.

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?

States a specific verb and resource ('Останавливает рассылку') and immediately clarifies the effect ('то, что ещё не ушло, не уйдёт'), which distinguishes it from broadcasts_delete and broadcasts_retry. An agent can pick this over the siblings without opening any schema.

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?

Explicitly routes to alternatives with conditions: retry failed sends goes to broadcasts_retry, creating a new draft from this broadcast goes to broadcasts_duplicate. This is exactly the when/when-not guidance the dimension asks for.

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

broadcasts_deleteУдалить рассылкуA
Destructive

Удаляет рассылку и отчёт. Идущую сначала остановите; отправленное не отзывается.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.
confirm_nameYesТочное название рассылки — подтверждение действия.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the destructiveHint=true annotation, the description discloses what actually gets destroyed (the broadcast plus its report), a required precondition (stop a running broadcast first), and the irreversible nature of sent messages. This is meaningful behavioral context the structured fields do not carry.

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?

Two terse sentences with no filler; the destructive scope is front-loaded and the precondition/warning follow in priority order.

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 destructive mutation with annotations already covering the safety profile and a fully documented schema, the description supplies the essential extra context (report deletion, stop-first precondition, irreversibility). Minor gap: it doesn't reinforce the confirm_name confirmation requirement, though the schema covers it.

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 100%, so all three parameters (case, broadcast, confirm_name) are already fully documented in the schema. The description adds no format or meaning beyond what the schema provides, which is the expected baseline of 3 when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource ('Удаляет рассылку и отчёт') and even adds the extra scope that the associated report is deleted too. However, it does not name or contrast the sibling it is easily confused with (broadcasts_cancel), leaving differentiation to inference.

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

Usage Guidelines4/5

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

Provides a clear precondition ('Идущую сначала остановите') and an explicit limitation ('отправленное не отзывается'), which tells the agent when this tool is appropriate and when it is not. It stops short of naming the alternative tool (broadcasts_cancel) directly.

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

broadcasts_detachСнять вложение рассылкиA

Снимает вложение черновика или ещё не начавшейся рассылки.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true, so the agent knows this mutates state safely without destruction. The description adds the precondition that the broadcast must be a draft or not yet started, which is useful behavioral context beyond annotations. However, it does not clarify whether the attachment itself is deleted or merely unlinked, nor does it describe permissions or error behavior.

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?

A single, front-loaded sentence with no redundancy. It delivers the essential scope constraint immediately.

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 simple mutation with full schema documentation and annotations covering mutation/safety, the description's scope constraint is sufficient to invoke correctly. It omits return-value detail, but no output schema exists, and the precondition is the main behavioral nuance.

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 100% for both parameters (case, broadcast), so the schema already provides full semantic detail. The description adds no parameter-level information, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (Снимает вложение) and resource (черновика или ещё не начавшейся рассылки), distinguishing it from broadcasts_attach by direction and from broadcasts_delete/cancel by scope. The qualification 'draft or not-yet-started' helps identify the tool, though it does not name a sibling alternative explicitly.

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

Usage Guidelines3/5

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

The description implies usage by restricting to drafts or not-yet-started broadcasts, which serves as a when-to-use condition. It offers no explicit when-not-to-use guidance or alternatives, leaving the agent to infer that other broadcast states are handled by broadcasts_cancel or broadcasts_delete.

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

broadcasts_duplicateСкопировать рассылку в черновикB

Копия не отправляется. only_missed исключает тех, кто получил исходную рассылку.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.
only_missedNoИсключить уже получивших. По умолчанию нет.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) already signal a non-destructive write. The description adds genuinely useful context: the copy is never sent, and only_missed filters out recipients of the original — exactly the behavioral facts an agent needs before invoking a duplicate operation.

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

Conciseness4/5

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

Two short sentences, with the most decision-relevant fact ('Копия не отправляется') front-loaded and no filler. The phrasing is clipped and slightly telegraphic, which costs a point relative to a fully self-contained statement.

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

Completeness3/5

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

There is no output schema, and the description does not say what the draft contains or where it lands after duplication, nor does it clarify required context for the broadcast/case parameters. It covers the critical 'not sent' question but leaves the agent to infer the rest.

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 100%, so all three parameters are documented in the schema (case, broadcast, only_missed). The description only re-states only_missed with slightly more precision ('получил исходную рассылку'), adding marginal value over the schema baseline of 3.

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

Purpose4/5

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

The title 'Скопировать рассылку в черновик' states a specific verb+resource (copy broadcast into draft), and the description confirms a copy is produced. It does not distinguish itself from siblings like broadcasts_save or broadcasts_retry, but the copy-to-draft action is unambiguous.

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

Usage Guidelines2/5

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

The description says nothing about when to duplicate versus when to use broadcasts_save, broadcasts_attach, or broadcasts_start. There are no prerequisites or exclusions offered; the agent must infer usage from the name and title alone.

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

broadcasts_getОткрыть рассылкуC
Read-onlyIdempotent

Текст, кнопки по рядам, вложение, условия отбора и состояние рассылки.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds no behavioral context of its own — no scope, no permission note, no error behavior — it only lists the fields of the returned object.

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

Conciseness3/5

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

It is a single short fragment with no padding, so there is no wasted text. However, the structure is a bare noun list rather than a front-loaded statement of purpose, so brevity here reflects under-specification as much as conciseness.

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

Completeness3/5

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

With no output schema, the description does carry the burden of describing what comes back, and it does imply the returned object's composition (text, buttons, attachment, targeting, state). But it omits what the tool does, its scope, and any behavior, leaving the definition only minimally viable for a 2-parameter get tool.

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 100%: both 'case' and 'broadcast' are documented in the schema, including fallback resolution for 'case'. The description contributes nothing about either parameter, so the baseline 3 for schema-carried semantics applies.

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

Purpose3/5

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

The description never states a verb or an action — it only enumerates the broadcast's contents ('текст, кнопки по рядам, вложение, условия отбора и состояние'). An agent can infer that this returns broadcast details, which is better than a pure restatement of the title, but the tool's actual operation is left to inference and is not distinguished from siblings like broadcasts_preview or broadcasts_save.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as broadcasts_list (to enumerate) or broadcasts_preview (to render). The agent must guess the retrieval context entirely from the name.

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

broadcasts_listРассылки делаA
Read-onlyIdempotent

Рассылки дела с условиями отбора, текстом и счётчиками: скольким ушло, скольким не дошло и сколько пропущено — это те, кто закрыл боту рот. Состояния: draft — черновик, его ещё можно править и запускать; scheduled — ждёт своего срока или ближайшего оборота рассыльщика; running — идёт; done — закончена; cancelled — остановлена; failed — не с чего было начать.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoПодстрока названия или текста.
botNoОтобрать рассылки этого бота.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
limitNoСколько записей вернуть, максимум 100. По умолчанию 30.
offsetNoСколько записей пропустить.
statusNolive — scheduled/running; done — done/cancelled; draft и failed отдельно.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description adds genuine domain behavior beyond that: it interprets the delivery counters (skipped = user blocked the bot) and explains what each lifecycle state means operationally (draft is still editable and launchable, scheduled waits for the next sender pass), which an agent cannot derive from the enum alone.

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

Conciseness4/5

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

Two sentences, front-loaded with what the tool returns before drilling into status states; nothing is off-topic and there is no filler. The parenthetical about skipped recipients is colloquial but still informative, so the density stays justified.

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

Completeness5/5

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

For a read-only, idempotent list tool with no output schema, the description covers what is returned, the counter meanings, and the full status vocabulary. Annotations carry the safety profile and the schema carries every parameter, so nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by expanding each state beyond the schema's terse 'live — scheduled/running; done — done/cancelled' mapping, clarifying what draft, running, cancelled and failed actually represent. This meaningfully enriches the status filter semantics rather than restating them.

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

Purpose4/5

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

The description names the resource (рассылки дела) and enumerates the fields returned — selection conditions, text, and delivery counters — so an agent knows this is a list/read of case broadcasts. It never contrasts itself with siblings like broadcasts_get, broadcasts_targets, or broadcasts_start, so routing still requires inference, but the purpose itself is unambiguous.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no naming of alternatives (broadcasts_get, broadcasts_targets, broadcasts_preview all live in the same namespace). The status vocabulary hints at filtering, but the agent is left to infer when this tool is the right choice versus the other broadcast tools.

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

broadcasts_previewКому уйдёт рассылкаA
Read-onlyIdempotent

Прикидка до отправки: сколько разговоров подходит под условия, кто именно (первые 50 по свежести), сколько из них закрыли боту рот и что настораживает в самом сообщении — пустой отбор, слишком широкий, неизвестные подстановки. Разосланное не отзывают, поэтому смотреть надо здесь. Ничего не сохраняет: черновик заводит broadcasts_save. Условия — те же, что у списка разговоров; ни одного условия означает всех собеседников бота.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
modeNobot — разговор ведёт сценарий; operator — ведёт человек.
tagsNoМетки: подходит любая из перечисленных, а не все сразу.
textYesТекст сообщения. Подстановки: {{имя}}, {{фамилия}}, {{username}}, {{полное_имя}}, {{bot.name}} — незнакомые уйдут получателю как есть.
buttonsNoКнопки-ссылки: не больше шести рядов по три кнопки. [] снимает все кнопки.
audienceNoУсловия целиком, как в broadcasts_get. audience={} явно снимает все условия; не сочетайте с отдельными mode/tags/assigned_to и другими условиями.
languageNoЯзык собеседника, как его сообщает платформа: ru, en. Сообщает не всякая.
parse_modeNoHTML — разметка сообщения. Пусто — обычный текст. По умолчанию пусто.
quiet_daysNoМолчат дольше стольких дней.
assigned_toNoТолько разговоры, назначенные этому участнику: почта, имя или идентификатор.
exclude_tagsNoМетки, которые исключают из отбора: «всем клиентам, кроме отписавшихся».
joined_afterNoПришли не раньше этого дня: YYYY-MM-DD.
skip_broadcastNoНе слать тем, кто уже получил другую рассылку: её название или идентификатор. Так повтор не приходит дважды.

TDQS

A4.6/5.0
Behavior4/5

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

With readOnlyHint=true already covering side-effect safety, the description adds genuinely useful behavior: it saves nothing, caps the preview at 50 by freshness, counts silenced conversations, and surfaces warnings (empty/too-broad selection, unknown substitutions). It does not detail the exact response shape, but the annotation already carries the safety profile.

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

Conciseness4/5

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

Dense but front-loaded: the preview outcome and the 'cannot be recalled' motivation come first, the save-nothing note and selection rule follow. Slightly long but every clause conveys distinct information.

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

Completeness5/5

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

For a 14-parameter tool with a nested audience object and no output schema, the description compensates by describing what the preview returns (counts, first-50 listing, silenced count, message warnings) and clarifying selection defaults. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-tool semantics not present in the schema: audience conditions are 'the same as the conversation list' and an empty condition set selects all counterparts. That meaningfully helps interpret the 14 parameters without re-listing them.

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?

States a specific verb+resource: a pre-send estimate of a broadcast that reports how many conversations match, who (first 50), how many silenced the bot, and message problems. It also names the sibling it is not ('черновик заводит broadcasts_save'), so the agent can distinguish it from the save/start siblings.

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?

Explicitly routes usage: 'смотреть надо здесь' before sending because 'Разосланное не отзывают', and points to broadcasts_save for creating the draft. It also states the selection semantics (no conditions = all counterparts), giving clear when-to-use context.

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

broadcasts_retryПовторить рассылку недошедшимA
Destructive

Повторно отправляет недошедшие сообщения. Уже получившие не получают второй раз.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.
confirm_nameYesТочное название рассылки — подтверждение действия.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so safety is largely covered. The description adds genuinely useful scope behavior beyond that: only undelivered recipients are targeted, and already-delivered recipients are not re-messaged. It omits permission requirements and whether the action can be undone, keeping it from a 5.

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?

Two short sentences, zero filler, with the core action front-loaded and the non-duplication guarantee following. Well-sized for the complexity.

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?

With full schema coverage, rich annotations, and no output schema, the description supplies enough to call the tool correctly: it discloses the scope of the retry. Only the absence of any routing hint toward alternative broadcast tools leaves a minor gap.

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 100%, and the schema explains all three parameters including the case-default fallback logic and confirm_name's role. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource: resends undelivered messages, which cleanly distinguishes it from broadcasts_start, broadcasts_cancel, and broadcasts_delete. It stops short of explicitly naming which sibling to use instead, but the action itself is unambiguous.

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

Usage Guidelines3/5

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

The description implies the usage context (retrying a broadcast that partially failed) via 'недошедшие сообщения', but never states the prerequisite or when to prefer it over broadcasts_start or broadcasts_save. Usage is left to inference.

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

broadcasts_saveСоставить или поправить рассылкуA

Без параметра broadcast заводит черновик — он никуда не уходит, пока его не запустят (broadcasts_start). С параметром broadcast правит черновик, а также рассылку, поставленную на срок и ещё не ушедшую. Начавшуюся правкой уже не догнать — её останавливают через broadcasts_cancel. Бота меняют, только сняв вложение. Условия отбора при правке заменяются целиком теми, что переданы, а не дополняются; не передали ни одного — прежние остаются. Разметку HTML панель проверяет здесь же: платформа отбила бы сообщение с незакрытым тегом сразу у всех.

ParametersJSON Schema
NameRequiredDescriptionDefault
botNoБот, от имени которого уйдёт сообщение: название, @username или идентификатор. Нужен для новой рассылки; у черновика можно сменить, если нет вложения.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
modeNobot — разговор ведёт сценарий; operator — ведёт человек.
tagsNoМетки: подходит любая из перечисленных, а не все сразу.
textNoТекст сообщения. Подстановки: {{имя}}, {{фамилия}}, {{username}}, {{полное_имя}}, {{bot.name}} — незнакомые уйдут получателю как есть.
titleNoНазвание для списка. Без него панель возьмёт начало текста.
run_atNoКогда начать, ISO 8601. Без срока рассылка идёт сразу после запуска. null убирает ранее назначенный срок.
buttonsNoКнопки-ссылки: не больше шести рядов по три кнопки. [] снимает все кнопки.
audienceNoУсловия целиком, как в broadcasts_get. audience={} явно снимает все условия; не сочетайте с отдельными mode/tags/assigned_to и другими условиями.
languageNoЯзык собеседника, как его сообщает платформа: ru, en. Сообщает не всякая.
broadcastNoКакую рассылку править: название или идентификатор. Не указывайте для новой.
parse_modeNoHTML — разметка сообщения. Пусто — обычный текст.
quiet_daysNoМолчат дольше стольких дней.
assigned_toNoТолько разговоры, назначенные этому участнику: почта, имя или идентификатор.
exclude_tagsNoМетки, которые исключают из отбора: «всем клиентам, кроме отписавшихся».
joined_afterNoПришли не раньше этого дня: YYYY-MM-DD.
skip_broadcastNoНе слать тем, кто уже получил другую рассылку: её название или идентификатор. Так повтор не приходит дважды.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover the safety profile (write, non-idempotent, open world); the description adds non-obvious behavior: drafts never send until broadcasts_start, edits replace audience conditions wholesale rather than merging, omitted conditions leave prior ones intact, and HTML is validated at save time because the platform would otherwise reject the message for all recipients at once.

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

Conciseness4/5

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

Front-loaded with the central create/edit branch, then lifecycle, mutation and validation semantics; six dense sentences with essentially no filler, though the paragraph is tightly packed for a 17-parameter tool.

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

Completeness5/5

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

For a 17-parameter, nested-object mutation tool with no output schema, the description supplies the lifecycle, mutation-replacement, and validation context an agent needs to call it correctly; per-parameter detail is fully carried by the schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema states only locally: the absent-vs-present role of `broadcast`, and the replace-not-supplement rule for audience fields on edit.

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 first sentence states a specific verb+resource branching: without `broadcast` it creates a draft, with it, edits an existing draft or scheduled broadcast. It distinguishes itself from siblings by naming broadcasts_start and broadcasts_cancel as the routes for other lifecycle states.

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?

Explicit when-to-use rules: omit `broadcast` for a new one, pass it to edit; an already-started broadcast cannot be edited and must go through broadcasts_cancel; the bot can only be swapped after detaching the attachment. Alternatives and exclusion conditions are stated rather than implied.

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

broadcasts_startЗапустить рассылкуA
Destructive

Ставит черновик в очередь: рассыльщик разошлёт сообщение всем, кто подошёл под условия. Отправленное не отзывается ни у одного получателя, поэтому сначала broadcasts_preview — пустой отбор означает всех собеседников бота. Со сроком (run_at) рассылка дождётся его. То, что ещё не ушло, останавливают через broadcasts_cancel.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
broadcastYesРассылка: название или идентификатор.
confirm_titleYesТочное название рассылки — подтверждение отправки.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true, openWorldHint=true), the description explains the irreversible consequence: 'Отправленное не отзывается ни у одного получателя' (sent cannot be recalled), and reveals queueing, scheduling via run_at, and the all-recipients risk. This significantly exceeds the structured annotations.

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?

Four short sentences, each with a distinct purpose: queueing, irreversibility warning and preview, scheduling, and cancellation. The action is front-loaded and there is no filler.

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

Completeness5/5

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

For a three-parameter tool with no output schema, this description is unusually complete: it covers the core action, the main risk and mitigation, scheduling semantics, and the follow-up cancel action. Nothing essential for a correct invocation is missing.

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

Parameters4/5

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

The schema already documents every parameter (100% coverage), so the baseline is 3. The description adds rationale for confirm_title as an exact-title confirmation and clarifies scheduling behavior with run_at, adding semantic value beyond the schema.

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 immediately states a specific action and scope: 'Ставит черновик в очередь' (puts a draft into the send queue), which clearly means starting a broadcast. It also distinguishes itself from adjacent siblings by referencing broadcasts_preview and broadcasts_cancel, and from broadcasts_save by emphasizing the draft is already prepared.

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 gives explicit workflow guidance: first use broadcasts_preview to check recipients, and use broadcasts_cancel for anything not yet sent. The warning that an empty selection means all bot interlocutors tells the agent when to be cautious and what to check beforehand.

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

broadcasts_targetsОтчёт по получателям рассылкиC
Read-onlyIdempotent

Кому дошло, кому нет и почему. Фильтры и страницы обрабатывает панель.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoПодстрока имени или ника получателя.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
limitNoСколько записей вернуть, максимум 200. По умолчанию 50.
offsetNo
statusNo
broadcastYesРассылка: название или идентификатор.

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description only needs to add context. It mentions that the panel handles filters and pages, which is vague and slightly at odds with the schema's own filter/pagination params (q, case, limit, offset), and says nothing about ordering, response shape, or access requirements.

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

Conciseness3/5

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

The first sentence is short and front-loads the essential outcome. However, the second sentence about the panel handling filters and pages is ambiguous and arguably redundant given the schema exposes filter and pagination parameters, so it does not fully earn its place.

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

Completeness3/5

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

For a read-only report with no output schema, the description does sketch what is returned (delivery status plus reasons), and annotations carry the safety profile. Still missing are usage context versus sibling broadcast tools and any parameter clarification, leaving the definition minimally adequate.

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

Parameters2/5

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

Schema description coverage is 67% (offset and status undocumented), which is below the 80% threshold where the schema alone justifies a baseline 3. The description adds no parameter meaning at all—no explanation of the q/case/status filters, the mandatory broadcast identifier, or the panel-handling note's relation to limit/offset.

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

Purpose4/5

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

Together with the title ('Отчёт по получателям рассылки'), the description 'Кому дошло, кому нет и почему' clearly conveys a broadcast-recipient delivery report showing who received, who failed, and why. The purpose is understandable, but the description itself names neither the verb (report/list) nor the resource (broadcast recipients), and it does not distinguish this from siblings like broadcasts_get or broadcasts_list.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no reference to any alternative tool such as broadcasts_get or broadcasts_list. The only guideline-like sentence ('Фильтры и страницы обрабатывает панель') describes filtering/pagination handling, not selection criteria.

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

broadcasts_testОтправить пробу рассылкиA
Destructive

Реально отправляет одно сообщение в выбранный диалог от имени бота рассылки.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.
broadcastYesРассылка: название или идентификатор.
confirm_nameYesТочное название рассылки — подтверждение действия.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent and open-world. The description adds real behavioral value beyond them: that a message is genuinely delivered to a live dialog on behalf of the broadcast bot (not simulated), which is the key fact an agent needs before triggering it. It still omits rate limits or side effects of the send.

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?

A single front-loaded sentence that leads with the most consequential fact ('Реально отправляет') and wastes no words.

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?

With 100% schema coverage, full annotations and no output schema, the description only needs to add behavioral framing, which it does. It could note that confirm_name is a safety gate, but for a destructive send the essential fact is present, so it is nearly complete.

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 coverage is 100%, so each parameter (case, dialog, broadcast, confirm_name) is already documented in the schema. The description only refers to 'the selected dialog', adding no syntax or selection detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: it sends one real message to the selected dialog as the broadcast bot. The word 'проба' (trial) and 'одно сообщение' (one message) differentiate it from a full launch, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

'Реально отправляет' (actually sends) implicitly contrasts with a preview/dry-run, so the intended use — a trial send before launching — is inferable. However, no alternative sibling (broadcasts_preview, broadcasts_start) is named and no prerequisites or when-not-to-use are given.

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

cases_deleteУдалить делоA
Destructive

Удаляет дело целиком: боты, сценарии, переписка, участники и роли. Восстановить нельзя. Чтобы просто убрать дело из списка, используйте cases_save с archived=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseYesДело: название или идентификатор.
confirm_nameYesТочное название дела — подтверждение, что удаляется именно оно.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description adds concrete details: which entities are destroyed, and that deletion cannot be undone ('Восстановить нельзя'). This gives the agent a clear picture of the irreversible destructive scope, which is more than the annotation alone.

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 just two sentences, both information-dense. The first states the action and its scope, the second states irreversibility and the alternative. There is no redundant or filler content, making it optimally concise.

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

Completeness5/5

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

For a destructive mutation tool with no output schema, this description is fully complete: it tells what is deleted, warns about irreversibility, and gives an alternative for a milder action. Combined with the schema's 100% parameter coverage, the agent has all the information needed to invoke it correctly.

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?

Both parameters (case, confirm_name) have full schema descriptions with 100% coverage. The description adds no additional parameter-level detail, so the baseline of 3 applies; there is no need for the description to repeat what the schema already provides.

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 clearly states the tool deletes an entire case ('Удаляет дело целиком') and enumerates exactly what gets deleted (bots, scenarios, correspondence, participants, roles). It also distinguishes itself from archiving via cases_save, making it unambiguous.

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?

The description explicitly provides an alternative: 'Чтобы просто убрать дело из списка, используйте cases_save с archived=true' (to simply remove from list, use cases_save with archived=true). This tells the agent when not to use this tool, which is exactly the needed guidance.

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

cases_getОткрыть делоA
Read-onlyIdempotent

Карточка дела: права текущего пользователя в нём и сводка — боты, диалоги, переписка за выбранный срок, отложенные действия, базы знаний, участники.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
daysNoЗа сколько дней считать переписку: 7, 14 или 30. По умолчанию 7.

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context about what the returned case card contains, including current user rights in the case and the list of summary categories. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single dense sentence with no filler words. It lists multiple summary categories, which is informative, but the long list makes it slightly heavy—still reasonably concise for the richness it conveys.

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

Completeness5/5

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

Given two optional parameters, no output schema, and strong annotations, the description is sufficient for an agent to know what the tool returns: user permissions and a composite case summary. It also clarifies the date-bound correspondence aspect referenced by the 'days' parameter.

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 100%, and both parameters are already documented in the input schema: 'case' explains the matching and fallback behavior, and 'days' says 7/14/30 with a default of 7. The description does not need to add further parameter-level meaning.

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 clearly defines the tool as a case card ('Карточка дела') that returns the current user's rights and a summary of bots, dialogs, correspondence, deferred actions, knowledge bases, and participants. This distinguishes it from cases_list, cases_save, and cases_delete.

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

Usage Guidelines3/5

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

The description implies the tool is used for viewing/opening a single case with details and rights, but it does not explicitly state when to use it instead of sibling tools like cases_list or bots_get. No when-not-to-use or alternative tool mention is present.

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

cases_leaveВыйти из делаA
Destructive

Убирает вас из числа участников дела. Владелец выйти не может — сначала нужно передать дело другому участнику (case_transfer).

ParametersJSON Schema
NameRequiredDescriptionDefault
caseYesДело: название или идентификатор.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds a valuable behavioral constraint: the owner cannot leave and must transfer the case first. This goes beyond the annotation flags and provides real context about preconditions and limitations.

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?

Two concise sentences, front-loaded with the primary action followed by the exception and alternative. Every word earns its place; there is no redundancy or unnecessary elaboration.

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 simple action with one parameter and no output schema, the description covers the core action, the key restriction, and the alternative. It does not mention edge cases like non-participant behavior, but given the annotations and simplicity, it is nearly complete.

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?

The input schema has 100% coverage for the single parameter 'case' with a clear description ('Дело: название или идентификатор'). The tool description does not add further detail about the parameter, so baseline 3 is appropriate.

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 clearly states the tool's function: 'Убирает вас из числа участников дела' (removes you from case participants). It specifies the action (remove) and the resource (your membership in the case), distinguishing it from sibling tools like case_transfer, which transfers ownership, and members_remove, which likely removes other members.

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?

The description explicitly states when the tool cannot be used ('Владелец выйти не может') and provides a clear alternative: 'сначала нужно передать дело другому участнику (case_transfer)'. This gives the agent actionable guidance on when to use this tool versus the case_transfer sibling.

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

cases_listСписок делA
Read-onlyIdempotent

Все дела, к которым есть доступ, с ролью, правами и счётчиками ботов и непрочитанного.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_archivedNoПоказать и архивные дела. По умолчанию нет.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the operation read-only, open-world, idempotent, and non-destructive. The description adds value by specifying the access scope and response contents (role, rights, bot/unread counters), enriching behavioral understanding without contradicting the annotations.

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 a single, front-loaded sentence that immediately conveys the tool's purpose and scope. It contains no filler or redundant information relative to the annotations.

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 straightforward list tool with one optional parameter and rich annotations, the description is sufficient: it names the resource, access scope, and returned data fields. It does not describe pagination or the exact array format, but the absence of an output schema and the tool's simplicity make this a minor gap.

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?

The only parameter (include_archived) is fully described in the schema with a default value, and the schema coverage is 100%. The description does not add parameter details, but the baseline of 3 is appropriate because the schema carries the semantic burden.

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 states the tool lists all accessible cases ('Все дела, к которым есть доступ') and specifies the included data: role, rights, bot and unread counters. This clearly identifies it as the list operation for cases, distinguishing it from sibling tools like cases_get or cases_delete.

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

Usage Guidelines3/5

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

The description provides context that the tool returns only cases the user has access to and includes an optional archived filter, but it does not explicitly state when to prefer this over cases_get or other list tools. Usage is implied rather than directly contrasted with alternatives.

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

cases_saveСоздать или изменить делоA

Без указания дела создаёт новое (вы становитесь владельцем, разворачиваются пять ролей: владелец, администратор, конструктор, оператор, наблюдатель). С указанием — меняет название, описание, знак и оформление или убирает дело в архив.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoКакое дело менять. Не указывайте, чтобы создать новое.
nameNoНазвание дела.
emojiNoЗнак дела, например 🛍. По умолчанию ◆.
accentNoОформление: platinum, signal, aurora, ultra, ember, moss, rose.
archivedNoУбрать дело в архив или вернуть из него. Только при изменении.
settingsNoНастройки дела: карта целиком.
descriptionNoОписание; null — очистить.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this as a non-read-only, non-destructive, non-idempotent write tool. The description adds meaningful side-effect detail: creating a case makes the caller owner and deploys five roles, while updating can change fields or archive the case.

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?

Two compact sentences with no wasted wording. The create case is front-loaded, followed immediately by the update/archive case.

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 7-parameter save tool with no required parameters and no output schema, the description covers the main create/update split and key side effects. It omits the nested 'settings' parameter and the unarchive behavior that the schema mentions.

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 100%, so each parameter is already documented. The description synthesizes the role of the 'case' parameter and lists some editable fields, but adds little beyond what the schema already states.

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

Purpose4/5

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

The description states a specific create-or-update purpose and clearly explains the two modes controlled by the 'case' parameter. It does not, however, explicitly differentiate itself from sibling case tools such as cases_get, cases_list, or cases_delete.

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

Usage Guidelines4/5

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

It gives clear context for both modes: omit 'case' to create a new case, provide it to modify an existing one. It does not mention when to avoid this tool or name alternative case-management tools.

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

case_transferПередать делоA
Destructive

Делает другого участника владельцем дела. Прежний владелец переводится в администраторы и теряет право на повторную передачу — вернуть дело сможет только новый владелец.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseYesДело: название или идентификатор.
memberYesНовый владелец: почта, имя или идентификатор участия.
confirm_nameYesТочное название дела — подтверждение передачи.

TDQS

A4.2/5.0
Behavior5/5

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

The description goes beyond the destructiveHint annotation by explaining exactly what happens to the previous owner (demoted to admin, loses re-transfer rights) and that only the new owner can transfer back. This provides critical behavioral detail not available elsewhere.

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 two sentences long, front-loaded with the core action, and every clause adds value. No filler or redundancy.

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 destructive, non-idempotent tool with no output schema, the description explains the transfer, the consequences for both parties, and the irreversible nature. It lacks explicit prerequisites (e.g., current owner must invoke) but is otherwise complete for safe operation.

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 descriptions cover 100% of parameters, so the baseline is 3. The tool description does not add additional parameter meanings beyond the schema, leaving confirm_name and member semantics to the schema.

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 clearly states the action: making another participant the owner of a case. It distinguishes from related tools like cases_leave or cases_delete by specifying the transfer of ownership and its consequences, so the purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage scenarios (when you need to change case ownership) but does not explicitly contrast with alternatives or state when not to use it. The context is clear enough for an agent to infer, but explicit guidance is missing.

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

counterparties_deleteУдалить контрагентаA
Destructive

Удаляет карточку и снимает её связи с диалогами. Нужно дословное name для подтверждения.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
confirm_nameYes
counterparty_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the danger is known. The description adds genuine value beyond that by disclosing the collateral effect ('снимает её связи с диалогами') and the confirmation safeguard requiring the exact name. It does not address permissions or reversibility, so not a 5.

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?

Two short sentences with zero filler. The destructive action is front-loaded and the confirmation requirement follows immediately.

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 destructive mutation with no output schema, the definition covers the action, its side effect, and the confirmation guardrail; annotations cover the safety profile. It omits any mention of the returned result or failure behavior, but for an agent deciding whether/how to call it, this is nearly complete.

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 coverage is only 33% (only 'case' is described). The description compensates for confirm_name by explaining it must be the verbatim name for confirmation, which is genuinely useful. However counterparty_id remains undocumented and no format/behavior detail is added, so it does not fully cover the gap.

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

Purpose4/5

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

States a specific verb (удаляет) and resource (карточку контрагента) and even names a side effect — removing links to dialogs. This clearly separates it from sibling read tools like counterparties_get/list. It does not explicitly name which sibling it differs from, keeping it just short of a 5.

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

Usage Guidelines3/5

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

The description implies the destructive use case and gives a precondition (exact name needed for confirmation), but offers no explicit when-to-use/when-not guidance or named alternatives. Usage is only inferable from the verb.

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

counterparties_dialogsДиалоги и их контрагентыA
Read-onlyIdempotent

Без dialog_id показывает доступные диалоги для связывания с карточкой. С dialog_id возвращает связанного контрагента либо сообщает, что связи нет. Нужны права chat.view.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
searchNo
dialog_idNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real context beyond that: the required chat.view permission and the fact that a missing link is reported rather than erroring.

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?

Three short sentences, each earning its place, with the conditional modes front-loaded ahead of the permission note. Zero waste.

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?

No output schema, but the description explains what each mode returns, including the negative case (no link). For a read-only lookup with idempotent/non-destructive annotations, this is nearly complete; only the search/case parameters go unexplained.

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 only 33%—dialog_id has no description in the schema, and the description usefully explains its role as the mode switch. But 'case' and 'search' carry no meaning in the description, leaving one undocumented param and one only partially clarified by the schema.

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

Purpose4/5

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

The description states a specific dual-mode behavior: without dialog_id it lists dialogs available for linking, with dialog_id it returns the linked counterparty. This is a clear verb+resource, though it never names a sibling tool to differentiate against (e.g. counterparties_link, counterparties_get, dialogs_list).

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

Usage Guidelines3/5

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

The with/without dialog_id split implies when each mode applies, which is useful conditional guidance. However, it gives no explicit when-to-use versus alternatives, no exclusions, and does not route the agent to the sibling tools that perform the actual linking.

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

counterparties_getОткрыть контрагентаA
Read-onlyIdempotent

Карточка контрагента по UUID из counterparties_list. Диалоги видны только с правом chat.view.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
counterparty_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive. The description adds real value beyond them: the dialogs field is gated on the chat.view right, which an agent cannot learn from the annotations. It still omits what happens on a missing/unauthorized counterparty, so not a 5.

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?

Two short, front-loaded sentences: the entity and its key source come first, then the visibility caveat. No filler or repetition.

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 read-only single-entity fetch with no output schema, the definition covers the required identity source and the one behavioral caveat (dialog visibility). It leaves the card's contents and error behavior unstated, but annotations carry the safety profile, so this is nearly complete.

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 only 50% – 'case' is documented in the schema but counterparty_id carries only a pattern. The description partially compensates by stating counterparty_id is a UUID sourced from counterparties_list, but adds nothing about the 'case' parameter's default-resolution behavior.

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

Purpose4/5

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

States a specific verb+resource ('Карточка контрагента') and scopes it to a UUID obtained from counterparties_list, which separates it from that sibling. It does not distinguish itself from other counterparties_* siblings it could be confused with (e.g. counterparties_dialogs), so it falls short of a 5.

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

Usage Guidelines3/5

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

The phrase 'по UUID из counterparties_list' implies the workflow (list first, then fetch one) and the chat.view permission prerequisite is stated. However, it never says when NOT to use it or names an alternative for bulk/lookup-by-name needs, so guidance is implied rather than explicit.

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

counterparties_listКонтрагенты делаC
Read-onlyIdempotent

Контрагенты с контактами, заметками, дополнительными полями и доступными связанными диалогами.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
searchNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered without the description. The description does add useful context about the shape of the payload (contacts, notes, extra fields, linked dialogs), but says nothing about pagination, result ordering, or volume limits.

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

Conciseness4/5

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

A single well-formed sentence with no wasted words, front-loading the resource and enumerating the returned sub-entities. It is concise, though arguably too terse to carry the tool's full semantics.

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

Completeness3/5

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

With no output schema, the description usefully sketches what a counterparty record contains, and annotations cover the read-only profile. However, it omits any explanation of the free-text 'search' parameter or the default-case resolution behavior implied by the schema, leaving the definition only minimally complete.

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

Parameters2/5

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

Schema coverage is only 50% (the 'search' parameter has no schema description), and the description supplies no parameter meaning whatsoever, so it fails to compensate for the gap. Only the 'case' parameter is documented, and that is done entirely in the schema, not the description.

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

Purpose3/5

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

The description names the resource (counterparties) and enumerates what it surfaces (contacts, notes, custom fields, related dialogs), but it uses no verb and never states that this is a list/retrieval operation. It does not distinguish itself from the very similar sibling counterparties_get, so an agent cannot confidently choose between them from the text alone.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no mention of alternatives such as counterparties_get, counterparties_dialogs or counterparties_settings, and no stated prerequisites. Usage is only faintly implied by the plural resource name.

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

counterparties_reconcileСопоставить имеющиеся диалогиA

Запускает серверное автоматическое сопоставление по текущим настройкам, возвращает linked/created/skipped. Ручные связи учитывает сама панель.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description goes further by clarifying the operation is server-side, uses current settings, and returns linked/created/skipped — information not conveyed by annotations. It doesn't detail side effects or permissions, but given the annotation coverage this is solid.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and outcome. No wasted words, though the second sentence about manual links could arguably be merged or trimmed.

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 single-parameter, no-output-schema tool with annotations covering safety/side-effect hints, the description covers what the tool does, what it returns, and a key behavioral nuance (manual links ignored). Missing only explicit usage alternatives, but it is otherwise complete.

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 100% for the single 'case' parameter, so the schema already explains its meaning and fallback behavior. The description adds nothing about the parameter, which is acceptable given full schema coverage — baseline 3.

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

Purpose4/5

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

The description states a specific verb and resource — 'Запускает серверное автоматическое сопоставление' (launches server-side automatic matching) — and names the outputs (linked/created/skipped). It is clearly distinct from siblings like counterparties_link/counterparties_get, though it doesn't explicitly name an alternative.

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

Usage Guidelines3/5

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

Implies usage via the phrase 'по текущим настройкам' (per current settings) and notes that manual links are handled by the panel itself, which hints at scope. But there is no explicit when-to-use/when-not guidance or reference to sibling tools like counterparties_link.

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

counterparties_saveСоздать или изменить контрагентаA

Без counterparty_id создаёт карточку; для создания нужно name, dialog_ids содержит явно выбранные UUID. При правке передавайте только изменённые поля; null очищает контакт, custom_fields заменяет карту целиком. Связи существующей карточки меняют через counterparties_link/unlink.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
nameNo
emailNo
notesNo
phoneNo
companyNo
dialog_idsNo
custom_fieldsNo
counterparty_idNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare mutation status (readOnlyHint=false) and open-world/idempotency hints, but the description adds critical behavioral detail beyond them: null clears a contact field, custom_fields replaces the whole map, dialog_ids must be explicitly selected, and only changed fields should be passed during an edit. These are meaningful mutation semantics not present in the structured data.

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?

Three compact semicolon-separated clauses, front-loading the create/update condition first. Every sentence carries actionable information with no filler.

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

Completeness5/5

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

For a 9-parameter create-or-update mutation with nested objects and no output schema, the description covers the essential call semantics: create vs edit, required fields for creation, partial-edit behavior, null clearing, full replacement of custom_fields, and where link changes belong. No output-schema explanation is needed.

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

Parameters4/5

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

Schema description coverage is only 11%, so the description must compensate, and it does add key semantics: counterparty_id selects create vs update, name is required for creation, dialog_ids must be explicit UUIDs, null clears contact fields, and custom_fields replaces the map entirely. However, it does not cover every parameter (e.g., notes, case specifics are left to the schema), so it is strong but not complete.

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 first sentence states a specific verb+resource and the condition that selects create versus edit: 'Without counterparty_id creates a card'. It also names the sibling tools for a related operation ('links of an existing card are changed via counterparties_link/unlink'). An agent can distinguish this save tool from counterparties_get, counterparties_list, and counterparties_delete without opening further schemas.

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?

Explicit when-to-use guidance: omit counterparty_id to create, pass it to edit, and for creation name is required and dialog_ids must contain explicitly selected UUIDs. It also states the edit convention ('pass only changed fields'), the null behavior, and the alternative for link management. This gives clear conditions and alternatives.

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

counterparties_settingsНастройки сопоставления контрагентовC
Read-onlyIdempotent

Ручной или автоматический режим, критерии и переменные для сопоставления диалогов.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds domain content only and does not disclose return behavior, pagination, or any other trait beyond the annotations.

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

Conciseness4/5

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

It is a single short sentence fragment, tightly scoped and front-loaded with the settings categories. There is no filler, though the fragment lacks a verb.

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

Completeness2/5

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

For a settings-retrieval tool with read-only annotations and no output schema, the description still leaves key information missing: it never states the tool returns settings, nor how to invoke it relative to the save sibling. The agent must infer too much.

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 coverage is 100% and the single optional 'case' parameter is fully documented in the input schema. The description adds no parameter syntax or constraints beyond what the schema provides, so baseline 3 applies.

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

Purpose3/5

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

The description names the resource and its contents (manual/automatic mode, criteria, variables) but provides no verb indicating whether it reads, writes, or manages settings. It therefore does not clearly distinguish this retrieval-side tool from siblings like counterparties_settings_save.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus counterparties_settings_save or other counterparty tools. An agent must infer that this returns settings while the sibling mutates them.

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

counterparties_settings_saveИзменить сопоставление контрагентовA

Меняет только переданные настройки. В automatic нужен хотя бы один критерий; с включённым сопоставлением телефона или почты соответствующая переменная не должна быть пустой. Для обработки имеющихся диалогов вызовите counterparties_reconcile.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
modeNo
match_emailNo
match_phoneNo
email_variableNo
phone_variableNo
create_unmatchedNo
match_platform_idNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and idempotentHint=false, so the agent knows this is a non-idempotent write. The description adds a key behavioral detail—only passed settings are changed, not a full replacement. However, it doesn't explain what happens to omitted settings, whether existing reconciliations are affected, or permission requirements. With annotations covering the safety profile, this is adequate but not rich.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core mutation behavior. The constraints are stated compactly. No wasted words, though the dependency between phone/email matching and the corresponding variables could be slightly clearer in ordering.

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

Completeness3/5

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

For a mutation tool with 8 parameters at 13% schema coverage and no output schema, the description covers the most important behavioral constraints but leaves several parameters undocumented (case, mode, create_unmatched, match_platform_id) and doesn't explain the response or side effects. It's minimally complete but has clear gaps.

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

Parameters4/5

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

Schema coverage is only 13%, so the description must carry the load for 8 parameters. It does well: it explains the automatic-mode criteria constraint and the dependency that email_variable/phone_variable must be non-empty when matching is enabled. It doesn't explain case resolution, manual mode, or the boolean toggles like create_unmatched and match_platform_id, leaving gaps, but the critical conditional logic is covered.

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

Purpose4/5

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

The description says it changes only the transferred settings, and the title ('Изменить сопоставление контрагентов') names a specific action and resource. It's clear this is a settings-save tool, though it doesn't explicitly differentiate itself from the sibling counterparties_settings (which likely reads settings).

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

Usage Guidelines4/5

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

The description provides real when-to-use guidance: it names the alternative counterparties_reconcile for processing existing dialogs, and it implies this tool is for changing settings rather than reconciling. However, it doesn't state when to use manual vs automatic mode beyond the single criterion for automatic.

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

dialogs_cancel_scheduledОтменить продолжение диалогаA
Destructive

Отменяет одно отложенное действие из dialogs_get для указанного диалога.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.
task_idYesID отложенного действия из dialogs_get.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotent, so the safety profile is covered. The description adds the useful detail that it cancels exactly ONE deferred action and where that action originates (dialogs_get), but does not describe what happens on an invalid/expired task_id or any return behavior.

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?

A single front-loaded sentence with no filler. The action and the source of the input are stated immediately.

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 simple single-target cancelling tool with a fully covered schema and annotations that carry the safety profile, the description is nearly sufficient. It ties the task_id to dialogs_get, though it stops short of noting failure modes or confirmation of cancellation.

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 100%, so dialog, case and task_id are already documented in the schema. The description only implies the task_id source; it adds no format or edge-case detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Отменяет одно отложенное действие') scoped to 'указанного диалога', and crucially ties the operation to dialogs_get as the source of the action. This distinguishes it from the surrounding dialogs_* and tasks_cancel siblings somewhat, though it does not explicitly contrast with tasks_cancel.

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

Usage Guidelines3/5

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

Usage is only implied: the reference to dialogs_get and the required task_id convey that the agent must first fetch the scheduled action before cancelling it. There is no explicit when-to-use / when-not-to-use guidance or named alternative.

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

dialogs_chat_infoСверить сведения о сообществеA

Спрашивает платформу о группе или канале: участники, ссылка и положение бота. Панель при этом обновляет название, положение бота и признак блокировки диалога. Для чтения сохранённых данных используйте dialogs_get.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already flag openWorldHint=true, readOnlyHint=false, and idempotentHint=false, but the description adds real value by disclosing the side effect: the panel updates the dialog name, bot position, and blocking flag. This explains why the call is not read-only. It doesn't cover rate limits or auth requirements.

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

Conciseness4/5

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

Three compact sentences, front-loaded with the purpose, followed by the side effect and the alternative-tool pointer. Every sentence carries information, though the panel-update clause is dense.

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?

With no output schema, the description compensates by enumerating the returned fields (participants, link, bot position) and the local state change. Complete enough to invoke correctly, though exact return format and error behavior are left implicit.

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 100%, so both parameters ('case' and 'dialog') are fully documented in the schema. The description adds no syntactic or format detail about them, so the baseline of 3 applies.

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 states a specific verb and resource: it queries the platform about a group or channel for participants, link, and bot position. It also distinguishes itself from the similarly named 'dialogs_get' by noting that the latter serves reading saved data. An agent can tell this fetches live community data apart from sibling tools.

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

Usage Guidelines4/5

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

It names an explicit alternative and the condition selecting it: for reading saved data, use 'dialogs_get', implying this tool is for live platform queries. However, it doesn't address the many other dialog siblings (dialogs_list, dialogs_history) or state any exclusions beyond that one contrast.

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

dialogs_deleteУдалить диалогA
Destructive

Удаляет диалог вместе со всей перепиской. Восстановить нельзя. Чтобы бот просто перестал отвечать этому человеку, переведите разговор в ручной режим: dialogs_update mode=operator, ai_enabled=false — переписка при этом останется.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
confirm_contactYesИмя собеседника дословно — подтверждение удаления.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses that the entire correspondence is deleted and that restoration is impossible. It also clarifies the behavior of the alternative path (correspondence remains), which helps the agent understand the irreversible side effect.

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?

Three short sentences deliver the core action, the irreversible consequence, and the recommended alternative. There is no filler or repetition; the most important behavioral warning is front-loaded.

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

Completeness5/5

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

For a destructive operation with a required confirmation parameter, the description sufficiently explains what is deleted, that deletion cannot be undone, and what to do instead when permanent deletion is not desired. The schema covers parameter semantics and confirmation, so no critical context is missing.

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 100%, so the parameters 'case', 'dialog', and 'confirm_contact' are already documented in the schema. The tool description adds no additional parameter-level meaning, matching the baseline for high schema coverage.

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 opens with a clear verb and resource ('Удаляет диалог') and specifies the destructive scope ('вместе со всей перепиской'). It also distinguishes itself from dialogs_update by explicitly contrasting permanent deletion with a non-destructive manual-mode alternative.

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?

The description gives concrete guidance on when not to use this tool: if the bot should merely stop replying, the agent should call dialogs_update with mode=operator and ai_enabled=false instead. This explicitly routes to the alternative and explains the trade-off regarding preservation of the conversation.

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

dialogs_delete_messageУдалить сообщение у собеседникаA
Destructive

Убирает своё сообщение из чата собеседника; в переписке панели запись остаётся зачёркнутой — след того, что и когда убрали. Только свои: сообщения собеседника не удаляются. Вернуть нельзя. Слишком старое сообщение платформа удалить не даст.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
messageYesid сообщения из dialogs_history.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructive=true, readOnly=false, and idempotent=false, but the description adds substantial context: the interlocutor loses the message while the panel retains a crossed-out record, only own messages are affected, the action is irreversible, and age limits may block deletion. This is exactly the kind of side-effect detail an agent needs before invoking a destructive tool.

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?

Four compact sentences front-load the tool's action, then add only constraints and side effects. Every sentence contributes distinct, useful information with no repetition or filler.

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

Completeness5/5

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

For a destructive mutation with no output schema, the description covers what changes, what remains visible, ownership restrictions, reversibility, and platform limits. Combined with complete schema descriptions and matching annotations, an agent has enough to call it correctly and safely.

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 100%, so dialog, message, and case are already documented in the schema. The description does not add any parameter-level meaning such as expected message format or dialog references, so the baseline of 3 applies.

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 states a specific verb and resource: removing your own message from the interlocutor's chat. It distinguishes the effect from a normal delete by explaining that the panel keeps a crossed-out trace. This lets an agent identify the tool apart from siblings like dialogs_edit_message or dialogs_delete.

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

Usage Guidelines4/5

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

It gives clear usage constraints: only your own messages, deletion cannot be undone, and too-old messages cannot be deleted. However, it does not explicitly say when to choose this over a sibling such as dialogs_edit_message, so it stops short of full alternative routing.

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

dialogs_download_attachmentСкачать вложение сообщенияB
Read-onlyIdempotent

Сохраняет вложение локально. destination должен быть новым файлом.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
indexNoНомер вложения, с нуля.
dialogYesДиалог: имя, @username, номер чата или идентификатор.
messageYesID сообщения из dialogs_history.
destinationYesПуть нового файла; существующий не перезаписывается.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is largely covered. The description adds one real behavioral fact not obvious from structured data: the destination must be a new file (no overwrite). It says nothing about failure modes (e.g. invalid index) or where the file ends up beyond the given path.

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

Conciseness4/5

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

Two short sentences, zero filler, and the core action is front-loaded before the constraint. It is efficient, though the extreme brevity means some useful routing context was omitted rather than trimmed.

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

Completeness3/5

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

For a five-parameter tool with no output schema, the description covers the essential action and one constraint, and annotations supply the safety profile. Still missing: how to pick 'index' among multiple attachments, whether the dialog/message resolution follows the same rules as dialogs_history, and any auth/permission expectation for openWorld use.

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 100%, so all five parameters (case, index, dialog, message, destination) are already documented in the schema, including the no-overwrite rule. The description's destination sentence merely restates the schema's own wording, adding no meaning beyond it. Baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb+resource ('Сохраняет вложение локально' – saves the attachment locally), which is unambiguous about what the tool does. It does not, however, distinguish this tool from any sibling (e.g. dialogs_reply_file also deals with file attachments), leaving the agent to infer the scope from required params.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives or prerequisites. The only operational hint is a constraint on the destination path ('должен быть новым файлом'), which is a usage rule but not a selection rule. Usage is only implied by the name.

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

dialogs_edit_messageИзменить отправленное сообщениеA

Меняет текст сообщения, которое бот или оператор уже отправили, — и у собеседника, и в переписке панели. Только свои сообщения: чужие и служебные не правятся. Не дошедшее изменить нельзя — только отправить заново; подпись к вложению панель пока не правит. Кнопки остаются прежними. Бот должен быть запущен; слишком старое сообщение платформа может не дать изменить.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textYesНовый текст целиком.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
messageYesid сообщения из dialogs_history.
parse_modeNoРазметка: HTML или пустая строка для обычного текста.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-destructive, open-world, non-idempotent behavior; the description adds substantial context beyond that: the bot must be running, very old messages may be rejected by the platform, buttons stay unchanged after the edit, and undelivered messages cannot be edited at all. Auth scopes and rate limits remain unmentioned, so it is not exhaustive.

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

Conciseness4/5

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

Front-loaded with the core action, then a compact set of constraints in short sentences with no filler. The constraint list is slightly dense but each clause carries a distinct caveat an agent needs.

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 5-parameter mutation tool with no output schema and full schema coverage, the description supplies the important behavioral envelope: ownership restriction, editability window, and button preservation. Return payload semantics are not described, which is a minor gap given no output schema exists.

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 100%, so all five parameters are already documented (dialog formats, case fallback, message id from dialogs_history, parse_mode enum). The description adds only that the entire text is replaced, not new per-parameter syntax, so the baseline of 3 applies.

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?

States a specific verb and resource ('меняет текст сообщения') plus the exact scope: messages already sent by the bot or operator, visible both to the counterpart and in the panel. An agent can distinguish this from dialogs_delete_message or dialogs_reply without opening the schema.

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

Usage Guidelines4/5

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

Gives explicit when-not conditions: only your own messages (foreign and service messages are not editable), undelivered messages must be re-sent instead, and attachment captions are not supported. It does not name a sibling tool (e.g. delete message) as the alternative action, so it stops short of full routing guidance.

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

dialogs_exportВыгрузить перепискуA
Read-onlyIdempotent

Переписка одним готовым текстом: шапка с собеседником, ботом и метками, дальше сообщения по порядку — ровно то, что панель отдаёт файлом. Годится приложить к разбору спора или передать тому, у кого доступа к панели нет. Прочитанной переписка от этого не становится, но сама выгрузка отмечается в журнале дела. Разбирать сообщения по одному и уходить вглубь истории удобнее через dialogs_history.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context beyond those hints: the dialog is not marked as read ('Прочитанной переписка от этого не становится') and the export is recorded in the case journal ('сама выгрузка отмечается в журнале дела'). This is useful and does not contradict the annotations.

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

Conciseness4/5

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

The description is compact: three sentences, each carrying distinct information about output format, use cases, and side effects plus the alternative tool. It is slightly embellished with the phrase 'ровно то, что панель отдаёт файлом', but overall it is well-structured and front-loaded.

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

Completeness5/5

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

For a simple two-parameter tool with no output schema, the description sufficiently explains the return format, the purpose, the side effects, and the sibling alternative. The input schema covers parameter details, so nothing critical is missing for an agent to select and invoke the tool correctly.

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 100%, and both parameters (dialog and case) are already documented with clear descriptions and default behavior for case. The description does not add parameter-specific semantics, so the baseline of 3 is appropriate.

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 clearly states the tool exports the whole conversation as one ready-made text with a header and messages in order, which is a specific verb+resource. It also distinguishes itself from dialogs_history, which is the sibling most likely to be confused with it.

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 explicitly says the export is suitable for attaching to dispute analysis or sharing with someone without panel access. It also names dialogs_history as the better tool for per-message analysis and deep history, giving a concrete when-to-use vs alternative guidance.

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

dialogs_forget_memoryОчистить память ИИ о диалогеA

Удаляет сводку ИИ. Переписка остаётся; следующая сводка соберётся по ней заново.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare a non-read-only but non-destructive, non-idempotent mutation, and the description usefully explains why: only the AI summary is removed, the correspondence persists, and the summary is regenerated from that history. This discloses exactly what is destroyed and what survives, adding real value beyond the annotation flags, though it says nothing about auth or limits.

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?

Two compact sentences with no waste. The primary effect is front-loaded in the first sentence, and the clarifying consequence follows.

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 two-parameter mutation with no output schema, the description plus annotations give an agent enough to call it correctly and understand the outcome. Minor gaps (no explicit precondition or sibling routing) keep it short of complete.

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 100%, with both 'case' and 'dialog' fully documented (including fallback behavior for 'case'), so the schema carries the parameter burden. The description adds no further parameter meaning, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb and resource – deletes the AI summary for a dialog – so the action is immediately clear. It does not explicitly contrast itself with near siblings like dialogs_delete, dialogs_reset_stage, or ai_delete, so sibling differentiation is left to inference.

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

Usage Guidelines3/5

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

The description conveys the effect ('переписка остаётся; следующая сводка соберётся заново'), which implies when an agent would reach for it – to reset accumulated AI memory without losing the conversation. However, it never states when to use this rather than the alternatives, nor any preconditions.

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

dialogs_getКарточка диалогаA
Read-onlyIdempotent

Диалог и его положение в сценарии: на каком шаге стоит разговор, какого ответа ждёт, какой путь уже пройден, что запланировано и какие переменные накоплены.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds meaningful context about the informational content returned (scenario position, expected answer, variables), going beyond what annotations alone provide. There is no contradiction with annotations.

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

Conciseness4/5

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

The description is a single, well-structured sentence with a colon-led list. It is front-loaded with the core subject and each listed item adds useful detail. No filler or redundancy.

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 simple read-only getter with full schema coverage and no output schema, the description adequately explains what the agent will learn from the call. It outlines the key aspects of the dialog card without needing to specify return format. Minor lack of error/edge-case handling is acceptable given the tool's simplicity.

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 100%, and both parameters ('case' and 'dialog') have clear descriptions in the schema. The tool description adds no extra parameter-level semantics, so it cannot exceed the baseline of 3.

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

Purpose4/5

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

The description clearly conveys the tool's focus: it provides the dialog and its position in the scenario, including current step, expected response, path, planned steps, and variables. This distinguishes it from sibling tools like dialogs_list or dialogs_history. However, it lacks an explicit verb like 'get' or 'retrieve', relying on the tool name for the action.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool relative to alternatives (e.g., dialogs_list, dialogs_history, dialogs_reply). It does not mention exclusions, prerequisites, or scenarios where other tools would be more appropriate.

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

dialogs_historyИстория перепискиA
Read-onlyIdempotent

Сообщения диалога от старых к новым. По умолчанию ничего не помечает прочитанным — счётчики в панели остаются как были. За ранними сообщениями передайте before и before_id самого раннего сообщения: время бывает одинаковым у нескольких сообщений. Пометить прочитанным — отдельный write-инструмент dialogs_mark_read.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
limitNoСколько записей вернуть, максимум 300. По умолчанию 80.
beforeNoПоказать сообщения раньше этого момента (ISO 8601).
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
before_idNoID самого раннего сообщения вместе с before: порядок при одинаковом времени.
mark_readNoТолько false. Изменяет счётчик отдельный dialogs_mark_read.

TDQS

A4.3/5.0
Behavior5/5

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

Adds key behavioral context beyond the readOnlyHint annotation: the tool does not mark messages as read by default and leaves counters unchanged. It also clarifies that marking read is handled by a separate write tool.

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?

Four short sentences, front-loaded with the core behavior, then pagination and read-marking guidance. Every sentence serves a distinct purpose with no redundancy.

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

Completeness5/5

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

For a read-only history tool with rich annotations and full schema coverage, the description covers ordering, default non-mutation, pagination, and the read-marking alternative. Return values are not described, but no output schema exists and the description sufficiently indicates what is returned.

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 100%, so the schema already documents all parameters. The description restates the before/before_id tie-breaking guidance and the mark_read constraint, but adds no meaningful semantics beyond what the schema provides.

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

Purpose4/5

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

States the resource (dialog messages) and ordering (old to new), which is specific. It distinguishes from the write-oriented sibling dialogs_mark_read, but does not differentiate from other read siblings like dialogs_list, dialogs_get, or dialogs_export.

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

Usage Guidelines4/5

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

Explicitly routes marking messages as read to the separate write tool dialogs_mark_read and describes when to pass before/before_id for pagination. It lacks guidance on when to choose this tool over other dialog-reading siblings.

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

dialogs_listСписок диалоговA
Read-onlyIdempotent

Переписки ботов дела с отбором по боту, виду чата, режиму и подстроке. Показывает, где есть непрочитанное и какие диалоги ведёт оператор. Сообщества — группы и каналы, где состоит бот, — это те же диалоги с kind=community; в панели они в разделе «Сообщества».

ParametersJSON Schema
NameRequiredDescriptionDefault
botNoОтобрать по боту: название, @username или идентификатор.
tagNoОдна метка для отбора диалогов.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
kindNoВид чата: private — личная переписка, community — все сообщества, group — только группы, channel — только каналы. Без него — всё вместе.
modeNobot — ведёт сценарий; operator — перехвачен человеком.
limitNoСколько записей вернуть, максимум 200. По умолчанию 40.
queryNoПоиск по имени, нику и последнему сообщению.
offsetNoСколько записей пропустить.
assigned_toNoНазначены участнику: почта, имя или идентификатор из members_list.
only_unreadNoТолько с непрочитанными сообщениями.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds real behavioral context beyond that: it discloses that results indicate unread presence and which dialogs are operator-handled. It does not mention pagination behavior or any rate/cost characteristics.

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

Conciseness4/5

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

Three sentences, front-loaded with purpose, then return-value hints, then the community mapping. Dense but no filler; each sentence adds something. Slightly more could be trimmed but nothing is wasted.

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 10-parameter, zero-required list tool with no output schema, the description supplies purpose, filtering intent, and the community/kind mapping. Return shape and pagination defaults are left to the schema (limit/offset described there), which is reasonable. No output schema means a small gap around result structure.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description goes one step beyond by reconciling a data-model subtlety the schema alone doesn't convey: communities (groups and channels the bot belongs to) are the same dialogs surfaced via kind=community, and are shown under 'Сообщества' in the panel.

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

Purpose4/5

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

States a concrete verb+resource+scope: listing a case's bot conversations with filters by bot, chat kind, mode and substring. An agent can tell this is the enumeration tool versus dialogs_get or dialogs_history. It stops short of naming a sibling it is not, which keeps it out of the top band.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the filtering vocabulary ('с отбором по боту, виду чата, режиму и подстроке') signals 'use me to browse/filter dialogs', but there is no explicit when-to-use or when-not versus dialogs_get, dialogs_history or counterparties_dialogs. No prerequisites or exclusions are offered.

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

dialogs_mark_readПометить диалог прочитаннымA

Обнуляет счётчик непрочитанного. Требует chat.reply; историю читает dialogs_history.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the safety profile (not readOnly, not destructive, openWorld). The description adds a genuine behavioral detail beyond them: the chat.reply permission requirement. It does not disclose side effects such as whether the counterparty sees a read receipt or any rate limits, so the added context is useful but thin against an already-covered profile.

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

Conciseness4/5

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

Two compact clauses with the primary effect front-loaded ('Обнуляет счётчик непрочитанного'), followed by the prerequisite and sibling pointer. No filler; appropriately sized for a two-parameter action.

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 low-complexity mutation with fully documented parameters, a permission note, and a sibling pointer, the description is nearly sufficient. No output schema is needed for an action that returns no meaningful payload, and the safety profile is carried by annotations.

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 100%, so the schema already documents both the 'dialog' identifier forms and the 'case' default-resolution behavior. The description adds nothing further about parameters, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource: 'resets the unread counter' for a dialog, which is concrete and matches the title. It clearly conveys the effect, giving the agent little ambiguity about the outcome. It stops short of explicitly differentiating itself from all siblings (e.g., dialogs_update), though it does point to dialogs_history for the reading case.

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

Usage Guidelines3/5

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

'Требует chat.reply' states a permission prerequisite, and 'историю читает dialogs_history' routes the agent to a specific sibling for the read path. However, it never states when to mark a dialog read versus not (e.g., after replying), so usage is only implied.

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

dialogs_releaseВернуть диалог сценариюB

Снимает оператора и возвращает ведение диалога сценарию.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, open-world, non-idempotent mutation, so the safety profile is partly covered. The description adds meaningful effect context — that it removes the human operator and returns control to the scenario — but says nothing about permissions required, reversibility, or what happens to any operator-set state.

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?

A single, front-loaded sentence that states the effect immediately with zero padding or repetition. Nothing could be trimmed without losing meaning.

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 two-parameter mutation tool with full schema coverage, no output schema, and annotations covering the safety profile, the description conveys the essential effect adequately. Only marginal gaps remain (post-release state, whether the operator is notified), which are minor for this complexity level.

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 100%, so both parameters (case and dialog) are already fully documented in the schema, including the default-case fallback logic. The description adds no additional meaning about parameters, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific action (removing the operator and returning dialog control to the scenario), which is a concrete verb+resource combination. However, it does not name or differentiate itself from similarly-named siblings such as dialogs_update, dialogs_reset_stage, or dialogs_forget_memory, so the agent must infer the distinction.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives among the many dialog-related siblings. The context (handing a dialog back to automation) is implied by the verb but never framed as a selection condition.

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

dialogs_replyОтветить собеседникуA

Отправляет сообщение человеку от имени бота — своим текстом или заготовкой из replies_list, при желании цитатой на конкретное сообщение (reply_to). По умолчанию диалог переходит в ручной режим и закрепляется за вами — сценарий перестаёт вести разговор, пока его не вернут (dialogs_update mode=bot). Бот должен быть запущен. Проверяйте поле «ошибка доставки» в ответе: сообщение сохраняется даже тогда, когда платформа его не приняла.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textNoТекст сообщения. 4096 — грубая верхняя граница на хранение, а не предел платформы: у Telegram он 4096, у MAX 3999, и с вложением у обеих свой предел подписи. Точные числа — operbots_catalog what=platforms; сверх своего предела панель откажет с указанием платформы.
replyNoОтправить заготовленный ответ: его название или идентификатор из replies_list. Вместо text, а не вместе с ним.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
buttonsNoКнопки сообщения: ряды объектов с text, url или callback_data.
reply_toNoОтветить цитатой: id сообщения из dialogs_history. Служебные записи и уже удалённые сообщения цитировать нельзя — у собеседника их нет.
take_overNoПеревести диалог в ручной режим. По умолчанию да.
parse_modeNoРазметка: HTML или пустая строка для обычного текста.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare a non-idempotent, non-destructive write with open-world access. The description goes well beyond that: it discloses the default take-over side effect that halts the scenario, the bot-running prerequisite, and the crucial nuance that the message is persisted even when the platform rejects it, directing the agent to inspect the delivery-error field.

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

Conciseness4/5

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

Four sentences, front-loaded with the core action, then side effect, prerequisite and return-value caveat. Dense but each sentence carries distinct value; only mild redundancy with the schema on reply/take_over keeps it from a 5.

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

Completeness5/5

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

For a non-idempotent 8-parameter mutation tool with no output schema, the description covers the essential behavioral facts: manual-mode take-over, requirement that the bot be running, and the delivery-error field to check. Nothing an agent needs to call it correctly is missing.

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 100%, so every parameter including reply_to, replies_list templates and parse_mode is already documented. The description restates reply vs text and the default take_over behavior but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource: sends a message to a person on behalf of the bot, either with your own text or a replies_list template, optionally quoting via reply_to. This clearly distinguishes it from siblings like dialogs_reply_file (attachments) and dialogs_edit_message (editing), so an agent can pick it without opening the schema.

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

Usage Guidelines4/5

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

It gives clear conditions: the bot must be running, and by default the dialog switches to manual mode unless returned via dialogs_update mode=bot, and reply is used instead of text. However it never explicitly names alternatives for adjacent tasks (e.g. dialogs_reply_file for attachments), so exclusions are implied rather than stated.

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

dialogs_reply_fileОтправить файл собеседникуA

Отправляет локальный файл от имени бота, до 20 МиБ. Ошибка доставки видна в ответе.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя, @username, номер чата или идентификатор.
captionNoПодпись к вложению.
file_pathYesПуть к локальному файлу.
take_overNoПерехватить диалог. По умолчанию да.
parse_modeNoРазметка: HTML или пустая строка для обычного текста.
content_typeNoMIME, например image/png для фото.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond the annotations: the 20 MiB size ceiling and that delivery failures surface in the response, but it discloses nothing about permissions, take-over behavior, or side effects.

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?

Two compact sentences, front-loaded with the core action, followed by the size limit and the error-visibility note. Every clause earns its place with zero 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 mutation tool with no output schema, the description covers purpose, a hard operational limit, and error surfacing — enough for an agent to call it correctly. It stops short of describing return values, formatting behavior, or the take-over default's consequences, which keeps it from a 5.

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 100%, so every parameter (case, dialog, caption, file_path, take_over, parse_mode, content_type) is already documented in the schema. The description adds no parameter-level detail, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ("Отправляет локальный файл"), adds the acting identity ("от имени бота"), and a hard constraint ("до 20 МиБ"). This clearly distinguishes it from text-oriented siblings like dialogs_reply and from dialogs_download_attachment, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the verb and resource: an agent can infer this is the tool for sending a local file into a dialog. However, there is no explicit statement of when to prefer it over dialogs_reply or any sibling, and no prerequisites or exclusions are given.

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

dialogs_reset_stageСнять разговор с шагаA

Освобождает разговор, застрявший на узле ожидания: сценарий ждёт ответа, которого не будет, и со стороны это выглядит молчащим ботом. После снятия следующее сообщение начнёт сценарий заново. Отложенные продолжения этого разговора снимаются заодно — они назначены от того же шага и сработали бы в пустоту.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations, adding rich behavioral context: the symptom the user sees (a silent bot), the side-effect of canceling deferred continuations with the rationale ('would fire into the void'), and the post-condition (next message restarts the scenario). This adds genuine value beyond the generic readOnlyHint/idempotentHint flags. No contradiction found — canceling scheduled continuations is inherent reset semantics, not destruction.

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?

Two sentences, zero waste. The first sentence leads with the action and purpose, the second covers side effects and post-conditions. The vivid 'mute bot' and 'fire into the void' metaphors pack meaning into few words.

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

Completeness5/5

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

For a simple mutation tool with only two string parameters, no output schema, and no nested objects, the description is complete: it covers the trigger condition, the side effect, and the resulting behavior. Nothing essential is missing.

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 coverage is 100% and both parameters (case, dialog) are already well-documented in the schema with their formats and defaults. The description adds nothing about parameters, which is acceptable per the baseline of 3 given full schema coverage, but there is no extra value either.

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 ('Освобождает' - frees/releases) and a specific resource (a conversation stuck at a wait node), clearly distinguishing it from sibling dialog tools like dialogs_list, dialogs_reply, or dialogs_delete. The real-world framing ('looks like a silently mute bot') makes the exact scenario unmistakable.

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

Usage Guidelines4/5

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

The description provides clear, specific context for when to use the tool: when a conversation is stuck at a wait node awaiting an answer that will never come. However, it does not name explicit alternatives or exclusions (e.g., 'use dialogs_delete if...'), so it falls just short of the top tier.

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

dialogs_updateНастроить диалогA

Меняет режим ведения (сценарий или оператор), отвечает ли ИИ, метки, закрепление и сценарий сообщества. Перевод в режим bot возвращает разговор сценарию и снимает оператора. Заблокировать собеседника отсюда нельзя: блокировку приносит платформа, когда человек сам закрывает боту рот, — панель её только показывает.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowNoТолько для сообществ: свой сценарий этого чата поверх базового у бота — название или идентификатор сценария вида community у того же бота. Пустая строка — вернуть базовый.
modeNobot — вернуть сценарию; operator — вести вручную.
tagsNoМетки. Заменяют прежние целиком.
dialogYesДиалог: имя собеседника, @username, номер чата или идентификатор.
pinnedNoЗакрепить наверху списка.
ai_enabledNoОтвечает ли ИИ в этом диалоге.
assigned_operator_idNoID пользователя-оператора из members_list; null снимает назначение.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, so the safety profile is covered. The description adds genuine side-effect context beyond that: switching to bot mode removes the assigned operator, and the tool deliberately cannot block a counterparty (the platform does that). That is useful behavior disclosure.

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

Conciseness4/5

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

Three sentences, front-loaded with the mutation scope before the side effect and the boundary case. Every sentence carries information, though the blocking sentence is a defensive note rather than core guidance.

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 an 8-parameter mutation tool with no output schema and annotations covering the safety profile, the description covers the main operation, a key side effect, and one important limitation. It is largely complete, missing only permission/auth expectations.

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 coverage is 100%, so the baseline is 3. The description mostly mirrors the schema's field list; the one additive nuance is that bot mode 'снимает оператора', which goes slightly beyond the schema's mode description. No format, default, or interaction detail is added.

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

Purpose4/5

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

The description names a specific verb ('Меняет') and enumerates the exact mutable fields: mode, AI response, tags, pinning, and community flow, so an agent can match it to the schema's properties immediately. It does not explicitly name a sibling, but the 'can't block from here' boundary hints at its scope versus other dialog tools.

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

Usage Guidelines3/5

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

It states a use condition implicitly (switching to bot mode returns the conversation to the scenario) and an exclusion (blocking is not done here), but never points to a concrete alternative tool for blocking or for the other dialog operations. Usage context is implied rather than spelled out.

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

extensions_deleteУдалить расширениеA
Destructive

Удаляет подключение с подтверждением точного названия. Сервер защищает операции, используемые сценариями.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
extensionYesИдентификатор расширения из extensions_list.
confirm_nameYes

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, idempotentHint=false), the description adds two meaningful behavioral facts: deletion requires confirming the exact name, and the server may block deletion when the extension is used by scenarios. These are non-obvious constraints an agent would otherwise have to guess.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the action verb and followed by the confirmation constraint and scenario-protection caveat. No filler; slightly terse but nothing wasted.

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 destructive 3-parameter tool, the annotations already carry the safety profile (destructive, non-idempotent), and the description adds the confirmation flow and scenario-protection caveat. Remaining gaps (post-delete effects, permissions) are minor given the annotation coverage.

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

Parameters4/5

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

Schema coverage is 67%; case and extension are described in the schema, but confirm_name has no schema description. The description compensates by explaining that confirm_name is the exact name used as a confirmation, giving real semantic value for the undocumented parameter.

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

Purpose4/5

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

States a specific verb+resource ("Удаляет подключение", deletes a connection/extension) which is disambiguated from siblings like extensions_save and extensions_list by the delete verb. It does not explicitly name alternatives, but the destructive action is unambiguous.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the confirmation requirement (exact name) and the note that "the server protects operations used by scenarios" hint at preconditions, but there is no explicit when-to-use/when-not guidance or named alternative.

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

extensions_getОпределение расширенияC
Read-onlyIdempotent

Настройки, операции и события расширения с идентификаторами. Секреты скрыты.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
extensionYesИдентификатор расширения из extensions_list.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds one genuine behavioral fact beyond annotations, 'Секреты скрыты' (secrets are hidden), which warns the agent that returned data is partially redacted — useful but not rich.

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

Conciseness4/5

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

Two short sentences with no waste; the resource content leads and the secrets caveat follows. Efficient, though dropping the sentence to a single a clarifying clause on the verb would be tighter.

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

Completeness3/5

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

For a read-only tool with full schema coverage and no output schema, listing the returned sections (settings, operations, events) is adequate. However, usage routing against the many extensions_* siblings is missing, leaving a real gap for selection.

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 100%, so both 'case' and 'extension' are fully documented in-schema, including the fallback behavior of 'case' and the 'extensions_list' source of the UUID. The description adds nothing beyond this, so the baseline 3 applies.

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

Purpose3/5

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

The description names the resource and its content — 'Настройки, операции и события расширения с идентификаторами' (settings, operations and events of the extension) — but no explicit verb signals retrieval. It does not differentiate itself from close siblings like extensions_list, extensions_nodes, or extensions_templates, so an agent cannot route on the description alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. The only indirect signal is the 'extension' parameter note referencing 'extensions_list' in the schema, which the description itself does not surface.

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

extensions_listРасширения делаB
Read-onlyIdempotent

Полные определения внешних подключений. Сохранённые секреты сервер возвращает пустыми.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond the annotations: saved secrets are returned empty (redacted) by the server, which tells the agent what the returned data will and won't contain. It stops short of describing pagination or result size.

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?

Two short sentences with no filler: the first states what is returned, the second front-loads the security-relevant caveat about secrets. Nothing is wasted and the important constraint is not buried.

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 one-parameter, non-destructive list tool with full schema coverage and annotations covering safety, the description is nearly sufficient; with no output schema it partially compensates by stating what is returned (full definitions, secrets blanked). It could still note ordering, count, or pagination, but nothing essential to correct invocation is missing.

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 100% and the single 'case' parameter is fully documented in the schema (name or id, with default/last-opened fallback), so the schema carries the load. The description adds no parameter-level meaning beyond that, which matches the baseline of 3 when coverage is high.

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

Purpose3/5

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

The description names the resource (external connections/extensions) and implies retrieval of their full definitions, and the title 'Расширения дела' scopes it to a case. However, it never uses an explicit listing verb and does not distinguish itself from close siblings like extensions_get, extensions_nodes, or extensions_templates, so the agent must infer the 'list all extensions for a case' semantics.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus extensions_get, extensions_nodes, extensions_templates, or extensions_delete. The only hinted condition is the case parameter's default (schema-level), not the description. No exclusions or prerequisites are given.

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

extensions_nodesУзлы расширенийB
Read-onlyIdempotent

Доступные этому делу динамические виды узлов extension и extension_trigger, поля и выходы для flows_save.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds that results are scoped to a specific case and that it surfaces node fields and outputs, which is modest extra context but not rich behavioral disclosure.

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

Conciseness4/5

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

A single compact sentence with no filler; the case-scoping constraint is front-loaded. It is slightly dense with untranslated domain jargon ('динамические виды узлов'), but nothing is wasted.

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

Completeness3/5

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

For a one-optional-param read-only listing tool with no output schema, the description is close to sufficient: it says what is returned (node types, fields, outputs). However it omits the return shape (array? keyed by node type?) and how the result feeds flows_save, so an agent still guesses at the payload structure.

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?

There is one optional parameter with 100% schema description coverage, including the default-case fallback behavior. The description's phrase 'этому делу' (this case) corroborates the scoping but adds no format, syntax, or selection detail beyond what the schema already provides — baseline 3 applies.

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

Purpose4/5

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

The description names the resource (dynamic node types extension and extension_trigger available to a case) and what it returns (fields and outputs). It implicitly links to flows_save, distinguishing it from that write tool and from flows_list. The verb is elliptical — it never states 'lists' or 'returns' explicitly — but an agent can infer this is a discovery/introspection endpoint.

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

Usage Guidelines2/5

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

The only usage signal is the trailing 'для flows_save' (for flows_save), which hints it belongs in a flow-authoring workflow, but there is no explicit when-to-use, no when-not-to-use, and no named alternative among the many siblings (flows_save, flows_get, extensions_get, extensions_templates). The agent must infer the sequencing itself.

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

extensions_oauth_beginАвторизовать расширение через OAuthA

Создаёт ссылку OAuth с защищённым состоянием. Откройте её в браузере и завершите вход на стороне внешней системы.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
extensionYesИдентификатор расширения из extensions_list.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false, openWorldHint=true, and idempotentHint=false, so the agent knows this is a mutating, outward-facing, non-idempotent call. The description adds useful context: the output is a link with 'protected state' and the flow completes externally. It omits link expiry, single-use state semantics, and callback behavior, so it modestly extends the annotations rather than richly supplementing them.

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?

Two short sentences, zero filler. The action is stated first, the follow-up instruction second. Every word earns its place.

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 two-parameter OAuth-initiation tool with no output schema, the core need — knowing a link is produced and must be opened externally — is covered, and annotations carry the openWorld/non-idempotent profile. It would be stronger if it noted link lifetime or any callback/precondition, but nothing essential to invoking it correctly is missing.

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 100% — both 'extension' (with format/pattern and a pointer to extensions_list) and 'case' (with default-resolution semantics) are documented in the schema. The description adds nothing about parameters, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource: it creates an OAuth link ('Создаёт ссылку OAuth') for the extension. This is clearly distinguishable from the other extensions_* siblings (list/get/save/delete), which deal with extension data rather than auth. However, it never explicitly names an alternative, so it stops short of a 5.

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

Usage Guidelines3/5

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

It gives procedural guidance for the result — 'Откройте её в браузере и завершите вход на стороне внешней системы' — which tells the agent the link must be handed off to a browser. But it says nothing about when to call this versus checking existing auth, prerequisites, or what to do afterward. Usage is implied rather than scoped.

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

extensions_saveСоздать или настроить расширениеA

Без extension создаёт подключение (нужны name и base_url). При правке сохраняет пропущенные поля, операции и события. Переданные массивы заменяют прежние целиком; сохраняйте идентификаторы используемых операций.

ParametersJSON Schema
NameRequiredDescriptionDefault
authNo
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
iconNo
nameNo
portNo
queryNo
accentNo
enabledNo
headersNo
timeoutNo
webhookNo
base_urlNo
extensionNoИдентификатор расширения из extensions_list.
operationsNo
descriptionNo
clear_secretsNoКлючи удаляемых секретов, например auth.token или headers.x-key. Пустые секреты при правке сохраняют прежнее значение.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations (readOnly=false, destructive=false, idempotent=false) set the safety profile, and the description adds real beyond-schema behavior: omitted fields are preserved on edit, and passed arrays replace prior ones entirely — a non-obvious gotcha — plus the warning to retain operation IDs. It stops short of noting auth/permission needs.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the create-vs-edit distinction and the most important behavioral caveat (array replacement). No filler; every clause carries information.

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

Completeness3/5

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

For a 16-parameter, deeply nested tool with no output schema, the description covers the pivotal create/edit and array-replacement semantics but omits guidance on the large auth/webhook/connection configuration surface. Adequate for the key risks, incomplete overall.

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 coverage is only 19%, so the description must carry the load. It clarifies name/base_url for creation and the replace-whole semantics of operations/events arrays, but the vast majority of the 16 params (auth, headers, query, webhook, timeout, port, etc.) remain undocumented in both description and schema.

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

Purpose4/5

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

The description states a specific verb+resource ('creates a connection' / 'configures an extension') and clearly separates its two modes via the presence of the 'extension' parameter. An agent can tell create-vs-edit apart from the sibling read/delete tools, though it does not name them explicitly.

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

Usage Guidelines4/5

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

It gives concrete when-to-use guidance: no 'extension' => create (requires name and base_url); with 'extension' => edit. This is clear context, but it doesn't point to alternatives like extensions_get/extensions_list to discover an existing ID first.

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

extensions_templatesШаблоны расширенийC
Read-onlyIdempotent

Готовые определения подключений для создания расширения.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

C2.8/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral details beyond that, such as whether results are cached, how the optional case parameter affects returned templates, pagination, or output format.

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 a single short sentence with no redundant words and is fully front-loaded. For a simple read-only template tool with one optional parameter, this is appropriately sized and wastes no space.

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

Completeness3/5

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

Given the low complexity, one optional schema-documented parameter, and no output schema, the description is only minimally adequate. It states what the templates are but does not explain the tool's return shape or how it relates to the other extensions_* tools, leaving an agent to infer too much from the name and annotations.

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?

The input schema has one optional parameter with 100% description coverage, so the schema already explains the 'case' parameter's default behavior. The tool description adds no parameter-specific meaning, which matches the baseline of 3 when schema coverage is high.

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

Purpose3/5

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

The description names the resource content ('ready-made connection definitions') but uses no verb to say what the tool actually does, such as list, retrieve, or return templates. It is clearer than a pure tautology because it clarifies that the templates are connection definitions for extension creation, but it does not distinguish itself from siblings like extensions_get or extensions_list.

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

Usage Guidelines2/5

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

The phrase 'for creating an extension' gives only an implied context, not an explicit when-to-use rule. There is no guidance about when to call this tool versus extensions_list, extensions_get, extensions_nodes, or extensions_save, and no prerequisites or exclusions are stated.

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

flows_deleteУдалить сценарийA
Destructive

Удаляет сценарий вместе со всей историей редакций. Восстановить нельзя. Если удалить активный сценарий, другой вместо него автоматически не включится. Его собственная публикация в маркете также удаляется; установленные копии сохраняются.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.
confirm_nameYesТочное название сценария — подтверждение удаления.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark the tool as destructive and non-idempotent, but the description adds substantial context beyond that: deletion removes all edit history, is irreversible, does not auto-enable another active flow, deletes the market publication, and preserves installed copies. These side effects and cascading consequences are exactly what an agent needs before invoking a destructive operation.

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?

Four short sentences with zero wasted words. The most critical facts (irreversibility, active-flow behavior) are front-loaded, and each sentence adds a distinct operational detail.

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

Completeness5/5

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

For a destructive deletion tool with no output schema needed, the description covers the essential behavioral impacts: what is destroyed (history, market publication), what is irreversible, and what survives (installed copies). Annotations and schema handle the remaining structured details, so nothing critical is missing.

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 100%, so the four parameters are already documented in the input schema. The description does not add any further meaning about parameter syntax, format, or interaction, so the baseline of 3 applies.

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 names a specific verb ('Удаляет') and resource ('сценарий'), and scopes the action ('вместе со всей историей редакций'). The statement 'Восстановить нельзя' implicitly distinguishes it from sibling restore tools like flows_restore.

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

Usage Guidelines3/5

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

The description implies usage by describing what deletion does and its consequences, but it does not explicitly say when to choose this tool over alternatives (e.g., flows_restore) or state prerequisites such as required permissions. Guidance is implied rather than spelled out.

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

flows_exportВыгрузить сценарийA
Read-onlyIdempotent

Отдаёт сценарий одним объектом формата operbots.flow — тем же, что панель скачивает кнопкой «Скачать». Ответ приходит готовым JSON: его целиком передают в flows_import полем document или сохраняют копию рядом с кодом.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnly, openWorld, idempotent, and non-destructive behavior. The description adds useful behavioral detail beyond annotations by specifying that the response is ready-to-use JSON in the operbots.flow format and identical to the panel's download output.

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?

Two sentences with no redundancy: the first front-loads the core contract, the second explains how the result should be consumed. Every sentence earns its place.

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

Completeness5/5

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

For a simple read-only export with three well-documented parameters and no output schema, the description fully compensates by describing the response format and its intended downstream usage. Nothing essential is missing.

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?

The input schema covers all parameters with descriptions, so the baseline is 3. The tool description does not add parameter-level detail, but none is needed given 100% schema coverage.

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

Purpose4/5

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

The description clearly states the tool returns a flow as a single operbots.flow object, matching the panel's Download button. It names the specific resource and output format, though it does not explicitly contrast itself with flows_get or other siblings.

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

Usage Guidelines4/5

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

The description explains the intended downstream use: pass the JSON to flows_import via the document field or save it as a copy near code. This gives practical context for when to use the tool, but it does not explicitly state when not to use it or name alternative tools.

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

flows_getОткрыть сценарийA
Read-onlyIdempotent

Сценарий целиком: все узлы с их параметрами, все связи и замечания к графу — связи в никуда, отсутствие триггера, недостижимые узлы.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this as read-only, open-world, idempotent, and non-destructive. The description adds valuable context by specifying that the tool returns the entire graph along with diagnostics like 'connections to nowhere, missing trigger, unreachable nodes'. This goes beyond the safety profile provided by annotations and describes the tool's analytical behavior.

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 a single, concise phrase that immediately states the tool's scope and content. It contains no unnecessary words or repetition, making it efficient and well-structured.

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 relatively simple getter with no output schema, the description gives a solid overview of the returned data and even highlights diagnostic features. It does not cover error behavior or the optional 'case' parameter, but the schema and annotations cover most context, making it substantial enough.

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?

The input schema covers 100% of parameters with descriptions for bot, case, and flow. The tool description itself does not add any parameter-specific semantics, so a baseline score of 3 is appropriate for high schema coverage.

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 title 'Открыть сценарий' (Open scenario) combined with the description 'Сценарий целиком...' clearly identifies this as a getter for a complete flow graph. It explicitly lists what is returned (all nodes, parameters, connections, graph remarks) and thereby distinguishes it from sibling tools like flows_list, which likely provides a list of flows.

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

Usage Guidelines3/5

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

The description implies use for retrieving full scenario details but does not explicitly state when to use it versus alternatives such as flows_list or flows_versions. The phrase 'Сценарий целиком' suggests detailed inspection, but no exclusions or alternative tools are mentioned.

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

flows_importЗагрузить сценарий из выгрузкиA

Заводит сценарий из объекта, полученного через flows_export. Существующие не трогает: загруженный добавляется рядом, а при совпадении названий получает номер. Первый сценарий своего вида включается автоматически только с правом flow.publish; без него остаётся черновиком. Остальные включаются через flows_publish. Ссылки на ИИ-сервис и базу знаний исходного дела при переезде проверяются, и неразрешимые снимаются — о каждой снятой сказано в ответе.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
nameNoСвоё название вместо записанного в выгрузке.
documentYesСодержимое выгрузки целиком — то, что вернул flows_export.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations give readOnlyHint=false, idempotentHint=false, destructiveHint=false, but the description adds substantial behavior beyond them: existing flows are left untouched, name collisions get a numbered suffix, the loaded flow lands as a draft without flow.publish, and unresolved AI/knowledge references are stripped with each removal reported in the response.

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

Conciseness4/5

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

Dense but front-loaded: purpose first, then collision/behavior, then permission gating, then reference handling. Every sentence carries information, though the reference-removal clause is a slightly long tail.

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

Completeness5/5

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

For an import operation with no output schema, the description supplies the behavioral consequences an agent needs: draft-vs-published outcome, permission requirement, collision handling, and that removed references are reported in the response. Nothing material is missing.

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 100%, so the schema already documents bot, case, name, and document. The description reinforces that document is the flows_export payload and explains the numbering behavior triggered by name, but adds no per-parameter syntax or format detail beyond the schema. Baseline 3 is correct.

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?

States a specific verb and resource ('Заводит сценарий') and names the exact source of its input ('объект, полученный через flows_export'). This distinguishes it cleanly from flows_save, flows_restore, and flows_export among the siblings.

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?

Explains the precondition (input comes from flows_export), the permission gate (flow.publish for auto-enable, otherwise draft), and routes the agent to flows_publish for enabling the rest. When-to-use and prerequisite conditions are all explicit.

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

flows_listСценарииA
Read-onlyIdempotent

Какие сценарии заведены, какой из них в работе и сколько в них узлов. Без параметра bot возвращает сценарии всего дела — со всех ботов сразу. У сценария есть вид: для диалогов (личная переписка) или для сообществ (группы и каналы); у бота по одному включённому на вид.

ParametersJSON Schema
NameRequiredDescriptionDefault
botNoБот: название, @username или идентификатор. Без него — все боты дела.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail beyond that: it aggregates across all bots when bot is absent, reports work status and node counts, and explains the per-type enabled-scenario constraint. This is meaningful context not visible in the schema or annotations.

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 three compact Russian sentences with no wasted words. It front-loads the purpose, then explains parameter behavior, then covers the scenario-type domain rule. Every clause contributes distinct, useful information.

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?

Although there is no output schema, the description still conveys what the agent can expect: registered scenarios, the active one, and node counts. It also covers parameter defaults and the scenario kind constraint. The only minor gap is the lack of an explicit response shape or pagination note, but the tool is simple enough that the description is largely adequate.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining what happens when bot is omitted — all bots of the case — and how case resolves when not specified: explicit value, then default case, then last opened. These behavioral defaults go beyond the schema's basic field descriptions.

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

Purpose4/5

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

The description opens with concrete returned information: which scenarios are registered, which one is in work, and how many nodes they contain. This clearly identifies it as a read/list operation on the flows resource. However, it does not explicitly name sibling tools like flows_get, so differentiation from that single-scenario lookup remains implicit.

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

Usage Guidelines4/5

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

The description gives important usage context: omitting the bot parameter returns scenarios from all bots of the case, and the case parameter has a documented fallback order. This helps the agent decide when to call the tool and with which parameters. It does not explicitly state when to prefer flows_get or flows_versions instead, so exclusions and alternatives are only implied.

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

flows_publishВключить или выключить сценарийA

Включает сценарий в работу — остальные сценарии бота того же вида при этом выключаются. Для диалогов и сообщества выбирается по одному активному сценарию. Перед включением граф проверяется: связи на несуществующие узлы не дадут опубликовать. Выключение снимает выбранный сценарий с работы.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.
activeNotrue — включить (по умолчанию), false — выключить.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations establish a non-read-only, non-idempotent, non-destructive mutation, and the description adds substantial value beyond that: the exclusivity side effect (other same-kind scenarios are disabled), the pre-publish graph validation that blocks links to non-existent nodes, and the effect of disabling. These are real behavioral disclosures not derivable from annotations.

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

Conciseness4/5

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

Four short sentences, front-loaded with the core action and the exclusivity rule, then validation and disabling behavior. No filler, though it could be marginally tighter by merging the enable and disable sentences.

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 4-parameter toggle with full schema coverage and no output schema, the description supplies the crucial behavioral context (exclusivity, validation gate) an agent needs to call it correctly. Only return-value behavior remains unspecified, which is acceptable without an output schema.

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 100%, so bot/case/flow/active are already fully documented, including the default case resolution and active=true default. The description restates the enable/disable meaning of active but adds no format or syntax detail beyond the schema. Baseline 3 applies.

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 states a specific verb+resource (enable/disable a scenario) and immediately adds the non-obvious exclusivity rule: enabling one flow disables others of the same kind. This clearly delineates the tool from flows_save/restore/import/export siblings, which an agent can distinguish without opening any schema.

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

Usage Guidelines3/5

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

The description explains the operational context (one active scenario for dialogs/community) and the enable/disable effect, implying when to use it. However, it never names alternatives such as flows_save for editing or flows_restore for reverting, nor states explicit when-not conditions. Usage is inferable but not spelled out.

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

flows_restoreВернуть редакциюA

Возвращает граф сценария к выбранной редакции. История не переписывается — поверх создаётся новая редакция. Если сценарий в работе, бот начнёт вести себя по-старому сразу.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.
versionYesНомер редакции из flows_versions.

TDQS

A4/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond the annotations: history is not rewritten and a new revision is layered on top, and the bot immediately behaves per the restored version if the scenario is live. Since annotations already cover safety, this extra context justifies a high score.

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 two concise sentences with no filler. The first sentence states the primary action, and the second adds key behavioral nuance, making it efficient and well-structured.

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?

With 100% schema coverage and annotations providing safety context, the description adequately rounds out the tool by explaining side effects. It lacks only an explicit return-value description, but this is minor for a mutation tool.

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 100%, so all parameters are already documented. The description does not add any additional meaning to the parameters, aligning with the baseline of 3.

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 clearly states the tool restores a scenario graph to a selected revision, using a specific verb and resource. It distinguishes itself from sibling tools like flows_save, flows_publish, and flows_versions by conveying the restore action.

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

Usage Guidelines3/5

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

The behavior is described (new revision, immediate effect), but there is no explicit guidance on when to use this tool versus alternatives. Usage is implied by the purpose rather than explicitly stated.

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

flows_saveСоздать или сохранить сценарийA

Без параметра flow создаёт сценарий — пустой, из переданного графа или копией другого (copy_of). С параметром flow перезаписывает его. Граф передаётся ЦЕЛИКОМ: чтобы поправить один узел, сначала прочитайте сценарий через flows_get и пришлите изменённый список полностью. Не переданные nodes/edges/comments/viewport сохраняются. Новая редакция создаётся, только если граф действительно изменился. Готовые сценарии — «Консультант с ИИ», «Заявка», «Запись на визит» и другие — здесь не создаются: их ставят из маркета через market_install. При создании без copy_of первый сценарий своего вида включается автоматически только с правом flow.publish; без него остаётся черновиком. Копии остаются черновиками. Включить сценарий — flows_publish.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowNoКакой сценарий перезаписать. Не указывайте для нового.
nameNoНазвание сценария.
edgesNoЗаменить список связей целиком.
nodesNoЗаменить список узлов целиком.
scopeNoДля какой переписки: dialog — личная (по умолчанию), community — сообщества: группы и каналы. Узлы сообществ (trigger.member, trigger.post, action.kick и другие) есть только у community, «Анкета» и «Кнопки под полем ввода» — только у dialog; каталог под вид — operbots_catalog what=node_kinds scope=…. Сменить вид можно только у выключенного сценария.
commentNoКомментарий к редакции.
copy_ofNoСкопировать существующий сценарий вместо создания пустого. Название копии — в name; без него будет «… — копия».
commentsNoКомментарии полотна целиком. [] удаляет все; без поля сохраняются.
templateNoУстаревшее поле создания: blank.
viewportNoПоложение полотна. Без поля сохраняется прежнее.
descriptionNoОписание.
provider_idNoУстаревшее поле создания: ID ИИ-сервиса. Текущая панель не использует его.
knowledge_base_idNoУстаревшее поле создания: ID базы знаний. Текущая панель не использует его.

TDQS

A4.8/5.0
Behavior5/5

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

With annotations already covering readOnly, openWorld, idempotent, and destructive hints, the description adds critical behavioral context: the graph is replaced wholesale, omitted nodes/edges/comments/viewport are preserved, a new revision appears only if the graph actually changed, copies stay drafts, and first-script auto-enable depends on the flow.publish permission. No annotation contradiction is present.

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

Conciseness4/5

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

The description is dense but front-loads the create-versus-overwrite distinction and then adds operational rules. Most sentences carry unique information, though the passage is long enough that some tightening would improve scanability.

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

Completeness5/5

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

For a complex 15-parameter mutation tool with nested graph objects, no output schema, and annotations covering safety hints, the description supplies the missing operational context: create/overwrite semantics, whole-graph replacement, field preservation, revision behavior, permissions, and related tools.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents each parameter individually. The description nevertheless adds cross-parameter meaning: flow toggles create versus overwrite, copy_of controls copying, absent nodes/edges/comments/viewport are preserved, and names the graph-replacement rule. It stops short of explaining every parameter, but it meaningfully extends the schema.

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 states a precise create-or-overwrite action for flow scripts and explicitly distinguishes the two modes via the presence or absence of the flow parameter. It names sibling tools (flows_get, market_install, flows_publish) and the copy_of alternative, so an agent can identify the tool's role without opening the schema.

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 gives explicit when-to-use rules: omit flow to create (empty, from graph, or via copy_of), pass flow to overwrite, use flows_get before editing, use market_install for catalog scripts, and flows_publish to enable. Alternatives and exclusions are clearly stated.

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

flows_simulateПрогнать сценарийA

Проверяет сценарий, не выходя к платформе: какой триггер сработал, какие шаги прошли и что бот ответил бы. Диалог нигде не сохраняется, задержки пропускаются, запросы к внешним адресам и весточки в служебный чат не выполняются. Через variables можно подставить накопленное разговором — так проверяются ветки условий и подстановки. Внимание: узлы с ИИ обращаются к настоящей модели и расходуют её лимиты.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.
textNoТекст входящего сообщения.
eventNoДля сценариев сообществ: post — пост в канале (text — его текст), join и leave — участник вошёл или вышел (text — его имя). Без него — обычное сообщение.
commandNoКоманда без косой черты, например start.
variablesNoПеременные разговора на момент прогона: {"город": "Москва"}.
callback_dataNoДанные нажатой кнопки.

TDQS

A4.7/5.0
Behavior5/5

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

The description substantially expands on the annotations by disclosing that the dialog is not saved, delays are skipped, external requests and service-chat messages are not executed, and AI nodes call the real model and consume quota. This is exactly the behavioral context an agent needs beyond readOnlyHint/openWorldHint, and nothing contradicts the annotations.

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?

Four dense, purposeful sentences: purpose first, then behavioral caveats, then the variables use case, then the AI quota warning. Every sentence contributes new information and the description does not repeat schema content.

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

Completeness5/5

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

For a complex simulation tool with 8 parameters and no output schema, the description covers expected results, side-effect limitations, parameter semantics for variables, and a critical cost warning about AI node usage. Combined with the fully described schema, an agent has enough context to select and invoke the tool correctly.

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

Parameters4/5

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

The input schema already covers all 8 parameters with descriptions, so the baseline is 3. The description adds meaningful extra semantics for variables — they substitute accumulated conversation values to test condition branches and substitutions — and emphasizes that the tool is a simulation, which clarifies how parameters like text, event, or command are interpreted.

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?

States a concrete verb and resource: 'Проверяет сценарий' and describes what the simulation returns — which trigger fired, which steps passed, and what the bot would reply. This clearly distinguishes it from sibling flow tools like flows_get, flows_publish, or flows_delete by framing it as a non-publishing simulation tool.

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

Usage Guidelines4/5

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

Gives clear usage context: use it to test scenarios and condition/substitution branches via variables without persisting the dialog or hitting external endpoints. It does not explicitly name alternative tools or state when not to use it, but the intended use case is evident from the description.

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

flows_versionsИстория редакцийB
Read-onlyIdempotent

Все сохранённые редакции сценария с комментариями и датами.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results include comments and dates, giving some return-content context, but no details on pagination or ordering.

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?

One short sentence, front-loaded with the main content, no redundant words. It could benefit from a verb, but structure is efficient.

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 simple read-only list tool with no output schema, the description provides the essential return content (all revisions with comments and dates) and annotations cover safety. However, it doesn't explain ordering, pagination, or the exact structure of each revision, leaving some gaps.

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 100%, so all three parameters are already documented. The description adds no parameter-specific context beyond what the schema provides; baseline of 3 applies.

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

Purpose4/5

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

The description identifies the resource (saved revisions of a script) and implies a listing operation, but lacks an explicit verb. It doesn't distinguish from sibling tools like flows_list or flows_get, though 'редакции' clarifies it's about version history.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as flows_get or flows_restore. The description only states what is returned, not when it should be selected.

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

invites_acceptПринять приглашениеA

Вступает в дело от имени текущего пользователя по токену из ссылки-приглашения.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesТокен из ссылки-приглашения, без адреса и пути.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered externally. The description adds that the action is performed on behalf of the current user and joins a case, but does not disclose permission requirements, reversibility of joining, or error behavior.

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

Conciseness4/5

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

A single tight sentence with the core action front-loaded and no filler. It is appropriately sized, though minimal enough that it leaves gaps rather than being padded.

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 simple one-parameter accept action with rich annotations and no output schema, the description conveys the action, actor, and input source adequately. It stops short of describing the resulting state change (user becomes a case participant) or failure modes, but nothing critical is missing for invocation.

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 100% and the token parameter is already documented in the schema (including 'without address and path'). The description only restates that the token comes from the invite link, adding no further syntax or constraint detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and outcome ('Вступает в дело' – joins a case) and the mechanism (invitation token, acting as the current user). It is clearly distinguishable from sibling invite tools (create/revoke/get), though it does not explicitly name those siblings.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent infers the tool applies when it has a token from an invite link. There is no explicit when-to-use, when-not-to-use, or pointer to an alternative (e.g., invites_get, members_list) for related tasks.

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

invites_createСоздать приглашениеA

Делает ссылку для вступления в дело — в том числе для человека, который ещё не зарегистрирован в панели. Ссылку сервер никуда не отправляет: её нужно передать самому. Любой, у кого есть ссылка, войдёт в дело с указанной ролью.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
roleNoРоль для вступающего. По умолчанию «оператор».
emailNoОграничить приглашение одной почтой. Без этого ссылка сработает у кого угодно.
max_usesNoСколько раз можно воспользоваться ссылкой. По умолчанию 1.
ttl_hoursNoСколько часов ссылка действует. По умолчанию 72, максимум 720 (30 суток).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and idempotentHint=false, and the description adds meaningful context: the server does not send the link, and anyone with the link can join with the specified role. This goes beyond the annotations and helps the agent understand the tool's side effects and security implications.

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 two sentences long, front-loaded with the primary action, and every clause adds value. It avoids redundancy and is well-structured for quick comprehension.

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?

With 5 optional parameters and no output schema, the description should clarify the result. It implies the tool returns a link (since the server does not send it) but does not explicitly state the return format. It also omits any permission prerequisites, but overall it covers the essential behavior well for a creation tool.

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 100%, so the baseline is 3. The description adds minimal value to parameter understanding—it mentions 'specified role' but does not elaborate on the case default, email restriction, max_uses, or TTL. The schema already provides clear per-parameter descriptions, so the description is not required to repeat them.

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 clearly states the action: 'Делает ссылку для вступления в дело' (makes a link to join a case). It uses a specific verb and resource, and distinguishes from sibling tools like invites_revoke by focusing on creation. It also adds the important detail that it works for unregistered users.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (to generate an invitation link) and clarifies that the server does not send the link, so the user must distribute it. However, it does not explicitly mention when not to use it or name alternative tools, though this is a straightforward create operation.

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

invites_getПосмотреть приглашениеA
Read-onlyIdempotent

Показывает дело, роль и состояние приглашения по токену из ссылки до вступления.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesТокен из ссылки-приглашения, без адреса и пути.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds real context beyond them: it discloses the field set returned and the lifecycle constraint that it operates on tokens 'до вступления', i.e. before acceptance. It does not discuss error behavior for expired/revoked tokens.

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?

A single sentence front-loaded with the action and resource, then the returned fields, then the input constraint. Nothing is redundant or padding.

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 single-parameter read tool with full schema coverage and annotations carrying the safety profile, the description is essentially complete, and it even lists the returned fields despite there being no output schema. Only token failure modes are unaddressed, which is a minor gap.

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?

One required parameter with 100% schema description coverage, so the schema already explains that the token comes from the invite link without address or path. The description's 'по токену из ссылки' merely restates this, adding no format or edge-case detail (e.g. expiry or single-use).

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

Purpose4/5

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

Names a specific verb (Показывает) and resource (приглашение) and enumerates the returned data (дело, роль, состояние), so an agent knows this is a read of an invitation's contents. The phrase 'до вступления' implicitly separates it from invites_accept, but no sibling is named explicitly.

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

Usage Guidelines3/5

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

'до вступления' implies the pre-acceptance context in which this tool is appropriate, which is genuinely useful framing. However, it never states when to prefer this over invites_create/invites_revoke or what happens if the token belongs to an already-accepted invitation.

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

invites_revokeОтозвать приглашениеA
Destructive

Гасит ссылку-приглашение: перейти по ней больше не получится.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
invite_idYesИдентификатор приглашения из members_list.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate destructive behavior. The description adds useful context by specifying that the invitation link becomes unusable, which clarifies the exact impact of the operation beyond the generic destructive hint.

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 a single sentence with no filler, directly stating the purpose and effect. It is well-structured and easy to parse.

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

Completeness5/5

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

For a simple destructive tool, the combination of annotations (destructiveHint) and fully described parameters makes the description sufficient. It clearly communicates the core action and outcome without requiring additional detail.

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 100%, so both parameters are fully documented in the schema. The tool description adds no extra parameter semantics, so the baseline score of 3 applies.

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 clearly states the action with a specific verb 'Гасит' (revokes) and specifies the exact consequence: the invitation link will no longer work. This distinguishes it from related tools like invites_create and members_remove.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool or when to prefer alternatives. It simply describes the action without contextual cues about suitable scenarios or exclusions.

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

knowledge_add_documentДобавить материалA

Кладёт в базу текст, извлечённый текст файла (source=file) или страницу по ссылке. Разбор идёт в фоне: сразу после добавления материал в состоянии pending, проверьте его позже через knowledge_list. Повторный вызов создаёт дубликат, а не обновляет прежний материал.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoСсылка на страницу: панель скачает её и вырежет разметку.
baseYesБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textNoТекст материала. Нужен, если ссылка не задана.
titleNoНазвание материала.
sourceNoИсточник материала. Для file передайте извлечённый текст в text; без source вид определяется по url.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-idempotent, non-destructive, open-world behavior, but the description adds the crucial consequence: asynchronous pending state and duplicate creation on re-invocation. That is real behavioral context beyond the structured hints.

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?

Three tight sentences, front-loaded with the action, followed by lifecycle and duplicate warnings. No 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?

With no output schema, the description covers the async lifecycle and where to verify results (knowledge_list), which is the key missing context. It does not detail error cases or base/case resolution, but the schema describes the default case behavior.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description ties parameters together by explaining that source=file requires the extracted text in `text`, and that without `source` the type is inferred from `url`. This cross-parameter logic adds value beyond the per-field schema text.

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

Purpose4/5

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

States a specific verb ('кладёт в базу') and resource (текст, извлечённый текст файла, или страница по ссылке), making the sources explicit. It doesn't explicitly distinguish itself from siblings like knowledge_save or knowledge_document_update, though it does point to knowledge_list for follow-up.

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

Usage Guidelines4/5

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

Gives clear operational context: parsing runs in the background, the material lands in 'pending', and status should be checked later via knowledge_list. It also warns that a repeat call creates a duplicate rather than updating. It stops short of stating when to prefer this over knowledge_save/knowledge_document_update.

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

knowledge_deleteУдалить базу или материалA
Destructive

С параметром document удаляет один материал, без него — базу знаний целиком вместе со всеми материалами и векторами. Восстановить нельзя.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
documentNoМатериал: название или идентификатор. Без него удалится вся база.
confirm_nameNoТочное название базы — обязательно при удалении базы целиком.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description adds concrete behavioral details: deleting a base removes all its materials and vectors, and restoration is impossible. This gives the agent a clear and complete picture of the destructive consequences before invocation.

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 two short sentences: the first front-loads the core operation and conditional behavior, and the second delivers the critical irreversibility warning. There is no filler or repetition.

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

Completeness5/5

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

Given the fully documented schema and the absence of an output schema, the description supplies the essential behavioral context: destructive scope, conditional operation, and irreversibility. No critical gaps remain for an agent to invoke this tool safely.

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?

The input schema already documents all four parameters with descriptions, including the fact that omitting 'document' deletes the whole base. The description essentially restates this conditional behavior rather than adding new parameter-level meaning. Therefore, the high schema coverage keeps this at the baseline of 3.

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 clearly distinguishes the two deletion modes: one material when 'document' is provided, or the entire knowledge base with all materials and vectors when it is not. This makes the tool's purpose and scope immediately understandable and distinct from sibling knowledge tools.

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

Usage Guidelines4/5

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

It gives explicit conditional usage guidance: include 'document' to delete a single material, omit it to delete the whole base. It also warns that deletion is irreversible, helping the agent weigh caution. It does not explicitly name alternatives, but no direct deletion alternative exists among the siblings, so this is adequate.

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

knowledge_documentМатериал целикомA
Read-onlyIdempotent

Материал с его текстом: что в нём написано на самом деле. Список материалов текста не отдаёт. Материал можно назвать по имени — идентификатор не обязателен. С chunks=true вдобавок покажет нарезку: те самые куски, которыми материал ляжет модели.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
chunksNoПоказать куски. По умолчанию нет: они повторяют текст и удваивают ответ.
documentYesМатериал: название или идентификатор.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety expectations. The description adds useful behavioral context: the material can be referenced by name ('Материал можно назвать по имени — идентификатор не обязателен') and that chunks=true reveals the chunking used for model ingestion. These insights go beyond the structured annotations without contradicting them.

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 three sentences, each delivering a distinct piece of information: the tool's purpose, a comparison to the list, and the optional chunks behavior. It is front-loaded with the core purpose and contains no filler or redundancy.

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 read-only retrieval tool with full parameter descriptions and safety annotations, the description is complete enough. It explains what the tool returns (the material's text), highlights the key usage context (list doesn't include text), and covers the optional chunks flag. It doesn't detail the return format or error handling, but given the simplicity and existing schema, this is acceptable.

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 coverage is 100%, with clear descriptions for all four parameters. The description reinforces the name-or-ID flexibility for the document parameter and explains the chunks option, but these details are already present in the schema. Thus, the description adds minimal new semantic value beyond the schema, so the baseline score of 3 is appropriate.

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 immediately states the tool's core function: retrieving the full text of a material ('Материал с его текстом: что в нём написано на самом деле'). It also distinguishes itself from the material list, which does not include text, and mentions the optional chunks output. This is a specific verb+resource definition with clear differentiation from sibling tools like knowledge_list.

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

Usage Guidelines4/5

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

The description explicitly contrasts this tool with the material list: 'Список материалов текста не отдаёт' (the list does not give the text), implying this tool should be used when the actual text is needed. It also explains when not to use chunks by default because they 'повторяют текст и удваивают ответ'. While it doesn't name all alternatives, it provides clear guidance for the primary alternative.

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

knowledge_document_updateИзменить материалA

Правит название и текст материала. Изменённый текст сам уходит на пересборку — иначе бот отвечал бы по прежней нарезке. Вид источника и ссылку сменить нельзя: это уже другой материал. Для материала по ссылке refetch=true перечитывает страницу заново — страница забирается один раз, при добавлении, и дальше живёт снимком.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textNoНовый текст целиком — заменяет прежний.
titleNoНовое название.
refetchNoПеречитать страницу по ссылке. Только для материала-ссылки.
documentYesМатериал: название или идентификатор.

TDQS

A4.7/5.0
Behavior5/5

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

The description reveals important non-obvious behavior beyond annotations: changed text triggers reassembly to prevent stale bot answers, and link materials live as snapshots unless refetch=true is used. This adds meaningful operational context and does not contradict the annotations.

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 four dense sentences, front-loaded with the primary action, and contains no filler. Every sentence earns its place by adding a distinct and useful piece of context.

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

Completeness5/5

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

Given six parameters, no output schema, and moderate annotation richness, the description covers the operation scope, key constraints, reassembly behavior, and the refetch snapshot lifecycle. It is sufficiently complete for an agent to decide when and how to invoke the tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds extra semantics for refetch (page fetched once at addition, then lives as snapshot) and for text (triggers re-slicing), which goes beyond the schema's parameter descriptions.

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: 'Правит название и текст материала' (edits the title and text of a material). This clearly distinguishes it from sibling tools like knowledge_add_document or knowledge_delete.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: to edit an existing material's title/text, with automatic reassembly. It also explicitly states an exclusion — source type and link cannot be changed — and explains the refetch behavior for link materials, though it does not explicitly name alternative tools for those cases.

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

knowledge_listБазы знанийA
Read-onlyIdempotent

Без параметра base — все базы знаний дела с их настройками. С параметром base — ещё и список материалов с состоянием разбора.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare this a read-only, open-world, idempotent operation. The description adds meaningful behavioral context beyond that: it specifies that without 'base' it returns all knowledge bases with settings, and with 'base' it also returns a material list with parsing status. This gives the agent insight into output richness and conditional behavior, though it does not cover edge cases like empty results or pagination.

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 a single, compact sentence that front-loads the core behavior and then expands on the conditional variant. Every word contributes to understanding the tool's output and parameter effect, with no fluff or redundancy.

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?

Given the simple optional-parameter structure, no output schema, and strong annotations, the description adequately explains what the tool returns under both invocation modes. It would benefit from mentioning return format details or pagination, but the provided information is sufficient for an agent to know what to expect in typical use.

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 100% for both parameters ('base' and 'case'), so the schema already documents their meaning. The description adds conditional behavior tied to 'base', but this is more about output shape than parameter semantics. The 'case' fallback behavior is already documented in the schema, so the description does not significantly elevate parameter understanding.

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 clearly indicates the tool lists knowledge bases ('все базы знаний дела с их настройками') and optionally their materials when 'base' is provided. It distinguishes itself from sibling tools by detailing the conditional output scope, making the purpose specific and non-tautological.

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

Usage Guidelines4/5

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

The description provides clear usage context by explaining the behavior with and without the 'base' parameter, effectively telling the agent when to expect different result sets. It does not explicitly name alternative tools or exclusions, but the context is sufficient for choosing this tool over knowledge_search or knowledge_save.

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

knowledge_reindexПересобрать материалыA

Ставит материалы в очередь на повторный разбор. Нужно после смены размера куска или подключения к ИИ-сервису: старые фрагменты нарезаны по-прежнему. Без параметра document пересобирается вся база.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesБаза знаний: название или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
documentNoОдин материал: название или идентификатор.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool only queues materials for re-parsing ('ставит в очередь') and reveals a significant default behavior: 'Без параметра document пересобирается вся база' (without document, the entire base is rebuilt). This complements the annotations, which already mark the operation as non-read-only and non-idempotent; no contradiction 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 only two sentences long and front-loaded with the core action. The first sentence states what the tool does, and the second provides usage context and the document-omission default — every sentence earns its place.

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 3-parameter tool with no output schema, the description covers purpose, motivation, and default scope well. It does not explain the detailed effects on existing fragments or the final result of the reindex, but the queue semantics and full schema coverage make it sufficiently complete.

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

Parameters4/5

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

The input schema already covers all three parameters at 100%, providing a baseline of 3. The description adds valuable semantic context by specifying that omitting 'document' triggers a whole-base reindex, which is not stated in the schema itself.

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 opens with a specific verb and resource: 'Ставит материалы в очередь на повторный разбор' (puts materials in queue for re-parsing). This clearly identifies the tool's purpose and differentiates it from sibling knowledge tools, which list, save, search, or delete materials.

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

Usage Guidelines4/5

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

The description gives explicit trigger conditions: 'Нужно после смены размера куска или подключения к ИИ-сервису' (needed after changing chunk size or connecting to an AI service), and explains why old fragments remain stale. It does not name alternatives or explicitly state when not to use the tool, so it stops short of a 5.

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

knowledge_saveСоздать или настроить базу знанийA

Без параметра base создаёт базу, с параметром — меняет её настройки. Для поиска базе нужно подключение к ИИ-сервису, умеющему считать векторы. Подключение можно сменить или снять (provider=null) только у пустой базы: векторы разных моделей несопоставимы. После правки размера куска старые материалы нужно пересобрать через knowledge_reindex.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoКакую базу менять. Не указывайте, чтобы создать новую.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
nameNoНазвание базы.
top_kNoСколько фрагментов подмешивать в ответ. По умолчанию 4.
activeNoВключена ли база. Выключенная не ищет.
providerNoПодключение к ИИ-сервису для векторов: название или идентификатор. null — отвязать сервис от базы; после этого поиск не работает, пока не выбран новый.
min_scoreNoПорог близости: ниже него фрагмент не берётся. По умолчанию 0.25.
chunk_sizeNoРазмер куска в символах. По умолчанию 900.
descriptionNoДля чего она. null — стереть.
chunk_overlapNoНахлёст между кусками. По умолчанию 120.

TDQS

A4.8/5.0
Behavior5/5

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

Adds non-obvious behavioral constraints well beyond the annotations: the provider can only be swapped or detached on an empty base because vectors from different models are incomparable, and changing chunk_size invalidates existing materials until a reindex. The annotations only supply the generic write/openWorld profile; the description supplies the domain rules.

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?

Four short sentences, front-loaded with the create-vs-update rule, then the provider constraint, then the reindex note. Every sentence carries a distinct, actionable fact with no repetition of schema text.

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 10-parameter, no-output-schema mutation tool this covers the critical behaviors (mode selection, provider legality, chunk_size side effect). It omits what happens to unspecified settings on update and whether the operation is atomic, but the annotations and schema carry the rest.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description goes further by explaining the meaning of `base` presence, the `provider=null` detach semantics, and the consequence of `chunk_size`. It does not add syntax beyond the schema, but the extra causal context justifies a step above baseline.

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?

States a specific verb+resource (create or configure a knowledge base) and immediately disambiguates the two modes by the presence of the `base` parameter. An agent can distinguish this from knowledge_add_document, knowledge_reindex, and knowledge_delete without opening any schema.

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?

Explicitly states when to omit `base` (create) vs supply it (configure), and names the alternative `knowledge_reindex` for the case where chunk_size was changed. It also flags the provider=null path and its consequence, so the agent knows when that operation is legal.

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

market_getКарточка публикацииA
Read-onlyIdempotent

Публикация целиком: описание, состав сценария, история версий и, с параметром case, где в этом деле она уже стоит. С with_graph отдаёт и сам граф — посмотреть узлы до установки.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
itemYesПубликация в маркете: название, короткое имя (slug) или идентификатор.
with_graphNoПоказать граф сценария целиком.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint true and destructiveHint false, so the bar is lower. The description adds useful behavioral detail by specifying what the card contains and that with_graph includes the graph itself. No contradictions with annotations.

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?

Two compact sentences with no filler. The core content is front-loaded ('Публикация целиком') and every clause contributes useful information about the response or parameter behavior.

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 simple read-only retrieval tool with three parameters, the description covers the main contents of the returned card and the optional graph. It is moderately complete, though it does not explicitly state the output format or the default value of with_graph, which is left to the schema.

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

Parameters4/5

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

Schema coverage is 100%, so all parameters have baseline descriptions. The tool description adds value beyond the schema by clarifying that case controls whether the response shows existing usage in a case and that with_graph returns the graph for pre-install inspection, enriching the meaning of these parameters.

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

Purpose4/5

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

The description clearly identifies the resource (публикация) and enumerates exactly what the tool returns: description, script composition, version history, and optional case usage. It stops short of a strong verb and does not explicitly distinguish itself from market_list, but the scope is very clear.

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

Usage Guidelines3/5

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

The description gives a concrete use case for with_graph ('посмотреть узлы до установки') and explains the effect of the case parameter. However, it does not mention when to prefer this tool over market_list, market_install, or flows_get, leaving the choice of tool largely implied.

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

market_installУстановить из маркетаA

Ставит публикацию боту новым сценарием — рядом с существующими, ничего не заменяя. Первый сценарий своего вида включается автоматически только с правом flow.publish; без него остаётся черновиком. Остальные включаются через flows_publish. Ссылки на чужие подключения из графа снимаются; узлам «Ответ ИИ» передайте provider и knowledge_base, иначе они отвечают пустотой или «из головы». Чего требует сценарий, видно в market_get, поле «нужно». Повторная установка той же публикации даёт ещё одну копию — так обновляют до свежей версии.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
itemYesПубликация в маркете: название, короткое имя (slug) или идентификатор.
nameNoСвоё название вместо названия публикации.
providerNoПодключение к ИИ для узлов «Ответ ИИ»: название или идентификатор.
knowledge_baseNoБаза знаний для узлов «Ответ ИИ»: название или идентификатор.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true) only sketch the profile, while the description adds real substance: no replacement of existing flows, auto-enable only with flow.publish, others need flows_publish, foreign connection links are stripped from the graph, and repeated installs produce copies. None of this is derivable from the structured fields.

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

Conciseness4/5

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

Dense but front-loaded: the core action and its additive/non-replacing nature come first, then prerequisites, side effects, and the update path. Every sentence carries distinct information, though the run-on style is slightly heavy for a 6-line description.

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

Completeness5/5

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

For a non-idempotent, open-world mutation tool with no output schema, the description covers the full picture an agent needs: permission gating, non-replacement, link stripping, AI-node parameter requirements, and the copy-on-repeat behavior used for updates. Nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds behavioral meaning beyond the schema: omitting provider/knowledge_base causes AI nodes to answer with emptiness or hallucinate, and repeated install semantics apply to the item/name pairing. The 'case' default behavior is left to the schema.

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?

States a specific verb+resource ('Ставит публикацию боту новым сценарием') and immediately scopes it as additive ('рядом с существующими, ничего не заменяя'). It also distinguishes itself from neighbors: flows_publish for enabling later scenarios, market_get for checking requirements, and repeated install as the update path.

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

Usage Guidelines4/5

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

Gives clear operational context: check requirements via market_get field «нужно», pass provider/knowledge_base to avoid broken AI nodes, and use a repeat install to refresh to a newer version. It names the alternative tools, though it does not state an explicit 'do not use this when...' condition.

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

market_likeЛайк публикацииA

Поставить или снять лайк публикации от своего имени.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesПубликация в маркете: название, короткое имя (slug) или идентификатор.
likedNotrue — поставить (по умолчанию), false — снять.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint false). The description adds context that the like is toggled on behalf of the authenticated user and can be both set and removed, but it does not disclose potential side effects or response behavior. No contradiction with the annotations 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 a single, succinct sentence with no filler or redundant context. The core action and the acting identity are front-loaded, making it instantly scannable.

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 tool with only two simple parameters and no output schema, the description plus schema provides enough to invoke the tool correctly. The 'from one's own name' nuance adds useful context, though return-value/error behavior is not described — a minor gap given the low complexity.

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?

The input schema fully describes both parameters with 100% coverage, so the description does not need to repeat them. The description adds no parameter-specific meaning beyond naming the target publication, keeping it at the baseline for high schema coverage.

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 'Поставить или снять лайк публикации от своего имени' states a specific action (set or remove a like) on a specific resource (a marketplace publication). This clearly distinguishes it from sibling marketplace tools such as market_publish or market_update, which do not involve liking.

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

Usage Guidelines3/5

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

The description does not explicitly mention when to use this tool instead of alternatives, nor does it name exclusions. However, the action is self-evident — an agent can infer it should be used when the user wants to like or unlike a publication. The phrase 'от своего имени' offers a light hint that the operation is performed under the user's own identity.

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

market_listМаркет сценариевA
Read-onlyIdempotent

Каталог готовых сценариев: от проекта и опубликованные другими делами. Поиск по названию и описанию, отбор по разделу, платформе, источнику и потребности в ИИ или базе знаний. С параметром case у каждой публикации видно, стоит ли она уже в этом деле и не отстала ли от свежей версии. Установка — market_install.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
mineNoТолько публикации этого дела — то, что выложили сами.
sortNopopular — по установкам (по умолчанию), new — свежие, likes — по лайкам.
limitNoСколько записей вернуть, максимум 100. По умолчанию 30.
queryNoЧто искать в названии и описании.
scopeNodialog — сценарии для личной переписки, community — для сообществ.
offsetNoСколько записей пропустить.
sourceNoproject — от проекта operbots, community — опубликованные делами.
categoryNoРаздел маркета.
needs_aiNoЕсть ли в сценарии узлы с ИИ.
platformNoТолько сценарии, годные для этой платформы.
origin_case_idNoИдентификатор дела-источника: только его публичные публикации.
needs_knowledgeNoНужна ли сценарию база знаний.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely behavioral context beyond them: that supplying case annotates each listing with installation status and version-staleness. This is meaningful added value, though return format is not described.

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

Conciseness4/5

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

Four sentences, front-loaded with the purpose, then search/filter capabilities, the case-parameter behavior, and the install pointer. Dense but each sentence earns its place; minor compression possible.

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 13-parameter read-only list tool with no output schema and full schema coverage, the description is complete enough to call correctly and understand the case-driven enrichment. It omits pagination/return-shape guidance, but that is not essential here.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description rises above it by explaining the semantic effect of the case parameter (install status and version drift per publication) and summarizing the filter dimensions (section, platform, source, AI/knowledge needs, title/description search).

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?

States a specific verb+resource: a catalog of ready-made scenarios from the project and from other cases, with search and filtering. It clearly distinguishes itself from market_install (installation), market_get, and market_publish without requiring the reader to open other schemas.

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

Usage Guidelines4/5

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

Explicitly routes installation to market_install and explains that the case parameter surfaces whether a publication is already installed and whether it lags the current version. It gives clear usage context but does not state when to prefer market_get over market_list or any exclusion conditions.

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

market_publishВыложить сценарий в маркетA

Публикует сценарий дела в маркете: карточку и граф текущей редакции увидят все пользователи панели и смогут поставить себе. Ссылки на подключения и базы знаний снимаются, а вот текст в настройках узлов — адреса, подписи, ключи, вписанные руками, — уходит как есть: проверьте граф через flows_get. Название дела на карточке не показывается, пока не разрешить show_origin. Нужно право market.publish. Правки после публикации — market_release (новая версия) и market_update (карточка).

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий: название или идентификатор.
titleYesНазвание публикации.
summaryYesОдна строка о том, что делает сценарий.
categoryNoРаздел маркета. По умолчанию other.
descriptionNoПодробное описание.
show_originNoПодписать карточку названием дела. По умолчанию нет — оно может быть именем клиента.

TDQS

A4.9/5.0
Behavior5/5

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

Adds substantial behavioral context beyond annotations: links to connections and knowledge bases are stripped, manually entered addresses/keys are published as-is, the case name is hidden unless show_origin is set, and the result is visible to all panel users. No contradiction with the annotations.

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?

Four dense sentences, each earning its place: visibility scope, data sanitization warning, privacy caveat, permission and follow-up tools. No filler or redundant restatement of the title.

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

Completeness5/5

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

For a mutation tool with 8 parameters, no output schema, and sparse annotations, the description covers pre-flight checks, side effects, privacy concerns, permission requirements, and the post-publication update path. Nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100%, which sets the baseline at 3. The description adds value by clarifying show_origin semantics (case name hidden until enabled) and implicitly tying flow to the current revision's graph. Other parameters are fully documented in the schema.

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 states a specific verb-resource pair: publishes a case scenario to the market, making the card and graph visible to all users and installable. It also differentiates itself from sibling market tools by explicitly naming market_release and market_update for post-publish edits.

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?

Gives explicit when-to-use guidance: warns to verify the graph via flows_get before publishing due to unsanitized node text, states the required market.publish permission, and directs edits after publication to market_release and market_update. This clearly positions the tool relative to alternatives.

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

market_releaseВыпустить новую версиюA

Обновляет граф публикации до текущей редакции сценария и поднимает номер версии. Уже установленные копии у других не меняются — у них появится пометка, что доступна свежая версия. Если граф с прошлой версии не менялся, панель откажет.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий, который выложен в маркет: название или идентификатор.
commentYesЧто изменилось в этой версии.

TDQS

A4/5.0
Behavior5/5

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

The description adds meaningful behavioral context beyond the annotations: existing installed copies of other users are not changed and only receive an update-available marker. It also discloses that the operation will be refused if the graph has not changed, which is valuable non-obvious behavior.

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 compact, front-loaded with the primary action, and every sentence adds useful information about effects or constraints. There is no redundancy or 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 mutating tool with no output schema, the description covers the main outcome, side effects on installed copies, and a key failure condition. It could add explicit prerequisites or return behavior, but the provided details are sufficient for correct invocation in most cases.

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?

Parameter documentation coverage is 100%, so the schema already fully documents bot, case, flow, and comment. The description adds no extra parameter-level meaning, which is acceptable given the high schema coverage.

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

Purpose4/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: it updates the publication graph to the current scenario revision and bumps the version number. It is clearly about releasing a new version rather than installing or deleting, though it does not explicitly name sibling tools to differentiate itself.

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

Usage Guidelines3/5

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

The intended use case is implied: call this when you want to ship a new version of a previously published scenario. It does not explicitly state when to prefer this over market_publish or market_update, but it does mention a refusal condition when nothing changed, which gives some when-not guidance.

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

market_unpublishСнять публикациюA
Destructive

Убирает публикацию из маркета вместе с историей версий, лайками и счётчиком установок; вернуть их нельзя — повторная публикация начнётся с версии 1. Уже установленные копии у других дел остаются. Сам сценарий в деле не трогается.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий, который выложен в маркет: название или идентификатор.

TDQS

A4.3/5.0
Behavior5/5

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

The description provides substantial behavioral context beyond the destructiveHint annotation: it discloses irreversibility, reset of version history, loss of likes and install counters, persistence of already installed copies, and that the flow itself is not removed. This is exactly the kind of detail an agent needs before invoking a destructive operation.

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?

Three sentences, each adding distinct value: the core action and destructive scope, the irreversibility and version reset, then the non-affected elements. No filler or repetition.

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

Completeness5/5

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

Given the destructive nature and the absence of an output schema, the description covers all essential decision-making information: what is lost, what cannot be undone, what remains, and what is untouched. An agent can predict the operation's effects without needing external context.

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 100%, so parameters already documented. The description reinforces that 'flow' refers to the marketplace-published scenario but does not add meaningful detail beyond the schema. Baseline 3 is appropriate.

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 states a specific verb and resource: removing a publication from the marketplace. It goes beyond a tautology by specifying what is removed — history, likes, install counter — and clearly differentiates the action from siblings like market_publish and market_release.

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

Usage Guidelines3/5

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

The description clearly implies use when you need to permanently remove a marketplace publication, and it explains the consequences. However, it does not explicitly contrast with sibling tools such as market_release or market_update, nor does it state when not to use it.

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

market_updateПравить карточку публикацииA

Меняет карточку публикации — название, описание, раздел, подпись делом. Граф не трогает: для него market_release.

ParametersJSON Schema
NameRequiredDescriptionDefault
botYesБот: название, @username или идентификатор.
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
flowYesСценарий, который выложен в маркет: название или идентификатор.
titleNoНазвание публикации.
summaryNoОдна строка о сценарии.
categoryNoРаздел маркета.
descriptionNoПодробное описание.
show_originNoПоказывать ли название дела на карточке.

TDQS

A4/5.0
Behavior3/5

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

Annotations already communicate that this is a mutating, non-idempotent, non-destructive operation. The description adds a useful behavioral boundary: it does not touch the graph, and market_release is for that. However, it does not disclose side effects, permission requirements, or whether the update is partial or full replacement.

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 a single, compact sentence that front-loads the action and fields, then adds the crucial sibling distinction. There is no filler or redundancy.

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 an 8-parameter update tool with a fully documented schema and no output schema, this description provides enough selection context: what is edited, what is not touched, and which sibling to use instead. It could mention return behavior or update semantics, but nothing essential for correct tool selection is missing.

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 100%, so the parameters are already well-documented. The description paraphrases a few fields (title, description, category, show_origin) but adds no new semantic detail beyond what the schema provides, so the baseline of 3 is appropriate.

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 gives a specific verb and resource: 'Меняет карточку публикации' (changes the publication card) and enumerates the affected fields (название, описание, раздел, подпись делом). It also explicitly distinguishes itself from market_release, so an agent can tell this tool apart from its closest sibling without inspecting the schema.

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

Usage Guidelines4/5

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

The description gives a clear when-not-to-use signal: for graph changes it points to market_release instead. It does not discuss broader alternatives like market_publish or mention prerequisites, but the core routing between update and release is explicit.

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

members_listУчастники, роли и приглашенияA
Read-onlyIdempotent

Кто состоит в деле, с какой ролью и какими итоговыми правами; какие роли заведены в деле и какие ссылки-приглашения действуют. Разделы, на которые не хватает прав, помечаются как недоступные. Ссылки приглашений видны только с правом member.invite.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
with_permissionsNoПоказывать полный список прав каждого участника. По умолчанию нет.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld, so the bar is lower, and the description still adds real context: sections without sufficient rights are shown as unavailable, and invite links require the member.invite permission. These permission-dependent output behaviors are not derivable from the annotations or schema.

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

Conciseness4/5

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

Two compact sentences that front-load the content scope (who belongs, roles, invites) before the permission caveats. No filler, though the semicolon-chained clauses are slightly dense.

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 read-only aggregation tool with no output schema and annotations covering the safety profile, the description is largely complete. It explains what is returned and the two permission-gated behaviors, leaving only the when-to-use dimension unaddressed.

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 100% for both parameters (case default resolution and with_permissions), so the schema carries the parameter meaning. The description adds nothing about the parameters, making the baseline 3 appropriate.

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

Purpose4/5

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

The description names a specific resource set: members with their roles and effective permissions, the roles defined in the case, and active invite links. It is clearly a read/list tool, distinguishable from members_save, members_remove, and invites_create, though the verb 'list' is only implied rather than stated.

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

Usage Guidelines2/5

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

There is no explicit statement of when to use this tool versus alternatives. Siblings like invites_get, roles_* and members_save exist, but the description never routes the agent or states prerequisites or exclusions beyond the permission-based visibility notes.

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

members_removeИсключить участникаA
Destructive

Убирает человека из дела. Он теряет доступ ко всем ботам, сценариям и переписке дела. Владельца исключить нельзя.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
memberYesКого исключить: почта, имя или идентификатор участия.

TDQS

A4.4/5.0
Behavior5/5

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

The description goes beyond the destructiveHint annotation by detailing the exact consequences: the removed person loses access to all bots, scenarios, and case correspondence. It also discloses the owner limitation, which is important behavioral information not present in annotations.

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 only two sentences, with the primary action stated first and the consequences/constraints in the second. It is concise, well-structured, and every sentence adds value.

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?

The description fully explains the purpose, consequences, and a key restriction. Given the simple tool with only two parameters and no output schema, it provides sufficient context for selection and invocation. It omits error handling details, but those are not essential for a user deciding to use the tool.

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?

The input schema provides full descriptions for both parameters (case and member), and the tool description does not add any additional parameter-specific details. With 100% schema coverage, a baseline score of 3 is appropriate.

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 clearly states the tool's action: removing a person from a case. It uses a specific verb ('убирает') and resource ('человека из дела'), and the context about losing access distinguishes it from other member-related tools like members_list or members_save.

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

Usage Guidelines4/5

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

The description gives context on when to use the tool (to revoke a person's access to a case) and includes a critical restriction (the owner cannot be excluded). However, it does not explicitly mention alternatives like members_save, so it lacks direct when-not-to-use guidance.

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

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

Без параметра member добавляет в дело уже зарегистрированного человека по почте. С параметром member меняет его роль и точечные права поверх роли. Если человек ещё не зарегистрирован, создайте ссылку-приглашение через invites_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
noteNoСлужебная пометка об участнике. null — стереть.
roleNoРоль: название, короткое имя или идентификатор. Готовые: owner, admin, builder, operator, observer. По умолчанию при добавлении назначается «оператор». null — снять роль.
emailNoПочта того, кого добавляем в дело.
memberNoКого менять: почта, имя или идентификатор участия. Не указывайте для добавления.
extra_permissionsNoПрава поверх роли. Заменяет прежний список целиком.
revoked_permissionsNoПрава, отбираемые у участника вопреки роли. Заменяет прежний список целиком.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so safety is partly covered. The description adds genuinely useful behavioral context the annotations cannot: the mode switches based on member, and the person must already be registered or the call is inappropriate. It stops short of noting what happens to existing role/notes.

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?

Three sentences, front-loaded with the mode distinction, no filler. Every sentence carries actionable routing or prerequisite information.

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 7-parameter mutation tool with full schema coverage and annotations but no output schema, the description covers the essential modes and the registration prerequisite. It omits minor details like list-replacement semantics for permissions and return behavior, but those are adequately handled by the schema.

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

Parameters4/5

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

Schema description coverage is 100%, so the per-parameter documentation already exists and the baseline would be 3. The description adds the key cross-parameter interaction (member presence flips add vs. edit), which is value beyond the individual field docs, warranting a small bump.

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 states a specific verb and resource and, critically, splits the tool into its two real modes: adding a registered person by email (no member param) vs. changing role/permissions (member param). It even names the sibling to use for the unregistered case, invites_create, so an agent can distinguish it without opening the schema.

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 gives explicit selection logic keyed on the presence/absence of the member parameter and routes the unregistered-user scenario to invites_create. When-to-use and the primary alternative are both spelled out rather than left to inference.

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

notifications_filtersВиды уведомлений и отборC
Read-onlyIdempotent

Каталог видов, дел, уровней, числа записей и срок хранения.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, which fully covers the safety profile. The description adds nothing behavioral beyond that — no indication of the shape of the returned catalog, whether values are scoped per account, or how it relates to live notification queries.

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

Conciseness4/5

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

One short, front-loaded clause with no filler. It is economical, though it is terse to the point of under-specification rather than tight exposition.

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

Completeness2/5

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

For a zero-param discovery tool the description is the main information channel, since there is no output schema to describe the returned catalog. It leaves the agent without the return shape, the intended call order relative to notifications_list/summary/settings, or any context on scope.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description's enumeration of catalog dimensions (types, cases, levels, counts, retention) is metadata about the tool's output rather than about inputs, but no parameter semantics are missing.

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

Purpose3/5

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

The description is a bare noun list ('catalog of types, cases, levels, record counts and retention periods') with no verb, so it never states that the tool returns available filter values. A reader can guess the resource is filter metadata, but it is not differentiated from close siblings such as audit_filters, notifications_list, or notifications_summary.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite, and no named alternative. An agent cannot tell from this text whether to call notifications_filters before notifications_list, or instead of notifications_summary.

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

notifications_listЛента уведомленийB
Read-onlyIdempotent

Личные уведомления всех дел с отбором и страницами. Чтение ленты не отмечает записи прочитанными.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
kindNo
levelNo
limitNoСколько записей вернуть, максимум 200. По умолчанию 30.
offsetNo
unreadNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld behavior, so the bar is lower. The description adds valuable context beyond annotations: reading the feed does not mark records as read, which is a critical side-effect nuance not captured by the structured flags. No rate limits or return format details are given.

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?

Two short sentences, front-loaded with scope and followed by the key behavioral caveat. Every sentence earns its place with no redundancy or filler.

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

Completeness3/5

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

For a 6-parameter list tool with no output schema and low schema description coverage, the description is minimally adequate. It covers overall scope and one important behavioral trait, but leaves filtering parameters and pagination defaults unexplained. It is not misleading, but clear gaps remain.

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

Parameters2/5

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

Schema coverage is only 33% (2 of 6 parameters have descriptions), so the description should compensate but does not. It generically mentions filtering and pagination, but provides no semantics for kind, level, offset, or unread beyond what the bare schema shows. This leaves key parameters under-specified.

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

Purpose4/5

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

The description says it returns personal notifications for all cases with filtering and pagination, which clearly identifies a list operation. It also distinguishes itself from notifications_read by stating that reading the feed does not mark records as read. It does not explicitly name alternative siblings, so a 4 is appropriate.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus notifications_summary, notifications_filters, or notifications_read. The only distinguishing note is behavioral (non-marking), not a usage recommendation. No exclusions or context for selection are provided.

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

notifications_readОтметить уведомления прочитаннымиC

Укажите ids или all=true. Параметр case ограничивает массовое прочтение одним делом.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
idsNo
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether marking read is reversible, whether it fires events/webhooks, or what happens to notifications outside the given case. It largely restates parameter mechanics.

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

Conciseness4/5

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

Two short sentences with no padding, and the primary selection mechanism (ids or all=true) is front-loaded ahead of the case qualifier. It is efficient, though criticism here is under-specification rather than verbosity.

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

Completeness3/5

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

For a 3-parameter mutation tool with no output schema, the description covers argument usage but omits the core action, side effects, and post-call behavior an agent would want before mutating notification state. It is the minimum viable level given the title fills in the purpose.

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 coverage is only 33% – 'all' and 'ids' have no schema descriptions at all, and only 'case' is documented in-schema. The description compensates partly by presenting ids-or-all as the selection mechanism and explaining that 'case' narrows mass marking to one case, but it does not clarify mutual exclusivity, that ids are UUIDs, or the minimum-one-item rule.

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

Purpose3/5

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

The description never states the action itself; it only instructs how to pass arguments ('Укажите ids или all=true'). The verb+resource is recoverable from the title ('Отметить уведомления прочитанными') and by inference from the param names, but the description alone gives a vague purpose and does not distinguish this from siblings like notifications_list, notifications_summary, or dialogs_mark_read.

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

Usage Guidelines2/5

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

It explains argument mechanics (ids vs all=true, case scoping) but gives no when-to-use guidance, no statement of prerequisites, and no routing against alternatives such as notifications_summary or dialogs_mark_read. The two modes are implied rather than framed as alternatives.

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

notifications_settingsНастройки уведомленийC
Read-onlyIdempotent

Полный каталог видов и текущие флаги доставки.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare read-only, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds no further behavioral context such as authentication requirements, rate limits, or output format, leaving it with minimal value beyond the annotations.

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

Conciseness4/5

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

The description is a single short sentence with no wasted words, but it lacks a clear verb and front-loaded action, making it terse to the point of under-specification. Still, it is efficient for a simple read tool.

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

Completeness3/5

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

For a zero-parameter, read-only tool with no output schema, the description states the data returned (catalog of types and delivery flags), which is reasonably complete. However, it does not clarify the output format or distinguish it from siblings like notifications_summary, so some gaps remain.

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

Parameters4/5

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

Tool has zero parameters, so the schema cannot be enriched; baseline for zero params is 4. The description does not discuss any parameters, which is appropriate given none exist.

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

Purpose3/5

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

Description is a noun phrase ('Full catalog of types and current delivery flags') that names the returned data but never states an action verb or purpose, leaving it unclear whether the tool retrieves, lists, or manages settings. It is more specific than the title but still vague about what the tool does.

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

Usage Guidelines2/5

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

Provides no when-to-use guidance, no exclusions, and does not mention the sibling notifications_settings_save or any alternative. An agent receives no routing information.

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

notifications_settings_saveНастроить уведомленияA

Меняет флаги указанных видов; остальные настройки сохраняются. replace=true заменяет всю карту и сбрасывает пропущенные виды к серверным значениям.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsYes
replaceNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly=false, idempotent=false and destructive=false. The description adds real value beyond that by spelling out merge semantics (unmentioned settings survive) and the reset-to-server-defaults effect of replace=true. It still omits permission requirements and whether the reset under replace=true is recoverable.

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?

Two sentences, zero filler, and the merge behavior is front-loaded ahead of the replace caveat. Every clause carries information the schema does not.

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?

No output schema exists, so return values need not be explained, and the description covers the two behaviors an agent most needs (merge vs replace). For a mutation tool it is nearly complete; only auth/permission expectations are missing.

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

Parameters4/5

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

Schema description coverage is 0% and there are two nested-object-bearing parameters, so the description must compensate. It does: kinds is explained as a partial flag map (others preserved) and replace as a full-map replacement that resets omitted kinds — meaning well beyond the bare boolean schema.

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

Purpose4/5

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

States a specific verb (меняет флаги — changes flags) and resource (указанных видов — of the specified kinds), and the title pins it to notification settings. It is distinguishable from the read-only sibling notifications_settings, though it never names that sibling explicitly.

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

Usage Guidelines2/5

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

The description explains the semantics of the operation but gives no when-to-use vs when-not guidance and never points to notifications_settings (read) or notifications_filters as alternatives. The agent must infer the context of use on its own.

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

notifications_summaryНепрочитанные уведомленияB
Read-onlyIdempotent

Точный общий счётчик личной ленты.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds that it returns an exact total count, which is useful context, but it does not specify what is being counted, whether authentication is required, or any rate limits.

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

Conciseness4/5

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

The description is a single short clause with no wasted words and is front-loaded. It is arguably too terse for full clarity, but it is structurally efficient.

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

Completeness3/5

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

Given zero parameters, existing annotations, and no output schema, the description offers only minimal context. Combined with the title 'Непрочитанные уведомления' it is possible to infer the tool counts unread notifications, but the description alone does not state that, leaving a gap in what the counter actually measures.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has no parameters to document. The description appropriately does not need to explain parameter semantics, and the baseline of 4 applies for a parameterless tool.

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

Purpose3/5

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

The description states that the tool is an exact total counter for a personal feed, which gives some idea of the function, but it never explicitly says it counts notifications or unread items. It also does not distinguish this tool from siblings like notifications_list or notifications_read, leaving the agent to infer the exact purpose.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as notifications_list or notifications_filters. No prerequisites, exclusions, or contextual triggers are mentioned.

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

operbots_catalogСправочники панелиA
Read-onlyIdempotent

Что можно использовать при сборке: платформы с их пределами, виды узлов сценария с полным составом их настроек, разделы маркета, виды ИИ-сервисов с нужными ключами и каталог прав. Готовые сценарии ищите в маркете: market_list и market_install. Смотрите node_kinds перед тем, как собирать или править сценарий: config каждого узла описан именно там — и передавайте platform: сами узлы у платформ одни и те же, а варианты в их настройках разные (у MAX нет разметки MarkdownV2 и голосового среди вложений).

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДля node_kinds: дело с настроенными расширениями.
kindNoПоказать подробно только один вид: например action.ai или openai.
whatYesКакой справочник показать.
scopeNoДля node_kinds: под какой вид сценария — dialog (личная переписка) или community (группы и каналы). Без него — узлы обоих видов, у каждого поле scopes.
platformNoДля node_kinds: под какую платформу отобрать варианты настроек. Без него придёт полный набор, и сценарий можно собрать с вариантом, которого у платформы бота нет.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real domain context beyond annotations — that each node's config lives in node_kinds, that platform variant differences matter, and concretely that MAX lacks MarkdownV2 and voice attachments. It does not mention permission requirements, but with annotations doing the heavy lifting this is a solid addition.

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

Conciseness4/5

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

Front-loaded with what the tool returns, then actionable guidance, then the platform nuance. Every sentence is relevant, though the parenthetical MAX/MarkdownV2 detail is slightly tangential and could be trimmed without loss.

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?

With no output schema, the description carries the burden of telling the agent what comes back, and it does so by enumerating the five catalogs and their contents. Combined with 100% schema coverage for the five params, an agent has enough to invoke it correctly; only the exact shape of each catalog response is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents all five parameters. The description nonetheless adds meaning for the platform parameter by explaining the rationale (nodes are shared across platforms but their setting variants differ) and giving a concrete MAX example, which goes beyond the enum-only schema text.

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 names a specific resource (a set of reference catalogs) and enumerates exactly what it returns: platforms with limits, scenario node kinds with their settings, market sections, AI service kinds with keys, and a permissions catalog. It explicitly separates itself from the market tools ('ready-made scenarios — look in market_list and market_install'), so an agent can tell it apart from siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear situational guidance: consult node_kinds before building or editing a scenario, and pass platform so variants match the bot's platform. It routes to alternatives (market_list, market_install) for ready-made scenarios. It lacks an explicit 'when not to use' for the non-node_kinds catalogs, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

operbots_loginПодключиться к панелиA

Проверяет доступ или подключается по токену из локального token_file. Токен выпускается в самой панели: аккаунт → Интеграции → «Выпустить токен», и показывается там один раз. Человек вводит его через CLI login или локальный файл; формы MCP не запрашивают секреты. Вызывайте, когда другие инструменты сообщают, что доступ не настроен или токен больше не действует.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoАдрес панели. По умолчанию сохранённый адрес или http://localhost:8080.
token_fileNoАбсолютный путь к UTF-8 файлу с токеном. Значение читает локальный сервер, в переписку оно не попадает.
switch_accountNoПодключиться заново, даже если доступ уже настроен.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses the real behavioral model: it validates or establishes an authenticated session, secrets are never entered through MCP forms, and token provisioning is manual and one-time. It does not discuss what happens to an existing session or token on reconnect, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: the action first, then the token-sourcing and secrecy context, then the call trigger last. It is appropriately sized with no filler, though the token issuance detail is somewhat dense within a single sentence.

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?

With no output schema, the description adequately covers what the tool does, when to call it, and the human-in-the-loop auth model for a 3-parameter tool. It does not state what a successful or failed connection returns, which is a minor remaining gap.

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 100%, so url, token_file, and switch_account are already documented in the schema with defaults and formatting notes. The description adds the conceptual context of where the token comes from but no parameter-level syntax beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it checks access or connects to the panel using a token from a local token_file. It is clearly distinct from operbots_logout, which is its opposite, and from whoami. It does not explicitly name sibling tools, keeping it just below a 5.

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 gives an explicit, actionable trigger: call it when other tools report that access is not configured or the token is no longer valid. It also explains where the token originates (account → Integrations → issue token) and the two ways a human supplies it, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

operbots_logoutЗабыть доступ на этой машинеA
Destructive

Стирает сохранённый токен с этой машины. Сам токен при этом продолжает действовать — чтобы он перестал работать везде, отзовите его в панели: аккаунт → Интеграции.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the token is not revoked server-side, a key behavior beyond the annotations. It clarifies that the action is local and non-reversible through this tool, significantly aiding user expectations.

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 two-sentence description is concise and front-loaded, stating the core action first and adding essential nuance in the second sentence without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, output-less tool, the description fully covers functionality, side effects, and the path to full revocation. It leaves no critical questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline of 4 applies as there are no parameter details to elaborate on, and the description need not compensate for schema gaps.

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 clearly states the tool erases a saved token locally, using the verb 'erase' and specifying the resource ('saved token') and scope ('on this machine'). It also distinguishes itself by noting the token remains valid, setting it apart from revocation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage when the user wants to log out on this machine only, and explicitly directs to the panel for full revocation. While it doesn't name sibling tools, the alternative path is clearly outlined, providing adequate when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replies_deleteУдалить заготовку ответаA
Destructive

Убирает заготовку из списка. Отправленные по ней сообщения остаются в переписке — исчезает только сама заготовка.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
replyYesЗаготовка: название или идентификатор.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as destructive and non-read-only, and the description adds the crucial behavioral nuance: only the template is removed, while previously sent messages remain unaffected. This is exactly the kind of contextual detail an agent needs beyond the structured hints.

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?

Two short sentences with no redundancy. The primary effect is stated first, followed by an important clarifying side-effect boundary. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with a required reply parameter and an optional case parameter, the description plus schema fully covers what the tool does, what is affected, and what remains. No output schema is needed for this operation.

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?

The input schema already covers all parameters with full descriptions, so the description does not need to repeat them. It adds no hidden semantics beyond the schema, which is acceptable given the 100% schema description coverage.

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 ('Убирает') with a clear resource ('заготовку из списка') and adds a scoping detail: sent messages remain, only the template itself disappears. This clearly distinguishes it from other delete-like siblings such as cases_delete or dialogs_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use clear: it removes a reply template without deleting the messages sent using it. It does not explicitly name alternatives or exclusion conditions, but the context and sibling naming make the appropriate selection evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replies_listЗаготовки ответовA
Read-onlyIdempotent

Заготовленные ответы оператора: приветствие, реквизиты, «уточню и вернусь». Порядок — по частоте вставки, нужное каждый день сверху. Отправить заготовку в разговор: dialogs_reply reply=«название».

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavior beyond those: replies are ordered by insertion frequency with the most frequently used at the top, and it explains the relationship to dialogs_reply. No contradiction with annotations.

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?

Three short sentences accomplish purpose, ordering behavior, and cross-tool routing with no filler. The most important information is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with one optional, fully documented parameter and no output schema, the description is complete: it states what the list contains, how it is ordered, and how to send a listed reply elsewhere. Nothing essential is missing for correct invocation.

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?

The input schema fully documents the optional 'case' parameter, including default behavior when it is omitted. The description itself does not add further parameter detail, so with 100% schema description coverage the baseline score of 3 is appropriate.

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 clearly identifies replies_list as listing operator canned responses ('Заготовленные ответы оператора') with concrete examples. It is easily distinguished from siblings like replies_save, replies_delete, and dialogs_reply by naming the action and cross-referencing the send operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates when to use this tool (to view pre-prepared operator replies) and even points to the alternative for sending a reply: dialogs_reply reply=«название». It does not explicitly state exclusion conditions versus replies_save/replies_delete, but the listing purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replies_saveСохранить заготовку ответаA

Без параметра reply заводит новую заготовку, с ним — правит существующую. Название нужно, чтобы заготовку было чем позвать; без него панель обойдётся, но в списке она станет безымянной.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textNoТекст ответа. 4096 — грубая верхняя граница, а не предел платформы: свой предел у каждой, см. operbots_catalog what=platforms.
replyNoКакую заготовку править: название или идентификатор. Не указывайте для новой.
titleNoНазвание заготовки.
parse_modeNoРазметка: HTML или пустая строка для обычного текста.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, openWorld=true, destructive=false, and the description is consistent with them. The description adds genuine behavioral context not in the annotations: omitting `title` still works but leaves the template unnamed in listings, a real downstream consequence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the create/edit distinction and then the title caveat. Nothing is wasted and the important conditional comes first, though it is not maximally tight.

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?

With five optional params, full schema coverage, annotations, and no output schema, the description plus schema covers what an agent needs: branch behavior and title consequences. It does not need to explain return values. Adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the create-vs-edit role of `reply` and the functional importance of `title` (it is how the template is later referenced). That is a modest but real value-add over the per-field schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the branching behavior precisely: without `reply` it creates a new template, with it edits the existing one. Combined with the name/title, an agent knows this persists a reply template. It does not explicitly distinguish itself from siblings like replies_list/replies_delete, but the verb+resource are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditional usage: omit `reply` for a new template, supply it to edit an existing one. That covers the main when-to-use decision. No named alternatives or exclusions, but for a save/upsert tool the routing is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_cancelОтменить заявкуA
Destructive

Отменяет заявку и пропускает её незавершённые задачи. Нужны revision и явная причина.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
reasonYes
revisionYes
request_idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, readOnly=false, idempotent=false, and openWorld=true. The description adds meaningful behavioral context: unfinished tasks are skipped and both a revision and an explicit reason are required, which helps an agent understand side effects and concurrency control.

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?

Two short sentences, front-loaded with the main action and followed by the key input requirements. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and there is no output schema, so the description need not explain return values. However, with only 25% schema coverage, it should do more to explain the case parameter and revision semantics for a destructive, non-idempotent mutation.

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 only 25%, so the description must compensate. It clarifies that revision and reason are required and that the reason must be explicit, but it does not explain the request_id or the case parameter and their defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: cancels a request and skips its unfinished tasks. This distinguishes it from pure deletion tools like requests_delete, though it does not explicitly name or contrast siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as requests_delete, tasks_cancel, or requests_workflow. The note about required revision and reason is a parameter requirement, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_commentДобавить комментарий к заявкеB

Добавляет текст в историю заявки. Комментарий не требует revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
textYes
request_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=true, so the safety profile is covered. The description adds one genuinely useful behavioral note — a comment does not require revision — but says nothing about permissions, visibility of the comment, or failure behavior.

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?

Two short sentences with zero waste, and the core action is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and only 33% parameter coverage, the description is thin: it omits permissions, the effect of the comment (where it appears in history, who sees it), and how the 'case' fallback interacts with the request. Annotations carry the safety profile, so it is adequate but clearly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%: only the 'case' parameter is documented, while required 'text' and 'request_id' carry constraints but no explanatory text. The description adds no meaning beyond the schema, so it fails to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: adds text to the request's history (история заявки). The added clause that a comment does not require revision helps distinguish it from a full requests_save, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no reference to alternative tools. An agent must infer that this is the lightweight append path versus requests_save, and nothing states prerequisites or when comments are inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_deleteУдалить заявкуA
Destructive

Удаляет заявку вместе с историей. Нужны текущая revision и точное название для подтверждения.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
revisionYes
request_idYes
confirm_nameYesНазвание заявки дословно.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is known. The description adds real behavioral context beyond that: deletion removes the history too (broader blast radius than just the record) and requires a confirmation pair (current revision + verbatim name), implying optimistic-concurrency guarding.

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?

Two compact sentences, no filler. The destructive scope (with history) and the confirmation requirement are both front-loaded, so the agent can act immediately.

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?

No output schema exists and this is a destructive mutation, but the description covers the two things an agent most needs: that history is destroyed and that a confirmation pair is mandatory. It does not say what happens on a stale revision, which is a minor gap.

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 coverage is only 50% (request_id and revision are undocumented in the schema). The description partially compensates by specifying that revision must be 'current' (a concurrency requirement not in the schema) and that confirm_name must be exact, but request_id semantics and the case fallback remain unaddressed by the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (deletes a request) and adds scope beyond the name: it deletes the request together with its history. It does not explicitly distinguish itself from the sibling requests_cancel, so an agent must infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states prerequisites (current revision and exact name for confirmation) but gives no guidance on when to delete versus requests_cancel or when deletion is appropriate. No alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_getОткрыть заявкуA
Read-onlyIdempotent

Заявка целиком, включая поля, маршрут, задачи, события и текущую revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
request_idYesUUID заявки из requests_list.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real value by enumerating what the payload contains (route, tasks, events, revision), which matters because no output schema exists. It does not mention authorization or any scope limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded clause with no filler; the payload contents are listed up front. It is a noun phrase rather than a full sentence, but nothing is wasted.

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?

With no output schema, the description compensates by naming the main components of the returned object. Parameters are fully covered by the schema and safety is covered by annotations, so the only shortfall is the lack of guidance on sibling selection.

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 100%, so both the required UUID request_id and the optional case parameter are fully documented in the schema. The description adds no syntax, format, or fallback behavior beyond that, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource and its scope: the full request including fields, route, tasks, events and current revision. The word 'целиком' implicitly distinguishes it from requests_list, which returns summaries, though the sibling is never named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: fetch a single request by ID. There is no explicit statement of when to choose this over requests_list, requests_workflow, or requests_tasks_list, and no prerequisites are mentioned. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_listЗаявки делаB
Read-onlyIdempotent

Заявки с полным маршрутом, задачами, событиями и revision для последующей правки. Связи с диалогами и контрагентами панель показывает только при наличии соответствующих прав.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
mineNoТолько назначенные вам заявки.
searchNo
statusNo
overdueNo
dialog_idNo
counterparty_idNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety bar is low; the description adds real value by disclosing that dialog and counterparty links are conditionally hidden based on the caller's rights, and that the payload includes route, tasks, events and revision. It still omits pagination or result-size behavior, but the permission caveat is a genuine behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler. The structure is slightly off — it leads with the response payload rather than the action — but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does sketch the returned shape (route, tasks, events, revision), which partly covers returns. However, with 7 largely undocumented filter parameters and no usage context, an agent cannot confidently build a call from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (2 of 7 params documented), so the description must compensate — but it names no filter parameters at all beyond an oblique reference to dialog/counterparty links. Nothing explains what case/mine/search/status/overdue/dialog_id/counterparty_id actually filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (заявки) and enumerates what each request carries (маршрут, задачи, события, revision), but it never states the action — nothing says it lists/returns requests, so the agent must infer 'list' from the tool name. It also does not distinguish itself from the sibling requests_get, which likely returns a single request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus requests_get, requests_tasks_list, or the various filter-oriented siblings. The only conditional guidance is about permission-gated fields in the response, which is not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_saveСоздать или изменить заявкуA

Без request_id создаёт заявку. Для правки обязательна revision из прочитанной карточки; передавайте только изменяемые поля. data дополняет прежние значения. assignee_id=null и due_at=null снимают назначение и срок. Тип и исходные связи задаются только при создании.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dataNo
titleNo
due_atNoISO 8601 с часовым поясом; null снимает срок.
type_idNo
revisionNo
dialog_idNo
request_idNo
assignee_idNo
descriptionNo
counterparty_idNo
source_message_idNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=true. The description adds real value beyond them: the revision/optimistic-locking requirement, that data supplements existing values, that null values clear assignee/due date, and that type and initial links are create-only. It omits what happens on a stale revision conflict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense, information-bearing sentences with the create-vs-edit distinction front-loaded and no filler. Efficient, though a bare enumeration of rules without any structural grouping.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, dual-mode mutation tool with no output schema and sparse schema descriptions, the description covers the trickiest fields but leaves the create-mode field set and several parameters (dialog_id, counterparty_id, source_message_id, description) unexplained, so an agent cannot fully determine valid payloads.

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 coverage is only 17%, so the description must compensate heavily. It usefully explains request_id, revision, data, assignee_id=null, due_at=null, and type_id, but leaves many params undocumented (title, dialog_id, counterparty_id, source_message_id, description) and never states what a minimal create needs given zero required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear dual-purpose verb+resource: it creates a request when request_id is absent and edits it otherwise. This distinguishes the tool from read-oriented siblings like requests_get, but it does not explicitly name an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete when-to-use conditions: omit request_id to create, supply request_id plus revision to edit, and pass only changed fields. It does not name sibling alternatives (e.g., requests_get for reading the card/revision), so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_task_completeВыполнить задачу заявкиA

Завершает задачу по её UUID; outcome выбирают из outcomes карточки, data содержит значения полей. Обязательна revision заявки. Автоматические задачи вручную завершать нельзя.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
dataNo
outcomeNo
task_idYes
revisionYes
request_idYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so safety is covered. The description adds genuine behavioral context beyond that: revision is mandatory (optimistic-concurrency guard) and automatic tasks are rejected, both of which affect whether/how the call succeeds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that is front-loaded with the action and packs three distinct facts (outcome source, mandatory revision, automatic-task restriction) with no filler. Efficient, though the semicolon-chained structure is terse enough to be slightly hard to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world mutation tool with 6 params and no output schema, the description covers the essentials for invocation (identity, outcome, data, revision, key constraint). It omits the case parameter's selection logic and the request_id/task_id relationship, and says nothing about the failure/response surface.

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 only 17%, so the description must carry the load. It usefully explains that outcome comes from the card's outcomes, that data carries field values, and that revision is required — but it leaves case and request_id (and the relationship between task_id and request_id) unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (завершает) and resource (задачу) plus the identifier used (UUID), so an agent immediately knows this completes a request task. It does not explicitly name a sibling alternative (e.g. tasks_cancel vs requests_cancel), but the 'automatic tasks cannot be completed manually' clause helps differentiate the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a when-not rule ('Автоматические задачи вручную завершать нельзя') and a precondition ('Обязательна revision'), which is useful usage context. However it never names an alternative tool for the cases it excludes, so the selection logic is only implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_tasks_listМои задачи по заявкамA
Read-onlyIdempotent

Готовые к выполнению задачи активных заявок, назначенные вам. Для выполнения прочитайте requests_get и передайте актуальную revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and open-world behavior. The description adds useful workflow context: these are tasks ready to execute from active requests, and completion requires reading requests_get and supplying the current revision. Return format and pagination remain unspecified.

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?

Two sentences, front-loaded with the task scope, followed by the immediate completion workflow. No redundant or filler content.

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 read-only list tool with full parameter documentation, read-only/idempotent annotations, and no output schema, the description provides enough context to call it correctly. It could be slightly more complete by clarifying output shape or sibling selection, but no critical gap remains.

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 100% and the single case parameter is fully documented in the schema, including default behavior. The description does not mention case at all, so it does not add meaning beyond the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: tasks ready for completion from active requests assigned to the current user. This distinguishes it from the generic tasks_list sibling, though it does not explicitly name that or any other alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear actionable context by telling the agent to read requests_get and pass the current revision when completing a task. It does not explicitly compare against siblings such as tasks_list or requests_task_complete, so it stops short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_types_deleteУдалить тип заявокA
Destructive

Удаляет тип по UUID, version и дословному названию. Снимки уже созданных заявок сохраняются.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
type_idYes
versionYes
confirm_nameYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true. The description adds value beyond them by disclosing the exact-name confirmation requirement and, importantly, the collateral consequence that snapshots of already created requests are preserved — a material side effect an agent cannot get from the annotations.

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?

Two tight sentences, the destructive action and its required identifiers front-loaded, with the side-effect note immediately after. No 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 destructive three-required-parameter tool with no output schema and sparse schema descriptions, the description covers the safety-relevant facts (exact-name confirmation, retained snapshots). The main remaining gap is that version/case semantics are left entirely to the schema, which is why it falls just short of complete.

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 only 25%: confirm_name and type_id have no schema description at all. The description partially compensates by stating the name must be exact/verbatim (дословному названию), which is the critical semantics of confirm_name, and by tying type_id to UUID. It adds no meaning for version or case, so it fills the gap only partly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (deletes a request type) plus the three identifiers it needs, so it is clearly distinguishable from requests_types_list/requests_types_save by name. It does not explicitly reference those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives no when-to-use or when-not-to-use guidance and never names the sibling tools an agent should compare against. The destructive intent is only inferable from the verb and the annotations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_types_listТипы заявокC
Read-onlyIdempotent

Типы заявок с полями, маршрутами и version для правки или удаления.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds one genuine piece of context beyond the annotations: that returned data includes fields, routes and a version value used for editing or deletion. It does not mention pagination or the default-case fallback behavior, so it is only partially additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, front-loading the resource. It is efficient, though the fragment omits any verb, which slightly weakens clarity rather than length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only, no-output-schema tool this is close to adequate: annotations carry safety, schema carries the parameter, and the description sketches the returned content. Still missing is any explicit statement of what is returned as a collection and how the 'case' default interacts with results.

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 100% — the sole 'case' parameter is fully documented in the schema (name or identifier, with default/last-opened fallback). The description adds nothing about it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name implies a list operation, but the description never states a verb like 'list'/'get' — it only names the resource and its contents ('полями, маршрутами и version'). An agent can infer retrieval from the name and readOnlyHint, but the description itself does not clearly commit to what the tool does or distinguish it from requests_list or requests_types_save/delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus requests_list, requests_types_save, or requests_types_delete. The trailing 'для правки или удаления' hints the returned version is consumed by edit/delete flows, but that is about downstream use, not about when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_types_saveСоздать или изменить тип заявокA

Сохраняет полное определение типа: name, description, fields и workflow. При изменении обязательна version из requests_types_list; пропущенные description и fields станут пустыми. Проверки маршрута и прав на участников выполняет панель.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
nameYes
fieldsNo
type_idNo
versionNo
workflowYesМаршрут целиком: steps и edges; from/to ссылаются на id шагов.
descriptionNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a non-read-only, non-idempotent write with open-world scope, so the bar is lower. The description still adds genuinely useful behavior: omitted description and fields are blanked out (data-loss risk on update), and route/participant-permission validation is delegated to the panel rather than the tool. Both are beyond what annotations or schema convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the core operation front-loaded, the update prerequisite second, and the server-side validation caveat last. No filler, though it stops just short of fully explaining the update path.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with nested workflow/fields objects and no output schema, the description covers the essential upsert semantics and the blanking hazard but omits case/type_id handling and says nothing about the result of a save. Adequate, with visible gaps.

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 low (29%), so the description carries extra weight. It names name, description, fields, workflow and the version-from-requests_types_list rule, but adds no structural meaning for the nested workflow/fields objects, and the case and type_id parameters are left to the schema or the sibling list call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Сохраняет полное определение типа') and enumerates the definition's parts (name, description, fields, workflow), so an agent knows this is a full upsert of a request type. It is clear but does not explicitly separate itself from neighbours like requests_save or requests_types_delete beyond naming requests_types_list as the source of version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states one real usage rule — version from requests_types_list is mandatory when modifying — which implies the create-vs-update split. However it never says when to prefer this tool over siblings or what the preconditions for creation are, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

requests_workflowИзменить маршрут заявкиA

Заменяет workflow заявки целиком с проверкой переданной revision. Нужны права request.manage.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
revisionYes
workflowYesМаршрут целиком: steps и edges; from/to ссылаются на id шагов.
request_idYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true). The description adds real context beyond them: that the entire workflow is replaced, that a revision is checked (optimistic-concurrency guard), and that request.manage permission is required. It stops short of describing the revision-mismatch failure mode.

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?

Two short sentences, front-loaded with the action, no filler. Every clause (full replacement, revision check, permission) carries weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with a nested steps/edges workflow object, no output schema, and partial schema coverage, the description covers the key operational facts (permission, revision guard, full replacement) but omits the conflict behavior on revision mismatch and any return/error semantics.

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 coverage is only 50% (request_id and revision have no schema descriptions), so the description must compensate. It does add meaning for 'revision' by framing it as a checked value, but leaves request_id and the nested workflow structure entirely to the schema. Partial compensation only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Заменяет workflow заявки целиком') and clarifies the operation is a full replacement rather than a patch. It is distinguishable from siblings like requests_save, though it does not explicitly name the alternatives it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite ('Нужны права request.manage') and the full-replacement scope imply when the tool applies, but there is no explicit when-to-use vs when-not guidance or named alternative such as flows_save or requests_save. Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roles_deleteУдалить рольA
Destructive

Удаляет роль дела. Готовые роли удалить нельзя, и роль с участниками — тоже: сначала переведите людей на другую роль.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
roleYesРоль: название, короткое имя или идентификатор.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with destructiveHint=true, the description adds critical behavioral context: pre-made roles cannot be deleted, and roles with participants must be emptied first. This goes beyond the annotation to disclose failure conditions and required preconditions.

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 just two sentences: the first states the action, the second lists restrictions and a prerequisite. Every word earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only two well-documented parameters, no output schema, and existing annotations, this description is complete. It covers purpose, restrictions, and a necessary precondition, giving the agent everything needed to invoke the tool correctly.

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?

The input schema provides 100% coverage with clear descriptions for both parameters (case and role). The tool description does not add any parameter-specific semantics beyond the schema, so the baseline of 3 is appropriate.

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 clearly states the tool's function: 'Удаляет роль дела' (Deletes a case role). It uses a specific verb and resource, and is distinct from sibling tools like roles_save and cases_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit conditions for when the tool cannot be used (pre-made roles and roles with participants) and instructs a prerequisite action ('first move people to another role'). However, it does not explicitly name alternative tools, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roles_saveСоздать или изменить рольA

Заводит в деле свою роль с нужным набором прав или меняет существующую. Готовые роли (владелец, администратор, конструктор, оператор, наблюдатель) правке не поддаются — укажите copy_of, чтобы сделать копию пресета и настроить её.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
nameNoНазвание роли.
roleNoКакую роль менять. Не указывайте, чтобы создать новую.
slugNoКороткое имя новой роли. После создания его сменить нельзя.
accentNoЦвет метки роли.
copy_ofNoСкопировать эту роль (обычно готовый пресет), чтобы править копию.
positionNoПорядок в списке ролей.
descriptionNoОписание роли. null — стереть.
permissionsNoНабор прав. Заменяет прежний целиком, а не дополняет его.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: built-in presets are immutable and copy_of is the required workaround. It does not clarify side effects of changing permissions or idempotency behavior, but the annotations cover part of that burden.

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?

Two tight sentences, front-loaded with the primary action, followed by the critical preset constraint and copy_of remedy. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no output schema and full schema coverage, the description covers the essential context: what it does, the preset immutability constraint, and the required copy_of workaround. Nothing critical is missing for an agent to call it correctly.

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 100%, so all 9 parameters are already documented in the input schema. The description reinforces the permission-set purpose and copy_of for presets, but it adds little parameter detail beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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 states a specific verb and resource: it creates a custom role in a case or modifies an existing one. It also distinguishes the operation from built-in presets, which cannot be edited. An agent can select it confidently against siblings like roles_delete.

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 explicitly says when to use the tool: to create a role with a desired permission set or change an existing role. It also gives an important when-not rule and alternative: built-in roles cannot be edited, so copy_of must be used to clone and customize a preset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sessions_listУстройства с входом в панельA
Read-onlyIdempotent

Браузеры и другие устройства, где выполнен вход в панель под этой учётной записью. Токены доступа сюда не попадают — их видно в панели, в разделе «Интеграции».

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds valuable context by clarifying that access tokens are not listed and where to find them, which goes beyond what annotations provide. No contradictions found.

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 concise and front-loaded, with only two sentences that each add value. The first sentence introduces the purpose, and the second clarifies an exclusion, both essential for correct usage without redundancy.

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?

Given the tool's simplicity (no parameters, no output schema) and the presence of clear annotations (readOnly, idempotent), the description fully covers what an agent needs to understand the tool's functionality and boundaries. It is complete for this simple case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100%, meaning no parameter info is missing. The description adds no parameter meaning because there are none, but the baseline for 0-parameter tools is 4, as there is nothing to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool lists browsers/devices logged into the panel under the account, using a specific verb and resource. It differentiates from siblings by explicitly excluding access tokens, which helps distinguish it from tokens-related tools like bots_reveal_token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to view logged-in devices) but does not explicitly state when not to use it or mention alternatives. It provides context about what is not included (access tokens), but lacks direction on when to use other tools for token management.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sessions_revokeЗавершить вход на устройствеA
Destructive

Завершает сессию по идентификатору из sessions_list — устройство выкинет из панели. На токены доступа не влияет.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNotrue — завершить входы на всех устройствах. Токены интеграций продолжают действовать.
session_idNoИдентификатор сессии из sessions_list.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds meaningful scope detail beyond them: the device is ejected from the panel, and access tokens are explicitly unaffected (with integration tokens likewise continuing per the schema). This clarifies exactly what is and is not destroyed, which is valuable for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the action is front-loaded, followed by the token-impact caveat. No filler or redundancy; every clause carries information.

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 simple two-parameter destructive mutation with no output schema, the description covers purpose, effect, and token scope adequately. The main gap is that neither parameter is required, yet the description never notes that a caller must supply either session_id or all=true, leaving that inference to the schema.

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 100%, and both parameters (all, session_id) are fully documented in the schema, so the baseline is 3. The description repeats that session_id comes from sessions_list but adds no format, constraint, or mutual-exclusivity detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Завершает сессию по идентификатору') and names the sibling sessions_list as the source of the ID, so the agent can tell it apart from the listing tool. It does not, however, contrast with other account/security siblings such as operbots_logout, so differentiation is partial rather than complete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the description tells the agent the ID comes from sessions_list, which signals the intended workflow, but it offers no explicit when-to-use guidance, no exclusions, and does not mention the 'all' variant covered only by the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks_cancelОтменить отложенное действиеB
Destructive

Снимает запланированное действие: бот не отправит то, что собирался.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
task_idYesИдентификатор действия из tasks_list.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds the consequence ('бот не отправит то, что собирался'), which clarifies the effect of the mutation, but says nothing about required task state, permissions, or irreversibility. A 3 is appropriate given annotations carry most of the load.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence, front-loaded with the verb and resource, with zero filler. Slightly terse given it could have added a routing hint without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter destructive tool with full schema coverage and annotations declaring destructiveness, the description is barely adequate. It covers the effect but omits task-state prerequisites, error behavior, and how it relates to the many cancel-flavored siblings, though the annotations and schema absorb much of that burden.

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 100%, so both parameters (case and task_id) are fully documented in the schema, including that task_id comes from tasks_list. The description adds no parameter-level detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Снимает запланированное действие') and even names the effect ('бот не отправит то, что собирался'). An agent can tell this cancels a scheduled bot action, though it does not differentiate itself from similarly-named siblings like dialogs_cancel_scheduled or broadcasts_cancel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use context, no mention of tasks_list as the source of task_id, and no guidance on how it differs from dialogs_cancel_scheduled or broadcasts_cancel. Usage is only loosely implied by the phrase 'запланированное действие'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks_listОтложенные действияA
Read-onlyIdempotent

Что запланировано в деле: «написать через три дня», «напомнить, если не ответил». Показывает и выполненные, и отменённые: выполненные задачи не удаляются, а порядок — по сроку с самых ранних, так что без status ответ занимает давняя история. Что ещё предстоит, спрашивайте с status=pending: отбор делает панель. Больше 300 записей за раз панель не отдаёт, и общего их числа не сообщает.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNoДело: название или идентификатор. Если не указать, берётся дело по умолчанию, иначе последнее открытое в панели.
limitNoСколько записей вернуть, максимум 300. По умолчанию 100.
statusNoОставить только задачи в этом состоянии. Отбирает панель, в самом запросе.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description adds substantial behavior beyond them: completed tasks are retained and shown, ordering is by earliest deadline, no status means the response is dominated by old history, the panel performs filtering rather than the request, outputs cap at 300 records, and the total count is not disclosed. This is exactly the kind of context that prevents mis-calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph where every sentence earns its place: examples, retention behavior, ordering, filter advice, and response cap. It is not bullet-structured and slightly overlaps the schema's limit maximum, but nothing is padded and the most important caveat (no status → old history) is front-loaded.

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 simple optional-parameter list tool with annotations covering the safety profile, the description explains the key call-shaping behaviors: ordering, inclusion of done/cancelled records, the 300-record ceiling, and the lack of total-count reporting. The only gap is that no output schema exists and the description does not sketch the record fields returned per task, so an agent cannot fully predict response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the consequence of omitting status (you get old history) and by tying the 300-record cap to the limit parameter semantics, which helps the agent reason about pagination. It reinforces but does not duplicate the schema.

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 opens with concrete examples of what is listed — «написать через три дня», «напомнить, если не ответил» — and states the resource (scheduled tasks in a case). The verb «Показывает» plus the scope makes it clearly a read-only listing tool, and its domain is distinguishable from the only same-domain sibling, tasks_cancel, by being a list rather than a mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit in-tool guidance: ask for upcoming items with status=pending because the panel filters, and warns that omitting status returns stale history. It does not explicitly name alternative tools or state when-not-to-use conditions, so it falls short of full exclusion-based guidance, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiКто я в панелиA
Read-onlyIdempotent

С какой учётной записью работает сервер, к какой панели подключён и какие дела доступны с перечнем прав в каждом. Полезно вызвать первым: дальше можно обращаться к делам по названию.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds useful context by detailing what information is exposed (account, panel, cases with rights), setting expectations beyond the bare 'whoami' name.

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 just two sentences: the first directly states the tool's output, and the second offers practical advice on ordering. No redundant or irrelevant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, read-only tool, the description fully explains the returned content (account, panel, cases with permissions) and how it fits into an agent's workflow. Without an output schema, this level of detail is both necessary and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty. Per the guidelines, the baseline for zero parameters is 4, and the description appropriately does not attempt to describe nonexistent parameters.

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 clearly states that the tool returns the current account, connected panel, and accessible cases with their permissions. This is a specific and unambiguous statement of purpose. It distinguishes itself from sibling tools by focusing on the current session context rather than listing resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to call this tool first and mentions that afterwards cases can be referenced by name, providing clear when-to-use guidance. It does not explicitly mention alternatives or when not to use it, but the strong recommendation to invoke it first is valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.2.1
    • Changedbots_save1 field changed
      • changedInput schema / properties / bot / description
        Previous value: -"Какого бота менять. Не указывайте, чтобы подключить нового."New value: +"Какого бота менять. Не указывайте при подключении или восстановлении из архива."
  2. 89 tool updatesv0.2.0
    • Addedaccount_appearance
    • Addedaccount_password
    • Addedaccount_security
    • Changedaccount_update17 fields changed
      • addedInput schema / properties / avatar_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Адрес аватара; null — удалить."
        +}
      • changedInput schema / properties / birth_date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedInput schema / properties / first_name / anyOf
        Added value: +[
        +  {
        +    "maxLength": 80,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / first_name / maxLength
        Removed value: -80
      • removedInput schema / properties / first_name / type
        Removed value: -"string"
      • addedInput schema / properties / last_name / anyOf
        Added value: +[
        +  {
        +    "maxLength": 80,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / last_name / maxLength
        Removed value: -80
      • removedInput schema / properties / last_name / type
        Removed value: -"string"
      • addedInput schema / properties / middle_name / anyOf
        Added value: +[
        +  {
        +    "maxLength": 80,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / middle_name / maxLength
        Removed value: -80
      • removedInput schema / properties / middle_name / type
        Removed value: -"string"
      • addedInput schema / properties / phone / anyOf
        Added value: +[
        +  {
        +    "maxLength": 32,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / phone / maxLength
        Removed value: -32
      • removedInput schema / properties / phone / type
        Removed value: -"string"
      • addedInput schema / properties / timezone / anyOf
        Added value: +[
        +  {
        +    "maxLength": 64,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / timezone / maxLength
        Removed value: -64
      • removedInput schema / properties / timezone / type
        Removed value: -"string"
    • Changedai_list1 field changed
      • addedInput schema / properties / provider
        Added value: +{
        +  "description": "Идентификатор подключения для полной карточки.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedai_save4 fields changed
      • addedInput schema / properties / base_url / anyOf
        Added value: +[
        +  {
        +    "maxLength": 400,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / base_url / maxLength
        Removed value: -400
      • removedInput schema / properties / base_url / type
        Removed value: -"string"
      • addedInput schema / properties / options
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Настройки памяти, экономии контекста и сервиса. Заменяет карту: memory, summary_every, cache_context и другие поля API.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Addedai_usage
    • Addedaudit_filters
    • Changedaudit_list3 fields changed
      • addedInput schema / properties / action / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  }
        +]
      • removedInput schema / properties / action / type
        Removed value: -"string"
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Автор из audit_filters.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedbots_commands_apply4 fields changed
      • changedInput schema / properties / commands / items / properties / flow / description
        Previous value: -"Сценарий, который запускает команда."New value: +"Сценарий, который запускает команда. null — отвязать."
      • changedInput schema / properties / commands / items / properties / flow / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedInput schema / properties / commands / items / properties / node_id / description
        Previous value: -"Узел сценария, с которого начать."New value: +"Узел сценария, с которого начать. null — очистить."
      • changedInput schema / properties / commands / items / properties / node_id / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Addedbots_detach
    • Changedbots_save5 fields changed
      • addedInput schema / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / description / description
        Previous value: -"Описание бота."New value: +"Описание бота. null — стереть."
      • removedInput schema / properties / description / maxLength
        Removed value: -2000
      • removedInput schema / properties / description / type
        Removed value: -"string"
      • addedInput schema / properties / settings
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Настройки бота целиком: заменяют прежний объект.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Addedbots_status
    • Changedbots_variables_set6 fields changed
      • addedInput schema / properties / variables / items / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 240,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / variables / items / properties / description / description
        Previous value: -"Для чего она."New value: +"Для чего она. null — стереть описание."
      • removedInput schema / properties / variables / items / properties / description / maxLength
        Removed value: -240
      • removedInput schema / properties / variables / items / properties / description / type
        Removed value: -"string"
      • changedInput schema / properties / variables / items / properties / value / description
        Previous value: -"Значение."New value: +"Значение. Обязательно для новой переменной; без него существующее сохраняется."
      • changedInput schema / properties / variables / items / required
        Previous value: -[
        -  "key",
        -  "value"
        -]New value: +[
        +  "key"
        +]
    • Addedbots_webhook_info
    • Addedbroadcasts_attach
    • Addedbroadcasts_delete
    • Addedbroadcasts_detach
    • Addedbroadcasts_duplicate
    • Addedbroadcasts_get
    • Changedbroadcasts_list3 fields changed
      • addedInput schema / properties / bot
        Added value: +{
        +  "description": "Отобрать рассылки этого бота.",
        +  "type": "string"
        +}
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "Подстрока названия или текста.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "live — scheduled/running; done — done/cancelled; draft и failed отдельно.",
        +  "enum": [
        +    "",
        +    "live",
        +    "draft",
        +    "done",
        +    "failed"
        +  ],
        +  "type": "string"
        +}
    • Changedbroadcasts_preview3 fields changed
      • addedInput schema / properties / audience
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Условия целиком, как в broadcasts_get. audience={} явно снимает все условия; не сочетайте с отдельными mode/tags/assigned_to и другими условиями.",
        +  "properties": {
        +    "assigned_to": {
        +      "anyOf": [
        +        {
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "exclude_tags": {
        +      "items": {
        +        "maxLength": 24,
        +        "type": "string"
        +      },
        +      "maxItems": 10,
        +      "type": "array"
        +    },
        +    "joined_after": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "language": {
        +      "anyOf": [
        +        {
        +          "maxLength": 12,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "mode": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "bot",
        +            "operator"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "quiet_days": {
        +      "anyOf": [
        +        {
        +          "maximum": 365,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "skip_broadcast_id": {
        +      "anyOf": [
        +        {
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "tag": {
        +      "anyOf": [
        +        {
        +          "maxLength": 24,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "tags": {
        +      "items": {
        +        "maxLength": 24,
        +        "type": "string"
        +      },
        +      "maxItems": 10,
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / buttons
        Added value: +{
        +  "description": "Кнопки-ссылки: не больше шести рядов по три кнопки. [] снимает все кнопки.",
        +  "items": {
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "text": {
        +          "maxLength": 64,
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "url": {
        +          "maxLength": 512,
        +          "pattern": "^(https?:\\/\\/|tg:\\/\\/|mailto:)\\S+$",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "text",
        +        "url"
        +      ],
        +      "type": "object"
        +    },
        +    "maxItems": 3,
        +    "type": "array"
        +  },
        +  "maxItems": 6,
        +  "type": "array"
        +}
      • addedInput schema / properties / joined_after
        Added value: +{
        +  "description": "Пришли не раньше этого дня: YYYY-MM-DD.",
        +  "format": "date",
        +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +  "type": "string"
        +}
    • Addedbroadcasts_retry
    • Changedbroadcasts_save10 fields changed
      • addedInput schema / properties / audience
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Условия целиком, как в broadcasts_get. audience={} явно снимает все условия; не сочетайте с отдельными mode/tags/assigned_to и другими условиями.",
        +  "properties": {
        +    "assigned_to": {
        +      "anyOf": [
        +        {
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "exclude_tags": {
        +      "items": {
        +        "maxLength": 24,
        +        "type": "string"
        +      },
        +      "maxItems": 10,
        +      "type": "array"
        +    },
        +    "joined_after": {
        +      "anyOf": [
        +        {
        +          "format": "date",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "language": {
        +      "anyOf": [
        +        {
        +          "maxLength": 12,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "mode": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "bot",
        +            "operator"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "quiet_days": {
        +      "anyOf": [
        +        {
        +          "maximum": 365,
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "skip_broadcast_id": {
        +      "anyOf": [
        +        {
        +          "format": "uuid",
        +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "tag": {
        +      "anyOf": [
        +        {
        +          "maxLength": 24,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "tags": {
        +      "items": {
        +        "maxLength": 24,
        +        "type": "string"
        +      },
        +      "maxItems": 10,
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / bot / description
        Previous value: -"Бот, от имени которого уйдёт сообщение: название, @username или идентификатор. Нужен для новой рассылки; у заведённой бота не меняют."New value: +"Бот, от имени которого уйдёт сообщение: название, @username или идентификатор. Нужен для новой рассылки; у черновика можно сменить, если нет вложения."
      • changedInput schema / properties / buttons / description
        Previous value: -"Кнопки под сообщением: ряды не больше чем по три, рядов не больше шести. Только ссылки — на нажатие в рассылке отвечать некому."New value: +"Кнопки-ссылки: не больше шести рядов по три кнопки. [] снимает все кнопки."
      • addedInput schema / properties / buttons / items / items / additionalProperties
        Added value: +false
      • removedInput schema / properties / buttons / items / items / properties / text / description
        Removed value: -"Надпись на кнопке."
      • removedInput schema / properties / buttons / items / items / properties / url / description
        Removed value: -"Адрес: https://, http://, tg:// или mailto:"
      • addedInput schema / properties / buttons / items / items / properties / url / pattern
        Added value: +"^(https?:\\/\\/|tg:\\/\\/|mailto:)\\S+$"
      • addedInput schema / properties / joined_after
        Added value: +{
        +  "description": "Пришли не раньше этого дня: YYYY-MM-DD.",
        +  "format": "date",
        +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +  "type": "string"
        +}
      • addedInput schema / properties / run_at / anyOf
        Added value: +[
        +  {
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d))|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / run_at / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Addedbroadcasts_targets
    • Addedbroadcasts_test
    • Changedcases_save5 fields changed
      • addedInput schema / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / description / description
        Previous value: -"Описание."New value: +"Описание; null — очистить."
      • removedInput schema / properties / description / maxLength
        Removed value: -2000
      • removedInput schema / properties / description / type
        Removed value: -"string"
      • addedInput schema / properties / settings
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Настройки дела: карта целиком.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Addedcounterparties_delete
    • Addedcounterparties_dialogs
    • Addedcounterparties_get
    • Addedcounterparties_link
    • Addedcounterparties_list
    • Addedcounterparties_reconcile
    • Addedcounterparties_save
    • Addedcounterparties_settings
    • Addedcounterparties_settings_save
    • Addedcounterparties_unlink
    • Addeddialogs_cancel_scheduled
    • Addeddialogs_chat_info
    • Changeddialogs_delete_message2 fields changed
      • addedInput schema / properties / message / format
        Added value: +"uuid"
      • addedInput schema / properties / message / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Addeddialogs_download_attachment
    • Changeddialogs_edit_message3 fields changed
      • addedInput schema / properties / message / format
        Added value: +"uuid"
      • addedInput schema / properties / message / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • addedInput schema / properties / parse_mode
        Added value: +{
        +  "description": "Разметка: HTML или пустая строка для обычного текста.",
        +  "enum": [
        +    "",
        +    "HTML"
        +  ],
        +  "type": "string"
        +}
    • Addeddialogs_forget_memory
    • Changeddialogs_history4 fields changed
      • addedInput schema / properties / before / pattern
        Added value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d))|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$"
      • addedInput schema / properties / before_id
        Added value: +{
        +  "description": "ID самого раннего сообщения вместе с before: порядок при одинаковом времени.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / mark_read / const
        Added value: +false
      • changedInput schema / properties / mark_read / description
        Previous value: -"Пометить входящие прочитанными и обнулить счётчик. По умолчанию нет."New value: +"Только false. Изменяет счётчик отдельный dialogs_mark_read."
    • Changeddialogs_list2 fields changed
      • addedInput schema / properties / assigned_to
        Added value: +{
        +  "description": "Назначены участнику: почта, имя или идентификатор из members_list.",
        +  "type": "string"
        +}
      • addedInput schema / properties / tag
        Added value: +{
        +  "description": "Одна метка для отбора диалогов.",
        +  "maxLength": 24,
        +  "type": "string"
        +}
    • Addeddialogs_mark_read
    • Addeddialogs_release
    • Changeddialogs_reply4 fields changed
      • addedInput schema / properties / buttons
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "items": {
        +          "additionalProperties": {
        +            "type": "string"
        +          },
        +          "propertyNames": {
        +            "type": "string"
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Кнопки сообщения: ряды объектов с text, url или callback_data."
        +}
      • addedInput schema / properties / parse_mode
        Added value: +{
        +  "description": "Разметка: HTML или пустая строка для обычного текста.",
        +  "enum": [
        +    "",
        +    "HTML"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / reply_to / anyOf
        Added value: +[
        +  {
        +    "format": "uuid",
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / reply_to / type
        Removed value: -"string"
    • Addeddialogs_reply_file
    • Changeddialogs_update1 field changed
      • addedInput schema / properties / assigned_operator_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid",
        +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "ID пользователя-оператора из members_list; null снимает назначение."
        +}
    • Addedextensions_delete
    • Addedextensions_get
    • Addedextensions_list
    • Addedextensions_nodes
    • Addedextensions_oauth_begin
    • Addedextensions_save
    • Addedextensions_templates
    • Changedflows_save30 fields changed
      • addedInput schema / properties / comment / anyOf
        Added value: +[
        +  {
        +    "maxLength": 240,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / comment / maxLength
        Removed value: -240
      • removedInput schema / properties / comment / type
        Removed value: -"string"
      • addedInput schema / properties / comments
        Added value: +{
        +  "description": "Комментарии полотна целиком. [] удаляет все; без поля сохраняются.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "color": {
        +        "enum": [
        +          "signal",
        +          "sky",
        +          "violet",
        +          "amber",
        +          "emerald",
        +          "rose",
        +          "slate"
        +        ],
        +        "type": "string"
        +      },
        +      "id": {
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "text": {
        +        "maxLength": 10000,
        +        "type": "string"
        +      },
        +      "x": {
        +        "type": "number"
        +      },
        +      "y": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 500,
        +  "type": "array"
        +}
      • addedInput schema / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / description / maxLength
        Removed value: -2000
      • removedInput schema / properties / description / type
        Removed value: -"string"
      • changedInput schema / properties / edges / description
        Previous value: -"Связи между узлами целиком."New value: +"Заменить список связей целиком."
      • addedInput schema / properties / edges / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / edges / items / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Оформление связи целиком. Без data прежнее оформление сохраняется.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / edges / items / properties / in
        Added value: +{
        +  "description": "Вход приёмника; null — стандартный вход.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedInput schema / properties / edges / items / properties / label / description
        Previous value: -"Подпись на связи."New value: +"Подпись связи; null снимает её."
      • changedInput schema / properties / edges / items / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedInput schema / properties / edges / items / properties / out / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedInput schema / properties / edges / maxItems
        Added value: +4000
      • addedInput schema / properties / knowledge_base_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid",
        +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Устаревшее поле создания: ID базы знаний. Текущая панель не использует его."
        +}
      • changedInput schema / properties / nodes / description
        Previous value: -"Узлы сценария целиком."New value: +"Заменить список узлов целиком."
      • addedInput schema / properties / nodes / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / nodes / items / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Оформление карточки целиком. Без data прежнее оформление сохраняется.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / nodes / items / properties / height
        Added value: +{
        +  "description": "Высота карточки; null снимает размер.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nodes / items / properties / kind / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "trigger.command",
        +      "trigger.text",
        +      "trigger.callback",
        +      "trigger.media",
        +      "trigger.event",
        +      "trigger.fallback",
        +      "action.message",
        +      "action.ai",
        +      "action.condition",
        +      "action.switch",
        +      "action.edit",
        +      "action.delete",
        +      "action.set_variable",
        +      "action.marks",
        +      "action.delay",
        +      "action.request",
        +      "action.request_create",
        +      "action.request_update",
        +      "action.request_task",
        +      "action.handoff",
        +      "action.notify",
        +      "action.jump",
        +      "action.menu",
        +      "action.wait",
        +      "action.validate",
        +      "action.media",
        +      "action.schedule",
        +      "action.subscription",
        +      "action.report",
        +      "action.attempts",
        +      "action.reset",
        +      "action.compute",
        +      "action.keyboard",
        +      "action.form",
        +      "action.contact",
        +      "action.poll",
        +      "action.hours",
        +      "action.parse_date",
        +      "action.format_date",
        +      "action.schedule_at",
        +      "trigger.member",
        +      "trigger.post",
        +      "action.kick",
        +      "action.mute",
        +      "action.pin",
        +      "action.chat_title",
        +      "action.invite_link",
        +      "action.is_admin",
        +      "flow.split",
        +      "flow.merge",
        +      "flow.end"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "extension.unconfigured",
        +      "extension_trigger.unconfigured"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^(extension|extension_trigger)\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / nodes / items / properties / kind / description
        Previous value: -"Что делает узел."New value: +"Вид узла. Операции расширений: extension.UUID или extension_trigger.UUID."
      • removedInput schema / properties / nodes / items / properties / kind / enum
        Removed value: -[
        -  "trigger.command",
        -  "trigger.text",
        -  "trigger.callback",
        -  "trigger.media",
        -  "trigger.event",
        -  "trigger.fallback",
        -  "action.message",
        -  "action.ai",
        -  "action.condition",
        -  "action.switch",
        -  "action.edit",
        -  "action.delete",
        -  "action.set_variable",
        -  "action.marks",
        -  "action.delay",
        -  "action.request",
        -  "action.handoff",
        -  "action.notify",
        -  "action.jump",
        -  "action.menu",
        -  "action.wait",
        -  "action.validate",
        -  "action.media",
        -  "action.schedule",
        -  "action.subscription",
        -  "action.report",
        -  "action.attempts",
        -  "action.reset",
        -  "action.compute",
        -  "action.keyboard",
        -  "action.form",
        -  "action.contact",
        -  "action.poll",
        -  "action.hours",
        -  "action.parse_date",
        -  "action.format_date",
        -  "action.schedule_at",
        -  "trigger.member",
        -  "trigger.post",
        -  "action.kick",
        -  "action.mute",
        -  "action.pin",
        -  "action.chat_title",
        -  "action.invite_link",
        -  "action.is_admin",
        -  "flow.split",
        -  "flow.merge",
        -  "flow.end"
        -]
      • removedInput schema / properties / nodes / items / properties / kind / type
        Removed value: -"string"
      • addedInput schema / properties / nodes / items / properties / type
        Added value: +{
        +  "description": "Тип карточки полотна; по умолчанию operbots.",
        +  "type": "string"
        +}
      • addedInput schema / properties / nodes / items / properties / width
        Added value: +{
        +  "description": "Ширина карточки; null снимает размер.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / nodes / maxItems
        Added value: +2000
      • addedInput schema / properties / provider_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid",
        +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Устаревшее поле создания: ID ИИ-сервиса. Текущая панель не использует его."
        +}
      • addedInput schema / properties / template
        Added value: +{
        +  "description": "Устаревшее поле создания: blank.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / viewport
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Положение полотна. Без поля сохраняется прежнее.",
        +  "properties": {
        +    "x": {
        +      "type": "number"
        +    },
        +    "y": {
        +      "type": "number"
        +    },
        +    "zoom": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "x",
        +    "y",
        +    "zoom"
        +  ],
        +  "type": "object"
        +}
    • Addedinvites_accept
    • Addedinvites_get
    • Changedknowledge_add_document1 field changed
      • addedInput schema / properties / source
        Added value: +{
        +  "description": "Источник материала. Для file передайте извлечённый текст в text; без source вид определяется по url.",
        +  "enum": [
        +    "text",
        +    "url",
        +    "file"
        +  ],
        +  "type": "string"
        +}
    • Changedknowledge_save4 fields changed
      • addedInput schema / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / description / description
        Previous value: -"Для чего она."New value: +"Для чего она. null — стереть."
      • removedInput schema / properties / description / maxLength
        Removed value: -2000
      • removedInput schema / properties / description / type
        Removed value: -"string"
    • Changedmarket_list1 field changed
      • addedInput schema / properties / origin_case_id
        Added value: +{
        +  "description": "Идентификатор дела-источника: только его публичные публикации.",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedmembers_save8 fields changed
      • changedInput schema / properties / extra_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "market.publish",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "request.view",
        +  "request.create",
        +  "request.edit",
        +  "request.manage",
        +  "counterparty.view",
        +  "counterparty.manage",
        +  "ai.view",
        +  "ai.manage",
        +  "extension.view",
        +  "extension.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
      • addedInput schema / properties / note / anyOf
        Added value: +[
        +  {
        +    "maxLength": 240,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / note / description
        Previous value: -"Служебная пометка об участнике."New value: +"Служебная пометка об участнике. null — стереть."
      • removedInput schema / properties / note / maxLength
        Removed value: -240
      • removedInput schema / properties / note / type
        Removed value: -"string"
      • changedInput schema / properties / revoked_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "market.publish",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "request.view",
        +  "request.create",
        +  "request.edit",
        +  "request.manage",
        +  "counterparty.view",
        +  "counterparty.manage",
        +  "ai.view",
        +  "ai.manage",
        +  "extension.view",
        +  "extension.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
      • changedInput schema / properties / role / description
        Previous value: -"Роль: название, короткое имя или идентификатор. Готовые: owner, admin, builder, operator, observer. По умолчанию при добавлении назначается «оператор»."New value: +"Роль: название, короткое имя или идентификатор. Готовые: owner, admin, builder, operator, observer. По умолчанию при добавлении назначается «оператор». null — снять роль."
      • changedInput schema / properties / role / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Addednotifications_filters
    • Addednotifications_list
    • Addednotifications_read
    • Addednotifications_settings
    • Addednotifications_settings_save
    • Addednotifications_summary
    • Changedoperbots_catalog1 field changed
      • addedInput schema / properties / case
        Added value: +{
        +  "description": "Для node_kinds: дело с настроенными расширениями.",
        +  "type": "string"
        +}
    • Changedoperbots_login2 fields changed
      • addedInput schema / properties / token_file
        Added value: +{
        +  "description": "Абсолютный путь к UTF-8 файлу с токеном. Значение читает локальный сервер, в переписку оно не попадает.",
        +  "type": "string"
        +}
      • changedInput schema / properties / url / description
        Previous value: -"Адрес панели, если он известен. Иначе его спросят в окне."New value: +"Адрес панели. По умолчанию сохранённый адрес или http://localhost:8080."
    • Changedreplies_save1 field changed
      • addedInput schema / properties / parse_mode
        Added value: +{
        +  "description": "Разметка: HTML или пустая строка для обычного текста.",
        +  "enum": [
        +    "",
        +    "HTML"
        +  ],
        +  "type": "string"
        +}
    • Addedrequests_cancel
    • Addedrequests_comment
    • Addedrequests_delete
    • Addedrequests_get
    • Addedrequests_list
    • Addedrequests_save
    • Addedrequests_task_complete
    • Addedrequests_tasks_list
    • Addedrequests_types_delete
    • Addedrequests_types_list
    • Addedrequests_types_save
    • Addedrequests_workflow
    • Changedroles_save6 fields changed
      • addedInput schema / properties / description / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / description / description
        Previous value: -"Описание роли."New value: +"Описание роли. null — стереть."
      • removedInput schema / properties / description / maxLength
        Removed value: -1000
      • removedInput schema / properties / description / type
        Removed value: -"string"
      • changedInput schema / properties / permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "market.publish",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "request.view",
        +  "request.create",
        +  "request.edit",
        +  "request.manage",
        +  "counterparty.view",
        +  "counterparty.manage",
        +  "ai.view",
        +  "ai.manage",
        +  "extension.view",
        +  "extension.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
      • addedInput schema / properties / slug
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 64,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Короткое имя новой роли. После создания его сменить нельзя."
        +}
    • Changedsessions_revoke4 fields changed
      • addedInput schema / properties / all
        Added value: +{
        +  "description": "true — завершить входы на всех устройствах. Токены интеграций продолжают действовать.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / session_id / format
        Added value: +"uuid"
      • addedInput schema / properties / session_id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • removedInput schema / required
        Removed value: -[
        -  "session_id"
        -]
    • Changedtasks_cancel2 fields changed
      • addedInput schema / properties / task_id / format
        Added value: +"uuid"
      • addedInput schema / properties / task_id / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • Addedusers_search
  3. 7 tool updatesv0.1.17
    • Changedaccount_update2 fields changed
      • addedInput schema / properties / max_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Номер человека в MAX. null — стереть."
        +}
      • addedInput schema / properties / telegram_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Номер в Telegram (число, не @имя). null — стереть."
        +}
    • Changeddialogs_list1 field changed
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Вид чата: private — личная переписка, community — все сообщества, group — только группы, channel — только каналы. Без него — всё вместе.",
        +  "enum": [
        +    "private",
        +    "community",
        +    "group",
        +    "channel"
        +  ],
        +  "type": "string"
        +}
    • Changeddialogs_update1 field changed
      • addedInput schema / properties / flow
        Added value: +{
        +  "description": "Только для сообществ: свой сценарий этого чата поверх базового у бота — название или идентификатор сценария вида community у того же бота. Пустая строка — вернуть базовый.",
        +  "type": "string"
        +}
    • Changedflows_save2 fields changed
      • changedInput schema / properties / nodes / items / properties / kind / enum
        Previous value: -[
        -  "trigger.command",
        -  "trigger.text",
        -  "trigger.callback",
        -  "trigger.media",
        -  "trigger.event",
        -  "trigger.fallback",
        -  "action.message",
        -  "action.ai",
        -  "action.condition",
        -  "action.switch",
        -  "action.edit",
        -  "action.delete",
        -  "action.set_variable",
        -  "action.marks",
        -  "action.delay",
        -  "action.request",
        -  "action.handoff",
        -  "action.notify",
        -  "action.jump",
        -  "action.menu",
        -  "action.wait",
        -  "action.validate",
        -  "action.media",
        -  "action.schedule",
        -  "action.subscription",
        -  "action.report",
        -  "action.attempts",
        -  "action.reset",
        -  "action.compute",
        -  "action.keyboard",
        -  "action.form",
        -  "action.contact",
        -  "action.poll",
        -  "action.hours",
        -  "action.parse_date",
        -  "action.format_date",
        -  "action.schedule_at",
        -  "flow.split",
        -  "flow.merge",
        -  "flow.end"
        -]New value: +[
        +  "trigger.command",
        +  "trigger.text",
        +  "trigger.callback",
        +  "trigger.media",
        +  "trigger.event",
        +  "trigger.fallback",
        +  "action.message",
        +  "action.ai",
        +  "action.condition",
        +  "action.switch",
        +  "action.edit",
        +  "action.delete",
        +  "action.set_variable",
        +  "action.marks",
        +  "action.delay",
        +  "action.request",
        +  "action.handoff",
        +  "action.notify",
        +  "action.jump",
        +  "action.menu",
        +  "action.wait",
        +  "action.validate",
        +  "action.media",
        +  "action.schedule",
        +  "action.subscription",
        +  "action.report",
        +  "action.attempts",
        +  "action.reset",
        +  "action.compute",
        +  "action.keyboard",
        +  "action.form",
        +  "action.contact",
        +  "action.poll",
        +  "action.hours",
        +  "action.parse_date",
        +  "action.format_date",
        +  "action.schedule_at",
        +  "trigger.member",
        +  "trigger.post",
        +  "action.kick",
        +  "action.mute",
        +  "action.pin",
        +  "action.chat_title",
        +  "action.invite_link",
        +  "action.is_admin",
        +  "flow.split",
        +  "flow.merge",
        +  "flow.end"
        +]
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Для какой переписки: dialog — личная (по умолчанию), community — сообщества: группы и каналы. Узлы сообществ (trigger.member, trigger.post, action.kick и другие) есть только у community, «Анкета» и «Кнопки под полем ввода» — только у dialog; каталог под вид — operbots_catalog what=node_kinds scope=…. Сменить вид можно только у выключенного сценария.",
        +  "enum": [
        +    "dialog",
        +    "community"
        +  ],
        +  "type": "string"
        +}
    • Changedflows_simulate1 field changed
      • addedInput schema / properties / event
        Added value: +{
        +  "description": "Для сценариев сообществ: post — пост в канале (text — его текст), join и leave — участник вошёл или вышел (text — его имя). Без него — обычное сообщение.",
        +  "enum": [
        +    "post",
        +    "join",
        +    "leave"
        +  ],
        +  "type": "string"
        +}
    • Changedmarket_list1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "dialog — сценарии для личной переписки, community — для сообществ.",
        +  "enum": [
        +    "dialog",
        +    "community"
        +  ],
        +  "type": "string"
        +}
    • Changedoperbots_catalog1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Для node_kinds: под какой вид сценария — dialog (личная переписка) или community (группы и каналы). Без него — узлы обоих видов, у каждого поле scopes.",
        +  "enum": [
        +    "dialog",
        +    "community"
        +  ],
        +  "type": "string"
        +}
  4. 20 tool updatesv0.1.16
    • Changedbots_commands_apply2 fields changed
      • changedInput schema / properties / commands / items / properties / description / description
        Previous value: -"Пояснение в меню Telegram."New value: +"Пояснение в меню бота."
      • changedInput schema / properties / sync / description
        Previous value: -"Сразу отправить меню в Telegram. По умолчанию да."New value: +"Сразу отправить меню платформе. По умолчанию да."
    • Changedbots_save3 fields changed
      • changedInput schema / properties / mode / description
        Previous value: -"polling — панель сама забирает обновления; webhook — Telegram шлёт их на панель (нужен публичный адрес по https)."New value: +"polling — панель сама забирает обновления; webhook — платформа шлёт их на панель (нужен публичный адрес по https)."
      • addedInput schema / properties / platform
        Added value: +{
        +  "description": "Куда подключаем нового бота. По умолчанию telegram. У подключённого не меняется.",
        +  "enum": [
        +    "telegram",
        +    "max"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / token / description
        Previous value: -"Токен от @BotFather вида 1234567890:AA… Обязателен при подключении."New value: +"Токен бота. Обязателен при подключении. Вид у каждой платформы свой: у Telegram 1234567890:AA… от @BotFather, у MAX — длинная строка без двоеточия из кабинета разработчика. Точный вид и где его брать — operbots_catalog what=platforms."
    • Changedbroadcasts_preview2 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"Язык собеседника, как его сообщает Telegram: ru, en."New value: +"Язык собеседника, как его сообщает платформа: ru, en. Сообщает не всякая."
      • changedInput schema / properties / parse_mode / description
        Previous value: -"HTML — разметка Telegram. Пусто — обычный текст. По умолчанию пусто."New value: +"HTML — разметка сообщения. Пусто — обычный текст. По умолчанию пусто."
    • Changedbroadcasts_save2 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"Язык собеседника, как его сообщает Telegram: ru, en."New value: +"Язык собеседника, как его сообщает платформа: ru, en. Сообщает не всякая."
      • changedInput schema / properties / parse_mode / description
        Previous value: -"HTML — разметка Telegram. Пусто — обычный текст."New value: +"HTML — разметка сообщения. Пусто — обычный текст."
    • Addeddialogs_delete_message
    • Addeddialogs_edit_message
    • Changeddialogs_reply2 fields changed
      • addedInput schema / properties / reply_to
        Added value: +{
        +  "description": "Ответить цитатой: id сообщения из dialogs_history. Служебные записи и уже удалённые сообщения цитировать нельзя — у собеседника их нет.",
        +  "type": "string"
        +}
      • changedInput schema / properties / text / description
        Previous value: -"Текст сообщения."New value: +"Текст сообщения. 4096 — грубая верхняя граница на хранение, а не предел платформы: у Telegram он 4096, у MAX 3999, и с вложением у обеих свой предел подписи. Точные числа — operbots_catalog what=platforms; сверх своего предела панель откажет с указанием платформы."
    • Changedflows_save5 fields changed
      • changedInput schema / properties / copy_of / description
        Previous value: -"Скопировать существующий сценарий вместо создания пустого."New value: +"Скопировать существующий сценарий вместо создания пустого. Название копии — в name; без него будет «… — копия»."
      • removedInput schema / properties / knowledge_base
        Removed value: -{
        -  "description": "База знаний для узлов «Ответ ИИ» из заготовки: название или идентификатор. Без неё консультант отвечает «из головы». Учитывается только при создании из заготовки.",
        -  "type": "string"
        -}
      • changedInput schema / properties / nodes / items / properties / kind / enum
        Previous value: -[
        -  "trigger.command",
        -  "trigger.text",
        -  "trigger.callback",
        -  "trigger.media",
        -  "trigger.event",
        -  "trigger.fallback",
        -  "action.message",
        -  "action.ai",
        -  "action.condition",
        -  "action.switch",
        -  "action.edit",
        -  "action.delete",
        -  "action.set_variable",
        -  "action.marks",
        -  "action.delay",
        -  "action.request",
        -  "action.handoff",
        -  "action.notify",
        -  "action.jump",
        -  "action.menu",
        -  "action.wait",
        -  "action.validate",
        -  "action.media",
        -  "action.schedule",
        -  "action.subscription",
        -  "action.report",
        -  "action.attempts",
        -  "action.reset",
        -  "action.compute",
        -  "action.hours",
        -  "action.parse_date",
        -  "action.format_date",
        -  "action.schedule_at",
        -  "flow.split",
        -  "flow.merge"
        -]New value: +[
        +  "trigger.command",
        +  "trigger.text",
        +  "trigger.callback",
        +  "trigger.media",
        +  "trigger.event",
        +  "trigger.fallback",
        +  "action.message",
        +  "action.ai",
        +  "action.condition",
        +  "action.switch",
        +  "action.edit",
        +  "action.delete",
        +  "action.set_variable",
        +  "action.marks",
        +  "action.delay",
        +  "action.request",
        +  "action.handoff",
        +  "action.notify",
        +  "action.jump",
        +  "action.menu",
        +  "action.wait",
        +  "action.validate",
        +  "action.media",
        +  "action.schedule",
        +  "action.subscription",
        +  "action.report",
        +  "action.attempts",
        +  "action.reset",
        +  "action.compute",
        +  "action.keyboard",
        +  "action.form",
        +  "action.contact",
        +  "action.poll",
        +  "action.hours",
        +  "action.parse_date",
        +  "action.format_date",
        +  "action.schedule_at",
        +  "flow.split",
        +  "flow.merge",
        +  "flow.end"
        +]
      • removedInput schema / properties / provider
        Removed value: -{
        -  "description": "Подключение к ИИ для узлов «Ответ ИИ» из заготовки: название или идентификатор. Учитывается только при создании из заготовки.",
        -  "type": "string"
        -}
      • removedInput schema / properties / template
        Removed value: -{
        -  "description": "Заготовка стартового графа. Учитывается только при создании и без nodes.",
        -  "enum": [
        -    "blank",
        -    "ai_consultant",
        -    "faq_menu",
        -    "lead_form",
        -    "booking",
        -    "support_desk",
        -    "onboarding"
        -  ],
        -  "type": "string"
        -}
    • Addedmarket_get
    • Addedmarket_install
    • Addedmarket_like
    • Addedmarket_list
    • Addedmarket_publish
    • Addedmarket_release
    • Addedmarket_unpublish
    • Addedmarket_update
    • Changedmembers_save2 fields changed
      • changedInput schema / properties / extra_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
      • changedInput schema / properties / revoked_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
    • Changedoperbots_catalog2 fields changed
      • addedInput schema / properties / platform
        Added value: +{
        +  "description": "Для node_kinds: под какую платформу отобрать варианты настроек. Без него придёт полный набор, и сценарий можно собрать с вариантом, которого у платформы бота нет.",
        +  "enum": [
        +    "telegram",
        +    "max"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / what / enum
        Previous value: -[
        -  "node_kinds",
        -  "flow_templates",
        -  "ai_kinds",
        -  "permissions"
        -]New value: +[
        +  "platforms",
        +  "node_kinds",
        +  "market_categories",
        +  "ai_kinds",
        +  "permissions"
        +]
    • Changedreplies_save1 field changed
      • changedInput schema / properties / text / description
        Previous value: -"Текст ответа."New value: +"Текст ответа. 4096 — грубая верхняя граница, а не предел платформы: свой предел у каждой, см. operbots_catalog what=platforms."
    • Changedroles_save1 field changed
      • changedInput schema / properties / permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.broadcast",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "knowledge.view",
        -  "knowledge.edit",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "market.publish",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
  5. 20 tool updatesv0.1.14
    • Changedaccount_update1 field changed
      • addedInput schema / properties / birth_date
        Added value: +{
        +  "description": "Дата рождения в виде ГГГГ-ММ-ДД. Без неё профиль считается незаполненным.",
        +  "type": "string"
        +}
    • Changedaudit_list1 field changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Сколько записей пропустить.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Addedbots_journal
    • Changedbots_save2 fields changed
      • changedInput schema / properties / ai_provider / description
        Previous value: -"Подключение к ИИ-сервису: название или идентификатор."New value: +"Подключение к ИИ-сервису: название или идентификатор. null — отвязать сервис от бота, ничего взамен не назначая."
      • changedInput schema / properties / ai_provider / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Addedbroadcasts_cancel
    • Addedbroadcasts_list
    • Addedbroadcasts_preview
    • Addedbroadcasts_save
    • Addedbroadcasts_start
    • Addeddialogs_export
    • Changeddialogs_reply2 fields changed
      • addedInput schema / properties / reply
        Added value: +{
        +  "description": "Отправить заготовленный ответ: его название или идентификатор из replies_list. Вместо text, а не вместе с ним.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "dialog",
        -  "text"
        -]New value: +[
        +  "dialog"
        +]
    • Changeddialogs_update1 field changed
      • removedInput schema / properties / blocked
        Removed value: -{
        -  "description": "Заблокировать собеседника.",
        -  "type": "boolean"
        -}
    • Changedflows_save3 fields changed
      • changedInput schema / properties / edges / items / properties / out / description
        Previous value: -"Выход узла-источника, если их несколько: например «да» или «нет»."New value: +"Выход узла-источника, если их несколько. Названия латиницей и зависят от вида узла: у условия true и false, у запроса ok и error, у меню — номера кнопок. Полный перечень — в operbots_catalog what=node_kinds, поле «выходы». По умолчанию out."
      • addedInput schema / properties / knowledge_base
        Added value: +{
        +  "description": "База знаний для узлов «Ответ ИИ» из заготовки: название или идентификатор. Без неё консультант отвечает «из головы». Учитывается только при создании из заготовки.",
        +  "type": "string"
        +}
      • addedInput schema / properties / provider
        Added value: +{
        +  "description": "Подключение к ИИ для узлов «Ответ ИИ» из заготовки: название или идентификатор. Учитывается только при создании из заготовки.",
        +  "type": "string"
        +}
    • Changedknowledge_save2 fields changed
      • changedInput schema / properties / provider / description
        Previous value: -"Подключение к ИИ-сервису для векторов: название или идентификатор."New value: +"Подключение к ИИ-сервису для векторов: название или идентификатор. null — отвязать сервис от базы; после этого поиск не работает, пока не выбран новый."
      • changedInput schema / properties / provider / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedmembers_save2 fields changed
      • changedInput schema / properties / extra_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
      • changedInput schema / properties / revoked_permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
    • Addedreplies_delete
    • Addedreplies_list
    • Addedreplies_save
    • Changedroles_save1 field changed
      • changedInput schema / properties / permissions / items / enum
        Previous value: -[
        -  "case.view",
        -  "case.edit",
        -  "case.delete",
        -  "case.transfer",
        -  "member.view",
        -  "member.invite",
        -  "member.edit",
        -  "member.remove",
        -  "role.view",
        -  "role.manage",
        -  "bot.view",
        -  "bot.create",
        -  "bot.edit",
        -  "bot.delete",
        -  "bot.control",
        -  "bot.token_reveal",
        -  "flow.view",
        -  "flow.edit",
        -  "flow.publish",
        -  "flow.delete",
        -  "chat.view",
        -  "chat.reply",
        -  "chat.takeover",
        -  "chat.delete",
        -  "ai.view",
        -  "ai.manage",
        -  "audit.view"
        -]New value: +[
        +  "case.view",
        +  "case.edit",
        +  "case.delete",
        +  "case.transfer",
        +  "member.view",
        +  "member.invite",
        +  "member.edit",
        +  "member.remove",
        +  "role.view",
        +  "role.manage",
        +  "bot.view",
        +  "bot.create",
        +  "bot.edit",
        +  "bot.delete",
        +  "bot.control",
        +  "bot.token_reveal",
        +  "flow.view",
        +  "flow.edit",
        +  "flow.publish",
        +  "flow.delete",
        +  "chat.view",
        +  "chat.reply",
        +  "chat.takeover",
        +  "chat.broadcast",
        +  "chat.delete",
        +  "ai.view",
        +  "ai.manage",
        +  "knowledge.view",
        +  "knowledge.edit",
        +  "audit.view"
        +]
    • Changedtasks_list1 field changed
      • changedInput schema / properties / status / description
        Previous value: -"Оставить только задачи в этом состоянии."New value: +"Оставить только задачи в этом состоянии. Отбирает панель, в самом запросе."
  6. 14 tool updatesv0.1.13
    • Addedaudit_list
    • Addedbots_webhook_check
    • Changedcases_get1 field changed
      • addedInput schema / properties / days
        Added value: +{
        +  "anyOf": [
        +    {
        +      "const": 7,
        +      "type": "number"
        +    },
        +    {
        +      "const": 14,
        +      "type": "number"
        +    },
        +    {
        +      "const": 30,
        +      "type": "number"
        +    }
        +  ],
        +  "description": "За сколько дней считать переписку: 7, 14 или 30. По умолчанию 7."
        +}
    • Addeddialogs_reset_stage
    • Addedflows_export
    • Addedflows_import
    • Changedflows_list2 fields changed
      • changedInput schema / properties / bot / description
        Previous value: -"Бот: название, @username или идентификатор."New value: +"Бот: название, @username или идентификатор. Без него — все боты дела."
      • removedInput schema / required
        Removed value: -[
        -  "bot"
        -]
    • Changedflows_save2 fields changed
      • changedInput schema / properties / nodes / items / properties / kind / enum
        Previous value: -[
        -  "trigger.command",
        -  "trigger.text",
        -  "trigger.callback",
        -  "trigger.event",
        -  "trigger.fallback",
        -  "action.message",
        -  "action.ai",
        -  "action.condition",
        -  "action.set_variable",
        -  "action.delay",
        -  "action.request",
        -  "action.handoff",
        -  "action.notify",
        -  "action.jump",
        -  "action.menu",
        -  "action.wait",
        -  "action.validate",
        -  "action.media",
        -  "action.schedule",
        -  "flow.split",
        -  "flow.merge"
        -]New value: +[
        +  "trigger.command",
        +  "trigger.text",
        +  "trigger.callback",
        +  "trigger.media",
        +  "trigger.event",
        +  "trigger.fallback",
        +  "action.message",
        +  "action.ai",
        +  "action.condition",
        +  "action.switch",
        +  "action.edit",
        +  "action.delete",
        +  "action.set_variable",
        +  "action.marks",
        +  "action.delay",
        +  "action.request",
        +  "action.handoff",
        +  "action.notify",
        +  "action.jump",
        +  "action.menu",
        +  "action.wait",
        +  "action.validate",
        +  "action.media",
        +  "action.schedule",
        +  "action.subscription",
        +  "action.report",
        +  "action.attempts",
        +  "action.reset",
        +  "action.compute",
        +  "action.hours",
        +  "action.parse_date",
        +  "action.format_date",
        +  "action.schedule_at",
        +  "flow.split",
        +  "flow.merge"
        +]
      • changedInput schema / properties / template / enum
        Previous value: -[
        -  "blank",
        -  "ai_consultant",
        -  "faq_menu",
        -  "lead_form",
        -  "support_desk",
        -  "onboarding"
        -]New value: +[
        +  "blank",
        +  "ai_consultant",
        +  "faq_menu",
        +  "lead_form",
        +  "booking",
        +  "support_desk",
        +  "onboarding"
        +]
    • Changedflows_simulate1 field changed
      • addedInput schema / properties / variables
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Переменные разговора на момент прогона: {\"город\": \"Москва\"}.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
    • Changedknowledge_delete1 field changed
      • changedInput schema / properties / document / description
        Previous value: -"Идентификатор материала. Без него удалится вся база."New value: +"Материал: название или идентификатор. Без него удалится вся база."
    • Addedknowledge_document
    • Addedknowledge_document_update
    • Changedknowledge_reindex1 field changed
      • changedInput schema / properties / document / description
        Previous value: -"Идентификатор одного материала."New value: +"Один материал: название или идентификатор."
    • Changedoperbots_login2 fields changed
      • changedInput schema / properties / switch_account / description
        Previous value: -"Войти под другой учётной записью, даже если вход уже выполнен."New value: +"Подключиться заново, даже если доступ уже настроен."
      • changedInput schema / properties / url / description
        Previous value: -"Адрес панели, если он известен. Иначе его спросят в окне входа."New value: +"Адрес панели, если он известен. Иначе его спросят в окне."
  7. 55 tool updatesv0.1.1
    • First observedaccount_update
    • First observedai_delete
    • First observedai_list
    • First observedai_save
    • First observedai_test
    • First observedbots_commands_apply
    • First observedbots_control
    • First observedbots_delete
    • First observedbots_get
    • First observedbots_list
    • First observedbots_reveal_token
    • First observedbots_save
    • First observedbots_variables_set
    • First observedbots_webhook_rotate
    • First observedcase_transfer
    • First observedcases_delete
    • First observedcases_get
    • First observedcases_leave
    • First observedcases_list
    • First observedcases_save
    • First observeddialogs_delete
    • First observeddialogs_get
    • First observeddialogs_history
    • First observeddialogs_list
    • First observeddialogs_reply
    • First observeddialogs_update
    • First observedflows_delete
    • First observedflows_get
    • First observedflows_list
    • First observedflows_publish
    • First observedflows_restore
    • First observedflows_save
    • First observedflows_simulate
    • First observedflows_versions
    • First observedinvites_create
    • First observedinvites_revoke
    • First observedknowledge_add_document
    • First observedknowledge_delete
    • First observedknowledge_list
    • First observedknowledge_reindex
    • First observedknowledge_save
    • First observedknowledge_search
    • First observedmembers_list
    • First observedmembers_remove
    • First observedmembers_save
    • First observedoperbots_catalog
    • First observedoperbots_login
    • First observedoperbots_logout
    • First observedroles_delete
    • First observedroles_save
    • First observedsessions_list
    • First observedsessions_revoke
    • First observedtasks_cancel
    • First observedtasks_list
    • First observedwhoami

TDQS

B3.4/5.0

Scored across 143 tools

Disambiguation3/5

With 143 tools there are several overlapping pairs (e.g., bots_delete vs bots_detach, bots_save vs bots_control, dialogs_release vs dialogs_update mode=bot, cases_delete vs cases_save archived=true). Descriptions are detailed enough to resolve most overlaps, but the sheer breadth imposes high selection cost on an agent.

Naming Consistency4/5

Most tools follow a predictable resource_action pattern (cases_list, bots_get, flows_save), which is readable and largely consistent. Deviations include singular prefixes (case_transfer), noun_noun names (account_security), bare names (whoami), and mixed plural/singular sub-resource forms (requests_tasks_list vs requests_task_complete).

Tool Count1/5

143 tools is an extreme count for any MCP server, far beyond the 3-15 range that supports efficient tool selection. Even for a broad platform, this volume creates an unwieldy surface that likely burdens context and routing.

Completeness5/5

The toolset comprehensively covers the platform's domains: cases, bots, flows, dialogs, requests, counterparties, knowledge bases, broadcasts, market, extensions, AI providers, notifications, account/session management, and audit. CRUD and lifecycle operations are present across nearly all resources, with few obvious dead ends.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers