Динамическое обнаружение инструментов для подключаемых модулей MCP в Microsoft 365 Copilot

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

Примечание.

Динамическое обнаружение средств включает инструменты, которые возвращают интерактивные мини-приложения пользовательского интерфейса (приложения MCP). Агент отображает эти мини-приложения без дополнительной настройки.

Примечание.

В этой статье рассматривается динамическое обнаружение инструментов для плагинов, где сервер MCP регистрируется через манифест плагина для декларативного агента. При регистрации сервера MCP в качестве соединителя агента используется другой манифест — agentConnectors узел в манифесте приложения Microsoft 365. Для соединителей агентов для динамического обнаружения средств требуется манифест приложения версии 1.29 или более поздней и узел, который это разрешает. Дополнительные сведения см. в статье Регистрация серверов MCP в качестве соединителей агентов.

Чем динамическое обнаружение средств отличается от закрепленных средств

С помощью закрепленных инструментов разработчик агента выбирает инструменты, предоставляемые сервером MCP, объявляет их в манифесте подключаемого модуля и отправляет как часть пакета агента. Любое изменение поверхности инструмента, такое как добавление нового инструмента, удаление устаревшего, переименование параметра или уточнение описания, требует от разработчика агента обновления манифеста, повторной отправки агента, его повторной проверки и повторной публикации, прежде чем пользователи увидят изменение.

При динамическом обнаружении средств агент больше не содержит фиксированного списка инструментов. Платформа получает текущие определения инструментов с сервера MCP во время выполнения, сравнивает их с последним известным набором, проверяет изменения и применяет их, чтобы агент работал с актуальным представлением возможностей сервера.

В следующей таблице перечислены различия.

Аспект Закрепленные инструменты Динамическое обнаружение инструментов
Источник определений инструментов Манифест подключаемого модуля, упакованный с агентом MCP-сервер, полученный во время выполнения
Когда разрешения определений инструментов Во время публикации агента Во время выполнения, за сеанс
Добавление и удаление инструмента Требуется обновить манифест, повторно отправить агент и повторно опубликовать результат Отражается автоматически после предоставления сервером MCP изменений и прохождения проверок среды выполнения
Обновление схемы или описания инструмента Требуется повторная публикация агента Получено во время выполнения
Пользовательские поверхности инструментов (например, по SKU, роли или правому) Не поддерживается. Каждый пользователь видит один и тот же список инструментов, определенный манифестом. Поддерживается. Сервер MCP может возвращать список инструментов, адаптированный для вошедшего пользователя.
Время развертывать новые возможности средства От нескольких дней до недель, ограничено циклом повторной публикации агента Почти реальное время, ограниченный доступ только при развертывании сервера MCP и проверке среды выполнения
Пора прекратить поддержку устаревшего средства От дней до недель Почти реальное время
Проверки доверия и безопасности определений инструментов Выполняется во время публикации во время проверки хранилища Проверка на уровне агента во время публикации, а также проверка ответственного искусственного интеллекта (RAI) и XPIA во время выполнения каждого вновь обнаруженного или измененного средства до его активации

Различия манифеста подключаемого модуля

Манифест подключаемого модуля выражает режим обнаружения через конфигурацию RemoteMCPServer среды выполнения.

Если инструменты закреплены, перечислите инструменты в массиве functions и свойство run_for_functions среды выполнения. Храните mcp_tool_description их определения в свойстве среды выполнения:

{
  "functions": [
    { "name": "search_repositories" },
    { "name": "search_users" }
  ],
  "runtimes": [
    {
      "type": "RemoteMCPServer",
      "spec": {
        "url": "https://api.contoso.com/mcp",
        "mcp_tool_description": {
          "file": "mcp-tools.json"
        }
      },
      "run_for_functions": [
        "search_repositories",
        "search_users"
      ]
    }
  ]
}

При динамическом обнаруженииfunctions инструментов массив пуст, а свойство run_for_functions среды выполнения имеет значение ["*"], поэтому агент разрешает все инструменты сервера во время выполнения:

{
  "functions": [],
  "runtimes": [
    {
      "type": "RemoteMCPServer",
      "spec": {
        "url": "https://api.contoso.com/mcp"
      },
      "run_for_functions": [
        "*"
      ]
    }
  ]
}

