наблюдаемость: измерять бюджет каталога MCP
CI / Rust Checks (push) Successful in 12m5s
CI / UI Checks (push) Successful in 9s
CI / Deployment Manifests (push) Successful in 6s
CI / Frontend E2E (push) Failing after 30s
CI / Deploy (push) Has been skipped

This commit is contained in:
2026-07-21 01:59:09 +03:00
parent 0241d186ea
commit 63f8ee333f
10 changed files with 284 additions and 4 deletions
+11
View File
@@ -228,6 +228,17 @@ MCP-клиент видит только опубликованные опера
Черновики операций не попадают в MCP-каталог. Если два пользователя работают в одном workspace, один может редактировать черновик, а второй публиковать агента. В опубликованный каталог попадут только опубликованные версии операций.
При каждом обновлении каталога Crank анализирует фактические определения `tools/list` и записывает в структурированный журнал:
- число инструментов;
- размер компактного JSON в байтах;
- оценочный объём контекста в токенах;
- размер крупнейшего инструмента;
- рекомендуемый предел и признак его превышения;
- число предупреждений качества каталога.
Оценка токенов равна округлённому вверх отношению размера UTF-8 к трём. Она нужна для стабильного сравнения ревизий каталога и не заменяет точный токенизатор конкретной модели.
## Обновление каталога
`mcp-server` периодически обновляет опубликованный каталог. Интервал задается:
+2 -1
View File
@@ -15,6 +15,8 @@ Crank сохраняет данные о тестовых запусках и в
- краткий preview запроса и ответа;
- категория ошибки, если вызов завершился ошибкой.
При обновлении опубликованного MCP-каталога отдельное событие `published agent catalog analyzed` содержит `tool_count`, `serialized_bytes`, `estimated_context_tokens`, `largest_tool_estimated_context_tokens`, `recommended_context_tokens`, `exceeds_recommended_budget` и число предупреждений качества. По этим полям можно заметить рост цены `tools/list` до того, как он ухудшит выбор инструментов моделью.
## Использование
Раздел использования агрегирует:
@@ -31,4 +33,3 @@ Crank сохраняет данные о тестовых запусках и в
- увидеть ошибки маппинга или внешнего API;
- найти медленные endpoint-ы;
- понять, какие инструменты реально используются.
+5
View File
@@ -154,6 +154,10 @@ Crank возвращает структурированные ошибки. MCP-
Если у агента слишком много похожих инструментов, модель чаще ошибается при выборе.
Crank измеряет опубликованный каталог по тому же компактному JSON, который возвращается в `tools/list`. В расчёт входят имя, заголовок, описание, входная JSON-схема и добавляемое Crank описание подтверждения опасной операции. Для сравнения используется независимая от конкретной модели консервативная оценка: один токен на три байта UTF-8. Это не счётчик токенов конкретного поставщика, а стабильная инженерная метрика для поиска регрессий.
Рекомендуемый бюджет одного агентского каталога — не более 4096 оценочных токенов. Превышение не блокирует публикацию, потому что допустимый объём зависит от модели, но создаёт предупреждение. Сначала сокращайте лишние описания и схемы. Если инструменты решают разные задачи, разделяйте их между специализированными агентами. Выбор нужного агента и постепенное раскрытие каталогов выполняет оркестратор Drivetrain, а не Crank.
## Проверочный список
- Имя инструмента конкретное и не похоже на `call_api`.
@@ -164,3 +168,4 @@ Crank возвращает структурированные ошибки. MCP-
- Для POST/PATCH задан idempotency key, если повторный вызов может создать дубль.
- Для DELETE пользователь видит двухшаговое подтверждение.
- Агенту привязаны только инструменты, нужные для его задачи.
- Опубликованный каталог укладывается в выбранный бюджет контекста модели.