Создание многоагентного сервера MCP для cc-switch: фильтрация ресурсов в рамках контекстного бюджета При интеграции Farion1231/cc-switch в централизованный уровень оркестровки агентов во время многоагентного обмена возникла первая операционная точка трения...
Создание многоагентного сервера MCP для cc-switch: фильтрация ресурсов в рамках контекстного бюджета
При интеграции Farion1231/cc-switch в централизованный уровень оркестрации агентов во время многоагентной маршрутизации обнаружилась первая операционная проблема: агенты Claude Code, Codex, OpenCode и Grok Build используют разные контекстные окна, а наивное предоставление каждого инструмента MCP каждому агенту приводит к скрытым сбоям, когда бюджеты токенов исчерпываются в середине выполнения.
Ошибка каскада контекстных окон
Запустив cc-switch с общим сервером MCP, мы заметили:
Код Клода (контекст 200 КБ): успешно обработаны большие деревья каталогов файловой системы через ресурсы/список MCP.
OpenCode (контекст 128 КБ): произошел сбой, когда полезная нагрузка JSON того же дерева каталогов превысила 140 000 токенов — клиент не получал никакой ошибки JSON-RPC, только сломанный канал stdio.
Grok Build (контекст 64 КБ): обязательные предварительно отфильтрованные поднаборы инструментов, чтобы избежать тайм-аута выборки.
Основная причина: серверы MCP передают ответы через stdio без сигнализации обратного давления. Когда окно контекста агента заполняется в середине потока, программа чтения stdio блокируется на неопределенный срок, и серверный процесс становится зомби.
Архитектура закрытого сервера MCP
Мы пересобрали сервер MCP с помощью