Uno Platform считает, что главная проблема при использовании ИИ-агентов для создания кроссплатформенных приложений .NET заключается не в написании кода, а в понимании того, работает ли этот код должным образом после запуска приложения. Агент может создать страницу настроек, которая успешно переводится и собирается, но содержит ошибки в компоновке или поведении, проявляющиеся только внутри реального приложения.
Чтобы устранить этот разрыв, Uno Platform создала два сервера на языке C# с использованием официального MCP C# SDK, разрабатываемого Microsoft совместно с сообществом. Первый сервер сосредоточен на предоставлении знаний и документации, а второй связывает агента с реально работающим приложением, позволяя агенту запускать его, проверять и взаимодействовать с ним.
Два сервера, две задачи и разные временные циклы
Основным решением в дизайне Uno Platform стало разделение вопроса «что должно быть правильным?» и вопроса «что происходит сейчас?». Сервер документации работает с информацией, которая изменяется при выпуске обновлений платформы или изменении её страниц, тогда как сервер приложения работает с состоянием конкретного сеанса выполнения, меняющимся во время работы приложения.
Сервер документации размещён в открытом доступе по адресу mcp.platform.uno/v1, работает через HTTP и не хранит состояние. Он предоставляет инструменты для поиска в официальной документации и получения полных страниц в формате Markdown, а также рекомендации по работе с запущенным приложением и правила использования распространённых API Uno Platform. Кроме того, он включает два промпта: /new для создания приложения в соответствии с актуальными лучшими практиками и /init для инициализации беседы, связанной с существующей кодовой базой.
Согласно опубликованному опыту, преимущество размещения этого сервера заключается в том, что обновление одной страницы документации отражается на агентах при следующем обращении к серверу, вместо включения инструкций в пакет NuGet, для которого потребовался бы новый выпуск.
Сервер приложения работает как инструмент .NET через stdio на компьютере разработчика и связывает агента с Uno DevServer. Это сервер с состоянием, предназначенный для одного сеанса. Он может запускать приложение в режиме отладки с включённым Hot Reload, делать снимок экрана, извлекать XML-представление дерева визуальных элементов, а затем выполнять щелчки, нажатия клавиш, ввод текста и вызов действий элементов автоматизации.
Для проверки интерфейса требуется больше, чем снимок экрана
Uno Platform считает инструмент дерева визуальных элементов важнейшей частью цикла проверки. Снимок экрана помогает агенту обнаружить, что что-то выглядит неправильно, тогда как дерево элементов показывает элемент, вызвавший проблему, и его свойства. Практически это означает: пиксели подходят для обнаружения, структура — для диагностики, а агенту необходимы оба вида данных.
Платформа рекомендует по возможности использовать uno_app_element_peer_action вместо нажатия по координатам через uno_app_pointer_click, поскольку нажатия по координатам зависят от размеров окон и плотности пикселей, тогда как действия автоматизации привязаны к самим элементам. Эта рекомендация размещена в описании инструмента, а не в отдельной документации, которую агент может не загрузить, поскольку описание инструмента напрямую влияет на выбор.
С помощью этих инструментов агент может изменить интерфейс, затем перезагрузить приложение, сделать снимок экрана, прочитать дерево визуальных элементов, выполнить интерактивный сценарий и определить, соответствует ли результат требованиям, прежде чем передать изменение. Uno Platform сравнивает этот подход с инструментами Playwright для веб-приложений, адаптируя его к нативным приложениям .NET, работающим на Windows, macOS, Linux, iOS, Android и WebAssembly.
Стоимость инструментов — часть проектирования контекста
Этот опыт обращает внимание на практическое ограничение, которое часто упускают в обсуждениях MCP: определения инструментов расходуют контекстное окно модели ещё до того, как задан какой-либо вопрос. Uno Platform сообщила, что сервер документации использует около 6,4 тысячи токенов, тогда как сервер приложения — около 1,5 тысячи токенов. Для сравнения, встроенный в тот же сеанс сервер GitHub MCP использует около 5,2 тысячи токенов.
Поэтому описания инструментов — это не просто техническая документация; согласно материалу, они представляют собой разновидность инструкций или промпта, влияющую на выбор агентом инструмента. Отсюда следует важность того, чтобы имя, описание и схема ввода были краткими и содержали максимум значимой информации, а важные рабочие предпочтения были включены туда, где модель читает их во время принятия решения.
Что это меняет на практике для разработчиков?
Uno Platform не ограничивается предоставлением отдельных инструментов, а также добавляет то, что называет Skills, — структурированные процедуры, определяющие, когда и в каком порядке используются инструменты и что означает завершение задачи. Библиотека включает сценарии для MVUX, состояния, источников данных, навигации, форматирования, элементов Uno Toolkit и тестирования, а также Skill с именем uno-testing-ui для автоматизации тестирования интерфейса через сервер приложения.
Эта структура объединяет актуальную документацию, живое приложение, которое можно проверять, и заранее определённые процедуры рабочего процесса. Платформа утверждает, что эти компоненты поддерживают Uno Platform Studio 3.0, создающую полностью кроссплатформенное приложение .NET внутри браузера. В основе лежат Microsoft Agent Framework для планирования и выполнения, а также рабочее пространство Roslyn для компиляции, загрузки сборок, разрешения изменений NuGet и повторной загрузки результата в запущенное приложение.
Редакционный комментарий certi.news: фактическая ценность этого опыта заключается не в добавлении ещё одного агента для написания кода, а в переводе агента из роли генератора текста в роль участника, способного обращаться к актуальному источнику знаний и проверять свой результат на реальном приложении. Разделение серверов также предлагает применимое к другим проектам MCP правило проектирования: отделяйте долгосрочные знания от состояния выполнения и выбирайте HTTP или stdio исходя из архитектуры развертывания, а не из формального предпочтения.
При этом материал не доказывает, что такой подход устраняет необходимость в проверке человеком или гарантирует корректность приложения во всех случаях. Он представляет опыт Uno Platform и её инструменты, но не содержит независимых измерений показателей обнаружения ошибок или качества кода. Кроме того, стоимость определений инструментов, зависимость сервера приложения от Uno DevServer и локального сеанса остаются практическими ограничениями, которые командам следует оценить перед внедрением этой модели.