Как создавать долгоживущие инс... Заметка

Как создавать долгоживущие инструменты MCP на Azure Functions

Клиенты, создающие серверы с помощью Azure Functions и расширения MCP, сталкиваются с проблемами при использовании инструментов, которые превышают установленные клиентом временные ограничения. Текущие инструменты MCP работают по модели "запрос/ответ", которая не подходит для многоэтапных или длительных операций. Когда вызовы инструментов занимают слишком много времени, клиенты достигают временного лимита, что приводит к тому, что агент воспринимает сбой, хотя основная задача может продолжаться. Новое расширение MCP Tasks призвано стандартизировать асинхронную обработку длительных задач. Это расширение позволяет серверам отвечать идентификатором задачи, давая клиентам возможность опрашивать статус и управлять жизненным циклом задачи. Однако расширение Tasks требует широкой поддержки экосистемы как со стороны клиентов, так и со стороны SDK. Пока это не станет широко доступным, для длительных задач можно реализовать шаблон с использованием Durable Functions. Этот шаблон включает два доступных инструмента: один для запуска задачи и другой для получения ее статуса. Инструмент запуска возвращает результат встраиваемо, если он был завершен в рамках бюджета, или идентификатор рабочего процесса, если он все еще выполняется. Инструмент получения статуса принимает идентификатор рабочего процесса и сообщает текущее состояние задачи, включая рекомендуемый интервал опроса. С расширением Tasks модель упростится, поскольку клиенты будут напрямую управлять жизненным циклом задач, устраняя необходимость для агента управлять идентификаторами, такими как идентификаторы рабочих процессов. Разработчикам рекомендуется попробовать предоставленный пример Durable Functions.