Дополнительные сведения см. в статье объект спецификации сервера MCP.

Настройка закрепленных средств с помощью набора средств Agents Toolkit

По умолчанию набор средств агентов Microsoft 365 настраивает новый подключаемый модуль MCP для динамического обнаружения инструментов. Чтобы закрепить фиксированный, тщательно подобранный набор инструментов (например, чтобы предоставить доступ только к подмножеству инструментов сервера или сохранить постоянную поверхность средства между выпусками), выберите инструменты в наборе средств Agents Toolkit. В этом случае поверхность инструмента не изменится, пока вы не обновите манифест и не опубликуете агент повторно.

Чтобы закрепить определенный набор инструментов:

  1. Откройте файл .vscode/mcp.json . Нажмите кнопку "Пуск " в файловом редакторе.

  2. Если будет предложено пройти проверку подлинности, выберите "Разрешить проверку подлинности".

  3. Нажмите кнопку ATK: Fetch action from MCP в редакторе файлов, а затем выберите ai-plugin.json.

    Снимок экрана кнопок

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

    Снимок экрана: интерфейс выбора инструмента в VS Code

После выбора средств набор средств Agents Toolkit обновляет ai-plugin.json с использованием закрепленных инструментов, как показано в разделе "Различия манифеста подключаемого модуля". Agents Toolkit хранит определения инструментов в свойстве среды mcp_tool_description выполнения либо в виде встроенного tools массива, либо в виде ссылки на file содержащее их. Определения соответствуют формату, возвращаемому методом сервера MCP tools/list .

Прозрачность, управление и аудит для администраторов

Динамическое обнаружение средств смещается при их обнаружении со времени публикации на время выполнения. Разработчик сервера MCP по-прежнему является автором и владельцем определений инструментов. Чтобы обеспечить прозрачность, управление и соответствие требованиям, на которые полагаются администраторы, платформа предоставляет средства управления и сигналы аудита через Центр администрирования Microsoft 365 (MAC) и Microsoft Purview.

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

Администраторы могут определить, какие агенты в их клиенте используют динамическое обнаружение средств, из представления сведений об агенте в Центре администрирования Microsoft 365. На вкладке "Инструменты & данных " представления сведений об агенте информационный баннер в разделе "Инструменты " указывает, что агент использует сервер MCP, инструменты которого могут меняться во время выполнения.

Снимок экрана с изображением вкладки

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

Отключение агентов, использующих динамическое обнаружение инструментов

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

  • Если администратор не хочет, чтобы определенный агент, использующий динамическое обнаружение инструментов, был доступен в его клиенте, он может отключить или заблокировать этот агент с помощью тех же элементов управления агентами, которые они используют сегодня для любого декларативного агента.
  • Используйте те же элементы управления, включая назначение агента определенным пользователям или группам, чтобы повысить доступность агента, использующего динамическое обнаружение средств, до более широкого развертывания.

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

Журналы аудита в Microsoft Purview

Взаимодействия с агентами, использующими динамическое обнаружение инструментов, записываются в журнал аудита Microsoft Purview под Copilot рабочей нагрузкой вместе с любыми другими декларативными агентами. Администраторы могут найти такие записи путем Workload = Copilot фильтрации в поиске аудита Purview и определить конкретного агента TargetAgentName с помощью поля в CopilotEventData.

Как сохраняются существующие гарантии доверия и безопасности

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

  • Приложения независимых поставщиков ПО (3P) по-прежнему используют существующий стек управления расширяемостью: аттестацию издателя и сертификацию M365, контракт и условия использования службы клиента и независимого поставщика программного обеспечения, а также проверку хранилища, выполняемую во время публикации.
  • Бизнес-приложения по-прежнему зависят от существующих внутренних процедур подключения клиента и обеспечения соответствия требованиям для собственных и внутренних приложений.
  • Проверка во время выполнения: каждый вновь обнаруженный или модифицированный инструмент проверяется классификаторами RAI и XPIA перед активацией инструмента для конечных пользователей. Процесс блокирует изменения инструмента, которые не проходят проверку.

Вместе эти процессы гарантируют, что гарантии, на которые клиенты полагаются во время публикации, сохраняются по мере развития инструментов во время выполнения.