Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве содержатся рекомендации по устранению распространенных проблем, которые могут возникнуть при разработке приложения протокола контекста модели (MCP) для интеграции с декларативным агентом в Microsoft 365 Copilot.
Включение режима разработчика
Включение режима разработчика отображает журналы и ошибки в ответах агента. Эти сведения необходимы для отладки. Чтобы включить режим разработчика, введите следующую команду в Microsoft Copilot.
-developer on
Средства MCP, доступные агенту, отображаются в разделе Действия карта сведений об отладке. Дополнительные сведения об карта сведений об отладке см. в статье Использование режима разработчика в Microsoft 365 Copilot для тестирования и отладки агентов.
Проблемы обнаружения и входа
Нет средств в списке
Если в разделе Действия карта сведений об отладке нет списка средств MCP, проверка следующие элементы.
- Убедитесь, что сервер MCP работает и вы подключаетесь к правильной конечной точке MCP в манифесте подключаемого модуля.
- Убедитесь, что манифест подключаемого модуля содержит ожидаемые средства в свойстве
functions. - Убедитесь, что среда выполнения сервера MCP, указанная в свойстве
runtimesманифеста подключаемого модуля:- Ссылается на средства в свойстве
mcp_tool_description, используя один из следующих источников:- Ссылка на JSON-файл, содержащий описания инструментов в свойстве
fileИЛИ - Перечисление встроенных описаний инструментов в свойстве
tools
- Ссылка на JSON-файл, содержащий описания инструментов в свойстве
- Включает имена инструментов в
run_for_functionsсвойство .
- Ссылается на средства в свойстве
"runtimes": [
{
"type": "RemoteMCPServer",
"spec": {
"url": "https://api.contoso.com/mcp",
"mcp_tool_description": "mcp-tools.json"
},
"run_for_functions": [
"get_widget",
"create_widget"
]
}
]
Средства, не запускающиеся из чата Copilot
- Вернитесь к описанию средства и параметров, чтобы убедиться, что они обеспечивают достаточный контекст. Рассмотрите возможность их перезаписи с помощью команды "Использовать эту функцию или параметр, если..." Формулировка.
- Оставьте описания не более 1024 символов. Текст, превышающий 1024 символа, игнорируется.
- Убедитесь, что видимость средства настроена правильно.
- Для приложений
_meta.ui.visibilityMCP включает .model - Для приложений
meta["openai/visibility"]пакета SDK OpenAI имеет значениеpublic.
- Для приложений
Выбран неправильный инструмент
- Избегайте инструментов со схожими именами или перекрывающимися описаниями.
- Добавьте четкие отличия в описания, объясняющие, когда следует использовать каждое средство.
Проблемы с мини-приложением
Мини-приложение не отображается
Если вызывается правильное средство MCP, но мини-приложение пользовательского интерфейса не отображается в ответе, сервер MCP, скорее всего, возвращает только структурированное содержимое без компонента пользовательского интерфейса. Убедитесь, что привязка пользовательского интерфейса настроена правильно.
- Для приложений MCP определение средства включает в себя
_meta.ui.resourceUriзарегистрированный ресурс HTML с типомtext/html;profile=mcp-appMIME . - Для приложений пакета SDK OpenAI определение средства включает в себя
_meta["openai/outputTemplate"]зарегистрированный ресурс HTML с типомtext/html+skybridgeMIME .
Не удается загрузить мини-приложение
- Откройте средства разработчика браузера и проверка для нарушений политики безопасности содержимого (CSP) в консоли. Убедитесь, что запросы из URL-адреса узла мини-приложения указаны в списке разрешенных. Дополнительные сведения см. в разделе Требования к серверу MCP для приложений MCP.
- Убедитесь, что мини-приложение компилирует все зависимости HTML и JavaScript в один файл без внешних неразрешенных ресурсов.
Мини-приложение загружается без данных
- Проверьте структуру отклика средства.
-
contentдолжен содержать только данные (модель). -
structuredContentдолжен содержать данные и мини-приложение. -
_metaдолжен содержать только мини-приложение.
-
- Убедитесь
structuredContentили_metaвключите необходимые данные.
Мини-приложение имеет двойную полосу прокрутки
Контейнер узла Copilot уже имеет прокрутку с максимальной высотой. Отключите внутреннюю прокрутку в мини-приложении, задав overflow: hidden стили контейнера.
Гиперссылки в мини-приложении не открываются
Теги привязки <a> не работают для внешних ссылок в Copilot. Вместо этого используйте соответствующие API-интерфейсы платформы.
- Для приложений MCP используйте
app.openLink. - Для приложений пакета SDK OpenAI используйте
window.openai.openExternal.
Полноэкранный режим не работает на некоторых узлах Copilot
Полноэкранное представление поддерживается не на всех узлах Copilot. Рекомендуется всегда проверка для возможностей узла и условно отображать элементы пользовательского интерфейса (например, полноэкранную кнопку). Дополнительные сведения см. в разделе Проверка доступности API.
Проблемы с реагированием
Проблемы с истечением срока действия результата средства
Убедитесь, что ответы, отправленные через content или structuredContent не слишком большие. Если для мини-приложения требуются расширенные метаданные, которые не являются полезными для модели, например URL-адреса аватаров или сведения о пользовательском интерфейсе, включите полные данные в _meta и предоставьте краткую сводку в content. Такой подход гарантирует, что модель сохраняет ключевую информацию при поддержке эффективного многоэтапного взаимодействия.
Дублирование данных в мини-приложении и текстовой сводке
Устраните эту проблему, используя один из следующих вариантов:
-
Оптимизация разделения данных: используйте
_metaдля данных, относящихся к мини-приложениям, иcontentдля сводные данные, видимые моделью. - Настройка форматирования: используйте инструкции в манифесте декларативного агента, чтобы определить структуру и представление ответов.
Проблемы с проверкой подлинности
Несоответствие идентификатора приложения между конфигурацией проверки подлинности и подключаемым модулем
Если в сведениях об отладке отображаются ошибки, карта примерно так:
OAuth authentication failed: The App ID used in the request does not match the App ID in the authentication configuration. (HTTP 404)
Перейдите на портал разработчика Teams. Найдите регистрацию клиента OAuth или клиента единого входа и убедитесь, что идентификатор приложения в подключаемом модуле соответствует зарегистрированным идентификаторам приложения.
Базовый URL-адрес в конфигурации проверки подлинности не соответствует подключаемого модуля
Если в сведениях об отладке отображаются ошибки, карта примерно так:
OAuth authentication failed: The base URL in your authentication configuration does not match the server URL. (HTTP 401)
Перейдите на портал разработчика Teams. Найдите клиент OAuth или клиент единого входа и убедитесь, что URL-адрес сервера MCP в подключаемом модуле соответствует зарегистрированным базовым URL-адресу.
Идентификатор ссылки в манифесте подключаемого модуля неверен или отсутствует
Если в сведениях об отладке отображаются ошибки, карта примерно так:
OAuth authentication failed: No matching configuration found for referenceID in 'runtime.auth' section of the action manifest
Перейдите на портал разработчика Teams. Найдите клиент OAuth или клиент единого входа и убедитесь, что идентификатор в среде выполнения auth.reference_id сервера MCP соответствует идентификатору регистрации на портале разработчика.
Политика организации ограничивает доступ
Если в сведениях об отладке отображаются ошибки, карта примерно так:
OAuth authentication failed: Access is restricted by your organization's policy. (HTTP 404)
Обратитесь к администраторам вашей организации, чтобы проверить и разрешить доступ к приложению.
Кнопка входа неактивна или отображает общую ошибку
Если кнопка входа неактивна или отключена или ее нажатие выдает общую ошибку "Запрос не может быть обработан", это условие может указывать на временные проблемы с проверкой подлинности или сеансом. Повторите запрос. Если проблема не исчезнет, переустановите приложение или обратитесь к администраторам организации.
Не удается открыть всплывающее окно входа
Включите всплывающие окна для сайта в параметрах браузера и повторите попытку.
Всплывающее окно входа открывается, но зависает или никогда не закрывается
Если откроется всплывающее окно входа и пользователь завершает проверку подлинности, но всплывающее окно никогда не закрывается и Copilot не получает результат проверки подлинности, ссылка на всплывающее окно, скорее всего, была уничтожена window.opener во время цепочки перенаправления OAuth. Без window.openerэтого всплывающее окно не может передать результат проверки подлинности обратно в Copilot. Распространенный симптом заключается в том, что вход в систему в первый раз завершается сбоем, но при повторных попытках успешно выполняется, так как кэшированные учетные данные пропускают страницу, которая уничтожила window.opener.
Проверьте следующие элементы в цепочке перенаправления OAuth.
-
JavaScript, присвоив
window.openerзначение NULL: некоторые страницы входа задаютсяwindow.opener = nullв качестве комплексной меры безопасности для обратного табнаббинга. Если какая-либо страница в цепочке перенаправления проверки подлинности запускает этот код, всплывающее окно теряет подключение к Copilot. Область защиты табуляции только для навигации, инициированной пользователем, и не очищаетсяwindow.openerво время перенаправлений во всплывающем окне. -
Cross-Origin-Opener-Policyзаголовок имеет значениеsame-origin. Если любая страница в цепочке перенаправления служит заголовкомCross-Origin-Opener-Policy: same-originответа, браузер окончательно отключает ссылкуwindow.openerна навигацию между источниками. Убедитесь, что все страницы в цепочке перенаправления OAuth либо опускаютCross-Origin-Opener-Policyзаголовок (который по умолчанию используется какunsafe-none), либо явно задайте для него значениеunsafe-none. -
Ссылки с помощью
rel="noopener": привязка тегов сrel="noopener"полосойwindow.openerс целевой страницы. Не используйтеrel="noopener"для навигации во всплывающем окне проверки подлинности.
Чтобы отладить эту проблему, откройте средства разработчика браузера во всплывающем окне и введите window.opener в консоли на каждом шаге цепочки перенаправления. Если window.opener возвращается null до окончательного перенаправления, определите, на какой странице оно было очищено. Вы также можете проверка заголовки ответов вкладки Сеть для Cross-Origin-Opener-Policy значений на каждой странице в цепочке.
Ошибка неверных учетных данных
Если во всплывающем окне входа или ответе чата отображается ошибка "Неверные учетные данные", убедитесь, что вы вводите правильные учетные данные. Если ошибка сохраняется, убедитесь, что у пользователя есть необходимые разрешения.
URL-адрес входа не найден
Удалите и переустановите приложение, а затем повторите попытку входа.
Внутренняя ошибка сервера во время проверки подлинности
Проверьте сведения во всплывающем окне проверки подлинности и обратитесь к администраторам вашей организации для устранения проблем с разрешениями.
Диалоговое окно согласия появляется во время входа
Если появится диалоговое окно согласия с запросом разрешений или бизнес-обоснованием, просмотрите запрошенные разрешения и при необходимости предоставьте бизнес-обоснование. Если вы не уверены или если диалоговое окно согласия запрашивает разрешения, для которых требуется согласие администратора, обратитесь к администраторам вашей организации.