<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Foundry | The .NET Blog</title><link>https://thedotnetblog.com/ru/tags/foundry/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ru</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 02 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ru/tags/foundry/index.xml" rel="self" type="application/rss+xml"/><item><title>Microsoft Foundry Апрель 2026: Foundry Local GA, GPT-5.5, CodeAct с Hyperlight</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/microsoft-foundry-april-2026-whats-new/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/microsoft-foundry-april-2026-whats-new/</guid><description>Апрельский обзор Foundry насыщен: Foundry Local достигает GA, приходит GPT-5.5, Agent Framework получает трассировку OpenTelemetry, CodeAct выполняет Python в микро-VM Hyperlight, и появляется Панель мониторинга агентов.</description><content:encoded>&lt;p&gt;Насыщенный месяц для Microsoft Foundry. Вот самые важные анонсы.&lt;/p&gt;
&lt;h2 id="foundry-local-стал-общедоступным"&gt;Foundry Local Стал Общедоступным&lt;/h2&gt;
&lt;p&gt;Foundry Local — кроссплатформенная локальная среда выполнения ИИ от Microsoft — переходит из предварительной версии в GA на Windows, macOS (Apple Silicon) и Linux x64. Готовая к производству локальная inference моделей с удобным для разработчиков SDK. Версия 1.1 добавляет поддержку транскрипции, embeddings и API Responses.&lt;/p&gt;
&lt;h2 id="gpt-55"&gt;GPT-5.5&lt;/h2&gt;
&lt;p&gt;Последняя модель семейства GPT-5 теперь доступна в Foundry. Квота по умолчанию для подписок Tier 5 и Tier 6. Если вы работали с более ранними вариантами GPT-5, стоит оценить его для своих случаев использования.&lt;/p&gt;
&lt;h2 id="трассировка-agent-framework-в-foundry"&gt;Трассировка Agent Framework в Foundry&lt;/h2&gt;
&lt;p&gt;В этом месяце в предварительную версию выходят две функции трассировки:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Трассировка Microsoft Agent Framework&lt;/strong&gt; — Агенты MAF теперь могут отправлять трассировки OpenTelemetry в Foundry. Отлаживайте поведение агентов, отслеживайте многошаговое выполнение, выявляйте задержки и ошибки во вызовах инструментов. Это заполняет реальный пробел: знать &lt;em&gt;что именно сделал ваш агент&lt;/em&gt; в продакшене, не только что он вернул.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Трассировка hosted-агентов&lt;/strong&gt; — Сессии, вызовы инструментов и шаги выполнения hosted-агентов также отображаются в трассировках Foundry. Та же история наблюдаемости распространяется на hosted-уровень.&lt;/p&gt;
&lt;h2 id="codeact-с-hyperlight-alpha"&gt;CodeAct с Hyperlight (Alpha)&lt;/h2&gt;
&lt;p&gt;Это технически самое интересное дополнение: Agent Framework теперь может выполнять код Python внутри микро-виртуальных машин &lt;a href="https://github.com/hyperlight-dev/hyperlight"&gt;Hyperlight&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;CodeAct — это паттерн, где агент генерирует и выполняет код Python как инструмент. Очевидная проблема — безопасность: вы запускаете код, сгенерированный моделью. Микро-VM Hyperlight обеспечивают изоляцию на уровне процесса с временем запуска близким к нативному, делая выполнение кода в sandbox практичным без накладных расходов полных контейнеров или VM.&lt;/p&gt;
&lt;p&gt;Для агентных рабочих процессов, где выполнение кода необходимо, это значительное улучшение безопасности по сравнению с выполнением кода в хост-процессе.&lt;/p&gt;
&lt;h2 id="панель-мониторинга-агентов-предварительная-версия"&gt;Панель Мониторинга Агентов (Предварительная Версия)&lt;/h2&gt;
&lt;p&gt;Единая операционная панель, объединяющая использование токенов, задержку, процент успешных выполнений и оценки эвалюаторов в одном представлении. Отличие от обычных панелей наблюдаемости: включает результаты оценки вместе с операционными метриками, что позволяет соотнести &amp;ldquo;агент работает медленнее&amp;rdquo; с &amp;ldquo;оценки эвалюатора упали&amp;rdquo; — или подтвердить, что они не связаны.&lt;/p&gt;
&lt;h2 id="пользовательские-эвалюаторы-непрерывной-оценки-предварительная-версия"&gt;Пользовательские Эвалюаторы Непрерывной Оценки (Предварительная Версия)&lt;/h2&gt;
&lt;p&gt;Теперь вы можете использовать собственные эвалюаторы на основе кода или промптов в пайплайнах непрерывной оценки. Ранее непрерывная оценка была ограничена встроенными эвалюаторами. Пользовательские эвалюаторы позволяют применять специфические для команды критерии качества в вашем производственном цикле мониторинга.&lt;/p&gt;
&lt;h2 id="инвентарь-агентов-в-плоскости-управления"&gt;Инвентарь Агентов в Плоскости Управления&lt;/h2&gt;
&lt;p&gt;Представление Operate в Плоскости Управления Foundry теперь показывает все поддерживаемые агенты в рамках подписки: агенты Foundry, Azure SRE Agent, циклы агентов Logic Apps и зарегистрированные пользовательские агенты. Одно представление для понимания того, что развёрнуто и где.&lt;/p&gt;
&lt;p&gt;Оригинальная публикация: &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/"&gt;What&amp;rsquo;s new in Microsoft Foundry | April 2026&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Ваш Локальный Агент MAF Только Что Получил Дом в Продакшене</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</guid><description>Foundry Hosted Agents даёт вашему агенту Microsoft Agent Framework идентичность, масштабирование, сохранение сессий и наблюдаемость без дополнительной настройки. Вот как это выглядит на практике.</description><content:encoded>&lt;p&gt;Заставить агента работать локально — это весёлая часть. Сложная часть — всё, что идёт после: развернуть его без потери рассудка, управлять сессиями, настроить идентичность, подключить наблюдаемость. Обычно это означает много пользовательской инфраструктурной склейки.&lt;/p&gt;
&lt;p&gt;Foundry Hosted Agents только что убрал большую часть этой склейки для пользователей Microsoft Agent Framework (MAF).&lt;/p&gt;
&lt;h2 id="что-на-самом-деле-делает-foundry-hosted-agents"&gt;Что На Самом Деле Делает Foundry Hosted Agents&lt;/h2&gt;
&lt;p&gt;Когда вы развёртываете агент MAF в Foundry Hosted Agents, платформа берёт на себя удивительно длинный список вещей, которые вам иначе пришлось бы строить самостоятельно:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Масштабирование до нуля&lt;/strong&gt; — ваш агент ничего не стоит в простое и автоматически запускается снова&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Изолированные VM-сандбоксы на сессию&lt;/strong&gt; — каждая пользовательская сессия получает собственный сандбокс с персистентностью файловой системы, которая переживает события масштабирования вниз&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Встроенный Entra ID&lt;/strong&gt; — каждый агент получает собственную идентичность для вызова моделей Foundry, Toolbox и сервисов Azure без секретов в образе&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Версионированные развёртывания&lt;/strong&gt; — каждое развёртывание является неизменяемым снимком с поддержкой blue/green и canary выкатки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Наблюдаемость без настройки&lt;/strong&gt; — &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; внедряется в runtime, так что трейсы OpenTelemetry MAF автоматически попадают в App Insights&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Последнее действительно приятно. Никакого дополнительного подключения, никакой дополнительной настройки. Трейсы просто появляются.&lt;/p&gt;
&lt;h2 id="разница-в-коде-минимальна"&gt;Разница в Коде Минимальна&lt;/h2&gt;
&lt;p&gt;Именно это мне нравится больше всего в этой интеграции. Вы не переписываете своего агента. Вы просто оборачиваете его:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;В .NET:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.Agents.AI.Foundry.Hosting&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;WebApplication&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MapFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;В Python:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ResponsesHostServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Это всё. Та же логика, которую вы тестировали локально, работает в продакшене. Платформа оборачивает её инфраструктурой управления сессиями, идентичностью и масштабированием.&lt;/p&gt;
&lt;h2 id="два-протокола-один-агент"&gt;Два Протокола, Один Агент&lt;/h2&gt;
&lt;p&gt;Hosted Agents поддерживают два стиля эндпоинтов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Responses&lt;/strong&gt; (&lt;code&gt;/responses&lt;/code&gt;) — совместим с OpenAI, управляет историей разговора и стримингом. Хороший выбор по умолчанию для чат-агентов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Invocations&lt;/strong&gt; (&lt;code&gt;/invocations&lt;/code&gt;) — вы определяете схему запроса/ответа. Хорошо для неконверсационных рабочих процессов.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если вы строите что-то похожее на разговор, начните с Responses. Если вы строите API-подобного агента, который принимает структурированный ввод и возвращает структурированный вывод, Invocations даёт вам гибкость.&lt;/p&gt;
&lt;h2 id="процесс-развёртывания-с-azd"&gt;Процесс Развёртывания с &lt;code&gt;azd&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Когда вы запускаете &lt;code&gt;azd up&lt;/code&gt; с агентом MAF:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Опционально создаёт проект Foundry и развёртывает модель&lt;/li&gt;
&lt;li&gt;Упаковывает ваш код и отправляет образ в Azure Container Registry&lt;/li&gt;
&lt;li&gt;Подготавливает вычислительные ресурсы из образа ACR&lt;/li&gt;
&lt;li&gt;Назначает агенту выделенный Entra ID&lt;/li&gt;
&lt;li&gt;Открывает стабильный эндпоинт (&lt;code&gt;https://{project_endpoint}/agents/{agent_name}&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Обрабатывает всё остальное с этого момента&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Сессии сохраняются до 30 дней. Неактивные вычислительные ресурсы деподготавливаются через 15 минут и прозрачно восстанавливаются при следующем запросе. С точки зрения агента ничего не изменилось.&lt;/p&gt;
&lt;h2 id="заключение"&gt;Заключение&lt;/h2&gt;
&lt;p&gt;Расстояние между &amp;ldquo;работает локально&amp;rdquo; и &amp;ldquo;запускается в продакшене&amp;rdquo; исторически было долгим и болезненным для ИИ-агентов. Foundry Hosted Agents + MAF значительно сокращает этот разрыв. Если у вас уже есть локальный агент, построенный с Agent Framework, это стоит попробовать сегодня.&lt;/p&gt;
&lt;p&gt;Команда говорит, что GA придёт скоро — сейчас это в preview. Ознакомьтесь с &lt;a href="https://learn.microsoft.com/en-us/agent-framework/hosting/foundry-hosted-agent"&gt;документацией по интеграции MAF Hosted Agent&lt;/a&gt; и &lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/04-hosting/FoundryHostedAgents"&gt;примерами .NET&lt;/a&gt; для начала работы.&lt;/p&gt;
&lt;p&gt;Оригинальная статья: &lt;a href="https://devblogs.microsoft.com/agent-framework/from-local-to-production-deploy-your-microsoft-agent-framework-agent-with-foundry-hosted-agents/"&gt;From Local to Production: Deploy Your Microsoft Agent Framework Agent with Foundry Hosted Agents&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Foundry Local 1.1: Транскрипция в реальном времени, Embeddings и Responses API</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-local-11-transcription-embeddings-responses-api/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-local-11-transcription-embeddings-responses-api/</guid><description>Foundry Local 1.1 добавляет живую транскрипцию с микрофона, text embeddings и поддержку Responses API — всё работает локально без зависимости от облака, без сетевой задержки, без платы за токен.</description><content:encoded>&lt;p&gt;Foundry Local 1.0 доказал концепцию: запускать модели ИИ локально на Windows, macOS (Apple Silicon) и Linux x64 с дружественным для разработчиков SDK. Версия 1.1 добавляет три возможности, покрывающие множество реальных производственных сценариев.&lt;/p&gt;
&lt;h2 id="живая-транскрипция-аудио"&gt;Живая транскрипция аудио&lt;/h2&gt;
&lt;p&gt;Наиболее значимая новая функция: потоковое преобразование речи в текст в реальном времени непосредственно с микрофона. Субтитры, голосовые интерфейсы, транскрипция встреч, инструменты доступности — всё работает локально без каких-либо облачных зависимостей.&lt;/p&gt;
&lt;p&gt;API является сессионным и передаёт результаты по мере их поступления с маркерами &lt;code&gt;is_final&lt;/code&gt; для разграничения промежуточного и финализированного текста. Доступно для всех языковых привязок: JavaScript, C#, Python и Rust.&lt;/p&gt;
&lt;p&gt;Загрузите потоковую речевую модель из каталога, создайте сессию с настройками аудио (частота дискретизации, каналы, язык), запустите её, отправляйте необработанные PCM-аудиочанки и потребляйте асинхронный поток результатов. В статье есть полные примеры на Python и C#.&lt;/p&gt;
&lt;h2 id="text-embeddings"&gt;Text Embeddings&lt;/h2&gt;
&lt;p&gt;Семантический поиск, RAG-пайплайны, кластеризация, сопоставление по схожести — всё это требует embeddings. Foundry Local 1.1 добавляет поддержку embedding-моделей, чтобы генерировать векторы локально из того же SDK без отправки данных на облачный эндпоинт.&lt;/p&gt;
&lt;p&gt;Для приложений, где важна резидентность данных или где обрабатывается чувствительный контент, локальная генерация embeddings является значимой возможностью.&lt;/p&gt;
&lt;h2 id="responses-api"&gt;Responses API&lt;/h2&gt;
&lt;p&gt;Foundry Local теперь поддерживает &lt;a href="https://platform.openai.com/docs/api-reference/responses"&gt;Responses API&lt;/a&gt; — структурированный интерфейс для агентных взаимодействий. Это добавляет:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Вызов инструментов&lt;/strong&gt; — позволяет локально работающим моделям вызывать инструменты, которые вы определяете&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Мультимодальный ввод vision-language&lt;/strong&gt; — передавайте изображение + текст моделям с поддержкой зрения&lt;/li&gt;
&lt;li&gt;Совместимость со стандартной формой API, поэтому существующие агенты, нацеленные на Responses API OpenAI, работают с локальными моделями&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="улучшения-размера-пакета"&gt;Улучшения размера пакета&lt;/h2&gt;
&lt;p&gt;Два изменения уменьшают размер пакета JavaScript:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Слой FFI &lt;code&gt;koffi&lt;/code&gt; был заменён на пользовательский Node-API C аддон&lt;/li&gt;
&lt;li&gt;Провайдер выполнения WebGPU поставляется как отдельный плагин, так что приложениям без GPU-ускорения не нужно платить за его размер&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SDK для C# теперь нацелен на более низкие версии фреймворка для более широкой совместимости с .NET.&lt;/p&gt;
&lt;h2 id="почему-это-важно"&gt;Почему это важно&lt;/h2&gt;
&lt;p&gt;Три возможности вместе — транскрипция, embeddings, вызов инструментов — покрывают основные строительные блоки многих приложений ИИ. Запуск их локально означает:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Интернет не требуется&lt;/li&gt;
&lt;li&gt;Нет платы за токены&lt;/li&gt;
&lt;li&gt;Данные не покидают машину&lt;/li&gt;
&lt;li&gt;Стабильная задержка независимо от сетевых условий&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Foundry Local — правильный выбор для edge-сценариев, чувствительных к конфиденциальности рабочих нагрузок, офлайн-приложений или всего, где нужно избежать облачной зависимости во время разработки.&lt;/p&gt;
&lt;p&gt;Оригинальный пост: &lt;a href="https://devblogs.microsoft.com/foundry/foundry-local-v1-1/"&gt;Foundry Local 1.1: Live Transcription, Embeddings, and Responses API&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>GPT-5.5 Уже Здесь и Приходит в Azure Foundry — Что Нужно Знать .NET-разработчикам</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</guid><description>GPT-5.5 доступен в Microsoft Foundry для всех. Эволюция от GPT-5 до 5.5, что реально улучшилось и как начать использовать его в своих агентах уже сегодня.</description><content:encoded>&lt;p&gt;&lt;em&gt;Этот пост переведён автоматически. Чтобы просмотреть оригинал, &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/"&gt;нажмите здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Microsoft только что объявила, что &lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;GPT-5.5 доступен в Microsoft Foundry&lt;/a&gt;. Если вы создаёте агентов на Azure, это обновление, которого вы ждали.&lt;/p&gt;
&lt;h2 id="эволюция-gpt-5"&gt;Эволюция GPT-5&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-5&lt;/strong&gt;: объединил рассуждение и скорость в единую систему&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.4&lt;/strong&gt;: более мощное многошаговое рассуждение, ранние агентские возможности для enterprise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt;: более глубокое рассуждение в длинном контексте, более надёжное агентское выполнение, лучшая эффективность токенов&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="что-реально-изменилось"&gt;Что реально изменилось&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Улучшенное агентное кодирование&lt;/strong&gt;: GPT-5.5 удерживает контекст на больших кодовых базах, диагностирует архитектурные сбои и предвидит требования к тестированию. Модель рассуждает о том, &lt;em&gt;на что ещё&lt;/em&gt; влияет исправление, прежде чем действовать.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Эффективность токенов&lt;/strong&gt;: Выходные данные более высокого качества с меньшим количеством токенов и меньшим числом повторных попыток. Непосредственно снижает стоимость и задержку в производстве.&lt;/p&gt;
&lt;h2 id="цены"&gt;Цены&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Модель&lt;/th&gt;
&lt;th&gt;Входные данные ($/M токенов)&lt;/th&gt;
&lt;th&gt;Кэшированный ввод&lt;/th&gt;
&lt;th&gt;Выходные данные ($/M токенов)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;$5,00&lt;/td&gt;
&lt;td&gt;$0,50&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;td&gt;$3,00&lt;/td&gt;
&lt;td&gt;$180,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="почему-важен-foundry"&gt;Почему важен Foundry&lt;/h2&gt;
&lt;p&gt;Foundry Agent Service позволяет определять агентов в YAML или подключать их с Microsoft Agent Framework, GitHub Copilot SDK, LangGraph или OpenAI Agents SDK — и запускать их как изолированных хостированных агентов с постоянной файловой системой, идентичностью Microsoft Entra и тарификацией по принципу scale-to-zero.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AIAgent&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aiProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsAIAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;gpt-5.5&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Вы полезный помощник.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;МойАгент&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Смотрите &lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;полное объявление&lt;/a&gt; для всех подробностей.&lt;/p&gt;</content:encoded></item><item><title>RFT в Foundry стал дешевле и умнее — Вот что изменилось</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</guid><description>Microsoft Foundry выпустил три обновления RFT в этом месяце: глобальное обучение для o4-mini, новые модельные грейдеры GPT-4.1 и руководство по лучшим практикам, которое сэкономит вам часы отладки.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Этот пост был переведён автоматически. Оригинал можно прочитать &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/"&gt;здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Если вы разрабатываете .NET-приложения, которые зависят от дообученных моделей, обновления Foundry этого месяца заслуживают внимания. Reinforcement Fine-Tuning стал более доступным и значительно дешевле.&lt;/p&gt;
&lt;p&gt;Полные подробности — в &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-foundry-finetune-april-2026/"&gt;официальном анонсе&lt;/a&gt;, а здесь — практическая выжимка.&lt;/p&gt;
&lt;h2 id="глобальное-обучение-для-o4-mini"&gt;Глобальное обучение для o4-mini&lt;/h2&gt;
&lt;p&gt;o4-mini — это основная модель для задач, требующих рассуждений, и агентных нагрузок. Главная новость: теперь вы можете запускать задачи файнтюнинга из 13+ регионов Azure с более низкими тарифами за токен по сравнению со Standard-обучением. Та же инфраструктура, то же качество, более широкий охват.&lt;/p&gt;
&lt;p&gt;Если ваша команда распределена по разным географиям, это важно. Вы больше не привязаны к нескольким регионам для обучения.&lt;/p&gt;
&lt;p&gt;Вот REST API вызов для запуска глобальной задачи обучения:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -X POST &lt;span class="s2"&gt;&amp;#34;https://&amp;lt;your-resource&amp;gt;.openai.azure.com/openai/fine_tuning/jobs?api-version=2025-04-01-preview&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;api-key: &lt;/span&gt;&lt;span class="nv"&gt;$AZURE_OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -d &lt;span class="s1"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;model&amp;#34;: &amp;#34;o4-mini&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;training_file&amp;#34;: &amp;#34;&amp;lt;your-training-file-id&amp;gt;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;method&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;type&amp;#34;: &amp;#34;reinforcement&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;reinforcement&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;grader&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;type&amp;#34;: &amp;#34;string_check&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;name&amp;#34;: &amp;#34;answer-check&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;input&amp;#34;: &amp;#34;{{sample.output_text}}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;reference&amp;#34;: &amp;#34;{{item.reference_answer}}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;operation&amp;#34;: &amp;#34;eq&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;hyperparameters&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;n_epochs&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;compute_multiplier&amp;#34;: 1.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;trainingType&amp;#34;: &amp;#34;globalstandard&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Флаг &lt;code&gt;trainingType: globalstandard&lt;/code&gt; — это ключевое отличие.&lt;/p&gt;
&lt;h2 id="новые-модельные-грейдеры-семейство-gpt-41"&gt;Новые модельные грейдеры: семейство GPT-4.1&lt;/h2&gt;
&lt;p&gt;Грейдеры определяют сигнал вознаграждения, под который оптимизируется ваша модель. До сих пор модельные грейдеры были ограничены небольшим набором моделей. Теперь у вас есть три новых варианта: GPT-4.1, GPT-4.1-mini и GPT-4.1-nano.&lt;/p&gt;
&lt;p&gt;Когда стоит использовать модельные грейдеры вместо детерминированных? Когда вывод вашей задачи открытый, когда вам нужна частичная оценка по нескольким измерениям, или когда вы строите агентные рабочие процессы, где корректность вызовов инструментов зависит от семантического контекста.&lt;/p&gt;
&lt;p&gt;Суть в том, что стратегия уровней практична:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-nano&lt;/strong&gt; для начальных итераций. Низкая стоимость, быстрые циклы обратной связи.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-mini&lt;/strong&gt; когда ваша рубрика оценки стабильна и нужна более высокая точность.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1&lt;/strong&gt; для продакшен-оценки или сложных рубрик, где важно каждое решение по оценке.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Вы даже можете комбинировать типы грейдеров в одной задаче RFT. Используйте string-match для измерения «правильный ответ» и модельный грейдер для оценки качества рассуждений. Честно говоря, именно эта гибкость делает его полезным для реальных нагрузок.&lt;/p&gt;
&lt;h2 id="подводный-камень-формата-данных-rft"&gt;Подводный камень формата данных RFT&lt;/h2&gt;
&lt;p&gt;На этом многие спотыкаются. Формат данных RFT отличается от SFT. Последнее сообщение в каждой строке должно иметь роль User или Developer — не Assistant. Ожидаемый ответ помещается в ключ верхнего уровня, например &lt;code&gt;reference_answer&lt;/code&gt;, на который грейдер ссылается напрямую.&lt;/p&gt;
&lt;p&gt;Если вы занимались supervised fine-tuning и хотите перейти на RFT, вам нужно перестроить обучающие данные. Не пропускайте этот шаг, иначе ваши задачи будут молча завершаться с ошибкой.&lt;/p&gt;
&lt;h2 id="почему-это-важно-для-net-разработчиков"&gt;Почему это важно для .NET-разработчиков&lt;/h2&gt;
&lt;p&gt;Если вы вызываете дообученные модели из .NET-приложений через Azure OpenAI SDK, более дешёвое обучение означает, что вы можете итерировать более агрессивно. Варианты модельных грейдеров означают, что вы можете файнтюнить для нюансированных задач — не только для сценариев точного совпадения. А руководство по лучшим практикам на &lt;a href="https://github.com/microsoft-foundry/fine-tuning/blob/main/Demos/Agentic_RFT_PrivatePreview/RFT_Best_Practice.md"&gt;GitHub&lt;/a&gt; сэкономит вам реальное время отладки.&lt;/p&gt;
&lt;p&gt;Начните с малого. От десяти до ста примеров. Простой грейдер. Проверьте цикл. Затем масштабируйте.&lt;/p&gt;</content:encoded></item><item><title>Microsoft Foundry Март 2026 — GPT-5.4, Agent Service GA и Обновление SDK, Которое Меняет Всё</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</guid><description>Мартовское обновление Microsoft Foundry 2026 года масштабно: Agent Service выходит в GA, GPT-5.4 обеспечивает надёжное рассуждение, SDK azure-ai-projects стабилизируется на всех языках, а Fireworks AI приносит открытые модели в Azure.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Этот пост был переведён автоматически. Оригинал можно прочитать &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/"&gt;здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ежемесячные посты «Что нового в Microsoft Foundry» обычно представляют собой сочетание инкрементальных улучшений и редких ключевых функций. &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;Мартовский выпуск 2026 года&lt;/a&gt;? Практически сплошные ключевые функции. Foundry Agent Service выходит в GA, GPT-5.4 выпускается для продакшена, SDK получает крупный стабильный релиз, а Fireworks AI приносит инференс открытых моделей в Azure. Давайте разберём, что важно для .NET-разработчиков.&lt;/p&gt;
&lt;h2 id="foundry-agent-service-готов-к-продакшену"&gt;Foundry Agent Service готов к продакшену&lt;/h2&gt;
&lt;p&gt;Это главная новость. Среда выполнения агентов нового поколения вышла в общую доступность — построена на OpenAI Responses API, совместима на уровне протокола с агентами OpenAI и открыта для моделей от различных поставщиков. Если вы сегодня строите на Responses API, миграция на Foundry добавит корпоративную безопасность, приватную сеть, Entra RBAC, полную трассировку и оценку поверх вашей существующей агентной логики.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PromptAgentDefinition&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;project_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_PROJECT_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;agent_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;my-enterprise-agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PromptAgentDefinition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ключевые дополнения: сквозная приватная сеть, расширение MCP-аутентификации (включая OAuth passthrough), предварительный просмотр Voice Live для голосовых агентов и размещённые агенты в 6 новых регионах.&lt;/p&gt;
&lt;h2 id="gpt-54--надёжность-важнее-чистого-интеллекта"&gt;GPT-5.4 — надёжность важнее чистого интеллекта&lt;/h2&gt;
&lt;p&gt;GPT-5.4 — это не про то, чтобы стать умнее. Это про надёжность. Более сильное рассуждение в длинных взаимодействиях, лучшее следование инструкциям, меньше сбоев в середине рабочего процесса и встроенные возможности использования компьютера. Для продакшен-агентов эта надёжность значит гораздо больше, чем результаты бенчмарков.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Модель&lt;/th&gt;
&lt;th&gt;Цена (за М токенов)&lt;/th&gt;
&lt;th&gt;Лучше всего для&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 (≤272K)&lt;/td&gt;
&lt;td&gt;$2.50 / $15 вывод&lt;/td&gt;
&lt;td&gt;Продакшен-агенты, кодирование, документооборот&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Pro&lt;/td&gt;
&lt;td&gt;$30 / $180 вывод&lt;/td&gt;
&lt;td&gt;Глубокий анализ, научное рассуждение&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Mini&lt;/td&gt;
&lt;td&gt;Экономичный&lt;/td&gt;
&lt;td&gt;Классификация, извлечение, лёгкие вызовы инструментов&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Умная стратегия — маршрутизация: GPT-5.4 Mini обрабатывает высоконагруженную работу с низкой задержкой, а GPT-5.4 берёт на себя запросы с интенсивным рассуждением.&lt;/p&gt;
&lt;h2 id="sdk-наконец-стабилен"&gt;SDK наконец стабилен&lt;/h2&gt;
&lt;p&gt;SDK &lt;code&gt;azure-ai-projects&lt;/code&gt; выпустил стабильные релизы на всех языках — Python 2.0.0, JS/TS 2.0.0, Java 2.0.0 и .NET 2.0.0 (1 апреля). Зависимость от &lt;code&gt;azure-ai-agents&lt;/code&gt; исчезла — всё живёт под &lt;code&gt;AIProjectClient&lt;/code&gt;. Установите через &lt;code&gt;pip install azure-ai-projects&lt;/code&gt;, пакет включает &lt;code&gt;openai&lt;/code&gt; и &lt;code&gt;azure-identity&lt;/code&gt; как прямые зависимости.&lt;/p&gt;
&lt;p&gt;Для .NET-разработчиков это означает единый NuGet-пакет для всей поверхности Foundry. Больше никакого жонглирования отдельными SDK для агентов.&lt;/p&gt;
&lt;h2 id="fireworks-ai-приносит-открытые-модели-в-azure"&gt;Fireworks AI приносит открытые модели в Azure&lt;/h2&gt;
&lt;p&gt;Пожалуй, самое архитектурно интересное дополнение: Fireworks AI обрабатывает более 13 триллионов токенов в день при ~180K запросов/секунду, теперь доступен через Foundry. DeepSeek V3.2, gpt-oss-120b, Kimi K2.5 и MiniMax M2.5 при запуске.&lt;/p&gt;
&lt;p&gt;Настоящая история — это &lt;strong&gt;bring-your-own-weights&lt;/strong&gt; — загружайте квантованные или дообученные веса откуда угодно без смены стека обслуживания. Развёртывание через бессерверную модель с оплатой за токен или выделенную пропускную способность.&lt;/p&gt;
&lt;h2 id="другие-важные-моменты"&gt;Другие важные моменты&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phi-4 Reasoning Vision 15B&lt;/strong&gt; — мультимодальное рассуждение для графиков, диаграмм и макетов документов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluations GA&lt;/strong&gt; — готовые оценщики с непрерывным мониторингом продакшена через Azure Monitor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority Processing&lt;/strong&gt; (Preview) — выделенная вычислительная линия для нагрузок, чувствительных к задержке&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Voice Live&lt;/strong&gt; — среда выполнения «голос-к-голосу», подключаемая напрямую к агентам Foundry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracing GA&lt;/strong&gt; — сквозная инспекция трассировок агентов с сортировкой и фильтрацией&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Устаревание PromptFlow&lt;/strong&gt; — миграция на Microsoft Framework Workflows к январю 2027&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="заключение"&gt;Заключение&lt;/h2&gt;
&lt;p&gt;Март 2026 — это поворотный момент для Foundry. Agent Service GA, стабильные SDK на всех языках, GPT-5.4 для надёжных продакшен-агентов и инференс открытых моделей через Fireworks AI — платформа готова к серьёзным нагрузкам.&lt;/p&gt;
&lt;p&gt;Прочитайте &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;полный обзор&lt;/a&gt; и &lt;a href="https://learn.microsoft.com/azure/foundry/quickstarts/get-started-code"&gt;создайте своего первого агента&lt;/a&gt;, чтобы начать.&lt;/p&gt;</content:encoded></item><item><title>Подключите ваши MCP-серверы на Azure Functions к агентам Foundry — Вот как</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</guid><description>Создайте MCP-сервер один раз, разверните на Azure Functions и подключите к агентам Microsoft Foundry с правильной аутентификацией. Ваши инструменты работают везде — VS Code, Cursor, а теперь и корпоративные AI-агенты.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Этот пост был переведён автоматически. Оригинал можно прочитать &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/"&gt;здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вот что мне нравится в экосистеме MCP: вы создаёте сервер один раз, и он работает везде. VS Code, Visual Studio, Cursor, ChatGPT — каждый MCP-клиент может обнаруживать и использовать ваши инструменты. Теперь Microsoft добавляет ещё одного потребителя в этот список: агенты Foundry.&lt;/p&gt;
&lt;p&gt;Лили Ма из команды Azure SDK &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;опубликовала практическое руководство&lt;/a&gt; по подключению MCP-серверов на Azure Functions к агентам Microsoft Foundry. Если у вас уже есть MCP-сервер, это чистая добавленная ценность — никакой перестройки не требуется.&lt;/p&gt;
&lt;h2 id="почему-эта-комбинация-имеет-смысл"&gt;Почему эта комбинация имеет смысл&lt;/h2&gt;
&lt;p&gt;Azure Functions даёт вам масштабируемую инфраструктуру, встроенную аутентификацию и бессерверную тарификацию для хостинга MCP-серверов. Microsoft Foundry даёт вам AI-агентов, которые могут рассуждать, планировать и выполнять действия. Соединение этих двух означает, что ваши пользовательские инструменты — запросы к базе данных, вызовы бизнес-API, выполнение логики валидации — становятся возможностями, которые корпоративные AI-агенты могут автономно обнаруживать и использовать.&lt;/p&gt;
&lt;p&gt;Ключевой момент: ваш MCP-сервер остаётся прежним. Вы просто добавляете Foundry как ещё одного потребителя. Те же инструменты, которые работают в вашей конфигурации VS Code, теперь обеспечивают работу AI-агента, с которым взаимодействуют ваша команда или клиенты.&lt;/p&gt;
&lt;h2 id="варианты-аутентификации"&gt;Варианты аутентификации&lt;/h2&gt;
&lt;p&gt;Здесь статья действительно приносит пользу. Четыре метода аутентификации в зависимости от вашего сценария:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Метод&lt;/th&gt;
&lt;th&gt;Сценарий&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;На основе ключей&lt;/strong&gt; (по умолчанию)&lt;/td&gt;
&lt;td&gt;Разработка или серверы без аутентификации Entra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microsoft Entra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Продакшн с управляемыми удостоверениями&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Проброс OAuth-удостоверений&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Продакшн, где каждый пользователь аутентифицируется отдельно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Без аутентификации&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Разработка/тестирование или только публичные данные&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Для продакшна рекомендуется Microsoft Entra с идентификацией агента. Проброс OAuth-удостоверений — для случаев, когда важен контекст пользователя: агент предлагает пользователям войти, и каждый запрос несёт собственный токен пользователя.&lt;/p&gt;
&lt;h2 id="настройка"&gt;Настройка&lt;/h2&gt;
&lt;p&gt;Общий поток:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Разверните MCP-сервер на Azure Functions&lt;/strong&gt; — доступны примеры для &lt;a href="https://github.com/Azure-Samples/remote-mcp-functions-dotnet"&gt;.NET&lt;/a&gt;, Python, TypeScript и Java&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Включите встроенную MCP-аутентификацию&lt;/strong&gt; на вашем function app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Получите URL эндпоинта&lt;/strong&gt; — &lt;code&gt;https://&amp;lt;FUNCTION_APP_NAME&amp;gt;.azurewebsites.net/runtime/webhooks/mcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Добавьте MCP-сервер как инструмент в Foundry&lt;/strong&gt; — перейдите к агенту в портале, добавьте новый MCP-инструмент, укажите эндпоинт и учётные данные&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Затем протестируйте в песочнице Agent Builder, отправив запрос, который активирует один из ваших инструментов.&lt;/p&gt;
&lt;h2 id="моё-мнение"&gt;Моё мнение&lt;/h2&gt;
&lt;p&gt;История компонуемости здесь становится по-настоящему сильной. Создайте MCP-сервер один раз на .NET (или Python, TypeScript, Java), разверните на Azure Functions, и каждый MCP-совместимый клиент может его использовать — инструменты для кодирования, чат-приложения, а теперь и корпоративные AI-агенты. Это паттерн «напиши один раз, используй везде», который действительно работает.&lt;/p&gt;
&lt;p&gt;Для .NET-разработчиков конкретно, &lt;a href="https://github.com/Azure-Samples/remote-mcp-functions-dotnet"&gt;расширение MCP для Azure Functions&lt;/a&gt; делает это простым. Вы определяете инструменты как Azure Functions, развёртываете — и у вас есть MCP-сервер продакшн-уровня со всей безопасностью и масштабированием, которые предоставляет Azure Functions.&lt;/p&gt;
&lt;h2 id="подводя-итоги"&gt;Подводя итоги&lt;/h2&gt;
&lt;p&gt;Если у вас есть MCP-инструменты на Azure Functions, подключение к агентам Foundry — быстрый выигрыш: ваши пользовательские инструменты становятся корпоративными AI-возможностями с правильной аутентификацией и без изменений кода на сервере.&lt;/p&gt;
&lt;p&gt;Прочитайте &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;полное руководство&lt;/a&gt; для пошаговых инструкций по каждому методу аутентификации и ознакомьтесь с &lt;a href="https://learn.microsoft.com/azure/azure-functions/functions-mcp-foundry-tools?tabs=entra%2Cmcp-extension%2Cfoundry"&gt;подробной документацией&lt;/a&gt; для продакшн-настроек.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps MCP Server появился в Microsoft Foundry: что это значит для ваших ИИ-агентов</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</guid><description>Azure DevOps MCP Server теперь доступен в Microsoft Foundry. Подключайте своих ИИ-агентов напрямую к рабочим процессам DevOps — work items, репозитории, пайплайны — в несколько кликов.</description><content:encoded>&lt;p&gt;MCP (Model Context Protocol) переживает свой момент. Если вы следите за экосистемой ИИ-агентов, вы наверняка заметили, что MCP-серверы появляются повсюду — давая агентам возможность взаимодействовать с внешними инструментами и сервисами через стандартизированный протокол.&lt;/p&gt;
&lt;p&gt;Теперь &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;Azure DevOps MCP Server доступен в Microsoft Foundry&lt;/a&gt;, и это одна из тех интеграций, которая заставляет задуматься о практических возможностях.&lt;/p&gt;
&lt;h2 id="что-здесь-на-самом-деле-происходит"&gt;Что здесь на самом деле происходит&lt;/h2&gt;
&lt;p&gt;Microsoft уже выпустила Azure DevOps MCP Server в &lt;a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview"&gt;публичном превью&lt;/a&gt; — это сам MCP-сервер. Новое — это интеграция с Foundry. Теперь вы можете добавить Azure DevOps MCP Server к своим агентам в Foundry прямо из каталога инструментов.&lt;/p&gt;
&lt;p&gt;Для тех, кто ещё не знаком с Foundry: это унифицированная платформа Microsoft для создания и управления ИИ-приложениями и агентами в масштабе. Доступ к моделям, оркестрация, оценка, развёртывание — всё в одном месте.&lt;/p&gt;
&lt;h2 id="настройка"&gt;Настройка&lt;/h2&gt;
&lt;p&gt;Настройка удивительно проста:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;В вашем агенте Foundry перейдите в &lt;strong&gt;Add Tools&lt;/strong&gt; &amp;gt; &lt;strong&gt;Catalog&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Найдите &amp;ldquo;Azure DevOps&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Выберите Azure DevOps MCP Server (preview) и нажмите &lt;strong&gt;Create&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Введите имя вашей организации и подключитесь&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Вот и всё. Ваш агент теперь имеет доступ к инструментам Azure DevOps.&lt;/p&gt;
&lt;h2 id="контроль-доступа-агента"&gt;Контроль доступа агента&lt;/h2&gt;
&lt;p&gt;Вот что мне нравится: вы не ограничены подходом «всё или ничего». Вы можете указать, какие инструменты доступны вашему агенту. Если вы хотите, чтобы он только читал work items, но не трогал пайплайны, это можно настроить. Принцип наименьших привилегий, применённый к вашим ИИ-агентам.&lt;/p&gt;
&lt;p&gt;Это важно для корпоративных сценариев, где вы не хотите, чтобы агент случайно запустил пайплайн развёртывания, потому что кто-то попросил его «помочь с релизом».&lt;/p&gt;
&lt;h2 id="почему-это-интересно-для-net-команд"&gt;Почему это интересно для .NET-команд&lt;/h2&gt;
&lt;p&gt;Подумайте о том, что это позволяет на практике:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Помощники планирования спринтов&lt;/strong&gt; — агенты, которые могут извлекать work items, анализировать данные о скорости работы и предлагать ёмкость спринта&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Боты для код-ревью&lt;/strong&gt; — агенты, которые понимают контекст вашего PR, потому что могут реально читать ваши репозитории и связанные work items&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Реагирование на инциденты&lt;/strong&gt; — агенты, которые могут создавать work items, запрашивать последние развёртывания и сопоставлять баги с недавними изменениями&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Онбординг разработчиков&lt;/strong&gt; — &amp;ldquo;Над чем мне работать?&amp;rdquo; получает реальный ответ, основанный на фактических данных проекта&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Для .NET-команд, уже использующих Azure DevOps для CI/CD-пайплайнов и управления проектами, наличие ИИ-агента, который может напрямую взаимодействовать с этими системами, — это значительный шаг к полезной автоматизации (а не просто чат-бот как сервис).&lt;/p&gt;
&lt;h2 id="более-широкая-картина-mcp"&gt;Более широкая картина MCP&lt;/h2&gt;
&lt;p&gt;Это часть более крупного тренда: MCP-серверы становятся стандартным способом взаимодействия ИИ-агентов с внешним миром. Мы видим их для GitHub, Azure DevOps, баз данных, SaaS API — и Foundry становится хабом, где все эти соединения объединяются.&lt;/p&gt;
&lt;p&gt;Если вы создаёте агентов в экосистеме .NET, на MCP стоит обратить внимание. Протокол стандартизирован, инструментарий развивается, а интеграция с Foundry делает его доступным без необходимости вручную настраивать серверные подключения.&lt;/p&gt;
&lt;h2 id="итог"&gt;Итог&lt;/h2&gt;
&lt;p&gt;Azure DevOps MCP Server в Foundry находится в превью, так что ожидайте его развития. Но основной рабочий процесс надёжен: подключите, настройте доступ к инструментам и позвольте вашим агентам работать с данными DevOps. Если вы уже в экосистеме Foundry, это в нескольких кликах. Попробуйте и посмотрите, какие рабочие процессы вы сможете построить.&lt;/p&gt;
&lt;p&gt;Ознакомьтесь с &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;полным анонсом&lt;/a&gt; для пошаговых инструкций по настройке и дополнительных деталей.&lt;/p&gt;</content:encoded></item><item><title>Foundry Agent Service вышел в GA: что действительно важно для .NET-разработчиков агентов</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</guid><description>Foundry Agent Service от Microsoft вышел в GA с приватной сетью, Voice Live, продакшен-оценками и открытым мультимодельным рантаймом. Вот что нужно знать.</description><content:encoded>&lt;p&gt;Будем честны — создать прототип ИИ-агента — это простая часть. Сложная часть — всё, что идёт после: вывести его в продакшен с правильной сетевой изоляцией, запустить оценки, которые действительно что-то значат, обеспечить соответствие требованиям и не сломать ничего в 2 часа ночи.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;Foundry Agent Service только что вышел в GA&lt;/a&gt;, и этот релиз сфокусирован именно на этом разрыве «всё, что после».&lt;/p&gt;
&lt;h2 id="построен-на-responses-api"&gt;Построен на Responses API&lt;/h2&gt;
&lt;p&gt;Вот главная новость: Foundry Agent Service нового поколения построен на OpenAI Responses API. Если вы уже работаете с этим wire-протоколом, миграция на Foundry — это минимальные изменения кода. Что вы получаете: корпоративную безопасность, приватную сеть, Entra RBAC, полную трассировку и оценку — поверх вашей существующей логики агента.&lt;/p&gt;
&lt;p&gt;Архитектура намеренно открыта. Вы не привязаны к одному провайдеру моделей или одному фреймворку оркестрации. Используйте DeepSeek для планирования, OpenAI для генерации, LangGraph для оркестрации — рантайм обеспечивает слой согласованности.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PromptAgentDefinition&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_PROJECT_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_openai_client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;agent_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;my-enterprise-agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PromptAgentDefinition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;What are best practices for building AI agents?&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Если вы переходите с пакета &lt;code&gt;azure-ai-agents&lt;/code&gt;, агенты теперь являются операциями первого класса на &lt;code&gt;AIProjectClient&lt;/code&gt; в &lt;code&gt;azure-ai-projects&lt;/code&gt;. Удалите отдельную зависимость и используйте &lt;code&gt;get_openai_client()&lt;/code&gt; для работы с ответами.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="приватная-сеть-корпоративный-блокер-устранён"&gt;Приватная сеть: корпоративный блокер устранён&lt;/h2&gt;
&lt;p&gt;Это функция, которая разблокирует корпоративное внедрение. Foundry теперь поддерживает полную сквозную приватную сеть с BYO VNet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Нет публичного исходящего трафика&lt;/strong&gt; — трафик агента никогда не проходит через публичный интернет&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Внедрение контейнеров/подсетей&lt;/strong&gt; в вашу сеть для локальной коммуникации&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Подключение инструментов включено&lt;/strong&gt; — MCP-серверы, Azure AI Search, агенты данных Fabric — всё работает через приватные пути&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Последний пункт критичен. Приватными остаются не только вызовы для вывода — каждый вызов инструмента и поисковый запрос тоже остаётся внутри границы вашей сети. Для команд, работающих под политиками классификации данных, запрещающими внешнюю маршрутизацию, это то, чего не хватало.&lt;/p&gt;
&lt;h2 id="аутентификация-mcp-сделана-правильно"&gt;Аутентификация MCP сделана правильно&lt;/h2&gt;
&lt;p&gt;Подключения к MCP-серверам теперь поддерживают полный спектр паттернов аутентификации:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Метод аутентификации&lt;/th&gt;
&lt;th&gt;Когда использовать&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;На основе ключей&lt;/td&gt;
&lt;td&gt;Простой общий доступ для внутренних инструментов организации&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Agent Identity&lt;/td&gt;
&lt;td&gt;Сервис-к-сервису; агент аутентифицируется от своего имени&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Managed Identity&lt;/td&gt;
&lt;td&gt;Изоляция на уровне проекта; без управления учётными данными&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OAuth Identity Passthrough&lt;/td&gt;
&lt;td&gt;Делегированный доступ пользователя; агент действует от имени пользователей&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;OAuth Identity Passthrough — самый интересный. Когда пользователям нужно предоставить агенту доступ к своим личным данным — их OneDrive, их организации Salesforce, SaaS API с пользовательской областью — агент действует от их имени через стандартные OAuth-потоки. Никакой общей системной идентификации, притворяющейся всеми.&lt;/p&gt;
&lt;h2 id="voice-live-речь-в-речь-без-сантехнических-работ"&gt;Voice Live: речь-в-речь без сантехнических работ&lt;/h2&gt;
&lt;p&gt;Добавление голоса к агенту раньше означало объединение STT, LLM и TTS — три сервиса, три задержки, три поверхности биллинга, всё синхронизировано вручную. &lt;strong&gt;Voice Live&lt;/strong&gt; сворачивает это в единый управляемый API с:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Семантическое определение голосовой активности и конца реплики (понимает смысл, а не просто тишину)&lt;/li&gt;
&lt;li&gt;Серверное подавление шума и эхо-компенсация&lt;/li&gt;
&lt;li&gt;Поддержка прерывания (пользователи могут прервать ответ)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Голосовые взаимодействия проходят через тот же рантайм агента, что и текстовые. Те же оценщики, те же трассировки, та же прозрачность затрат. Для поддержки клиентов, полевого обслуживания или сценариев доступности это заменяет то, что раньше требовало пользовательского аудио-пайплайна.&lt;/p&gt;
&lt;h2 id="оценки-от-галочки-к-непрерывному-мониторингу"&gt;Оценки: от галочки к непрерывному мониторингу&lt;/h2&gt;
&lt;p&gt;Здесь Foundry серьёзно подходит к качеству продакшена. Система оценки теперь имеет три уровня:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Готовые оценщики&lt;/strong&gt; — связность, релевантность, обоснованность, качество поиска, безопасность. Подключите к датасету или живому трафику и получите оценки обратно.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Пользовательские оценщики&lt;/strong&gt; — закодируйте свою бизнес-логику, стандарты тона и специфичные для домена правила соответствия.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Непрерывная оценка&lt;/strong&gt; — Foundry сэмплирует живой продакшен-трафик, запускает набор оценщиков и отображает результаты через дашборды. Настройте алерты Azure Monitor на случай падения обоснованности или нарушения порогов безопасности.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Всё публикуется в Azure Monitor Application Insights. Качество агента, здоровье инфраструктуры, затраты и телеметрия приложения — всё в одном месте.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;eval_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Agent Quality Evaluation&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;data_source_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DataSourceConfigCustom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;item_schema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;string&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;required&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;include_sample_schema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;testing_criteria&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;azure_ai_evaluator&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;fluency&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;evaluator_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;builtin.fluency&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;initialization_parameters&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;deployment_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;data_mapping&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;{{item.query}}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;response&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;{{sample.output_text}}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="шесть-новых-регионов-для-размещённых-агентов"&gt;Шесть новых регионов для размещённых агентов&lt;/h2&gt;
&lt;p&gt;Размещённые агенты теперь доступны в East US, North Central US, Sweden Central, Southeast Asia, Japan East и других регионах. Это важно для требований к размещению данных и для снижения задержки, когда ваш агент работает рядом с источниками данных.&lt;/p&gt;
&lt;h2 id="почему-это-важно-для-net-разработчиков"&gt;Почему это важно для .NET-разработчиков&lt;/h2&gt;
&lt;p&gt;Хотя примеры кода в анонсе GA написаны на Python, базовая инфраструктура не зависит от языка — и .NET SDK для &lt;code&gt;azure-ai-projects&lt;/code&gt; следует тем же паттернам. Responses API, фреймворк оценки, приватная сеть, аутентификация MCP — всё это доступно из .NET.&lt;/p&gt;
&lt;p&gt;Если вы ждали, пока ИИ-агенты перейдут от «классной демо» к «я реально могу отправить это на работе», этот GA-релиз — тот самый сигнал. Приватная сеть, правильная аутентификация, непрерывная оценка и продакшен-мониторинг — это были недостающие элементы.&lt;/p&gt;
&lt;h2 id="итог"&gt;Итог&lt;/h2&gt;
&lt;p&gt;Foundry Agent Service доступен сейчас. Установите SDK, откройте &lt;a href="https://ai.azure.com"&gt;портал&lt;/a&gt; и начинайте строить. &lt;a href="https://learn.microsoft.com/azure/foundry/quickstarts/get-started-code"&gt;Руководство по быстрому старту&lt;/a&gt; проведёт вас от нуля до работающего агента за минуты.&lt;/p&gt;
&lt;p&gt;Для полного технического погружения со всеми примерами кода ознакомьтесь с &lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;анонсом GA&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>С ноутбука в продакшен: развёртывание ИИ-агентов в Microsoft Foundry двумя командами</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>Azure Developer CLI теперь имеет команды 'azd ai agent', которые переносят вашего ИИ-агента с локальной разработки на живой эндпоинт Foundry за минуты. Вот полный рабочий процесс.</description><content:encoded>&lt;p&gt;Вы знаете тот разрыв между «работает на моей машине» и «развёрнуто и обслуживает трафик»? Для ИИ-агентов этот разрыв был болезненно широким. Нужно подготовить ресурсы, развернуть модели, настроить идентификацию, организовать мониторинг — и это до того, как кто-либо сможет реально вызвать вашего агента.&lt;/p&gt;
&lt;p&gt;Azure Developer CLI только что превратил это в &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;дело двух команд&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="новый-рабочий-процесс-azd-ai-agent"&gt;Новый рабочий процесс &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Давайте пройдём по тому, как это реально выглядит. У вас есть проект ИИ-агента — допустим, агент-консьерж для отеля. Он работает локально. Вы хотите запустить его на Microsoft Foundry.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Вот и всё. Две команды. &lt;code&gt;azd ai agent init&lt;/code&gt; генерирует инфраструктуру как код в вашем репозитории, а &lt;code&gt;azd up&lt;/code&gt; разворачивает всё в Azure и публикует вашего агента. Вы получаете прямую ссылку на вашего агента в портале Foundry.&lt;/p&gt;
&lt;h2 id="что-происходит-под-капотом"&gt;Что происходит под капотом&lt;/h2&gt;
&lt;p&gt;Команда &lt;code&gt;init&lt;/code&gt; генерирует реальные, проверяемые шаблоны Bicep в вашем репозитории:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Foundry Resource&lt;/strong&gt; (контейнер верхнего уровня)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foundry Project&lt;/strong&gt; (где живёт ваш агент)&lt;/li&gt;
&lt;li&gt;Конфигурация &lt;strong&gt;развёртывания модели&lt;/strong&gt; (GPT-4o и т.д.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managed identity&lt;/strong&gt; с правильными назначениями ролей RBAC&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; для карты сервисов&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; с метаданными агента и переменными окружения&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ключевой момент: всё это принадлежит вам. Это версионированный Bicep в вашем репозитории. Вы можете его проверить, настроить и закоммитить рядом с кодом вашего агента. Никаких магических чёрных ящиков.&lt;/p&gt;
&lt;h2 id="внутренний-цикл-разработки"&gt;Внутренний цикл разработки&lt;/h2&gt;
&lt;p&gt;Что мне действительно нравится — это история локальной разработки. Когда вы итерируете над логикой агента, вы не хотите перезапускать развёртывание при каждом изменении промпта:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Это запускает вашего агента локально. Комбинируйте с &lt;code&gt;azd ai agent invoke&lt;/code&gt; для отправки тестовых промптов, и у вас есть быстрый цикл обратной связи. Редактируете код, перезапускаете, вызываете, повторяете.&lt;/p&gt;
&lt;p&gt;Команда &lt;code&gt;invoke&lt;/code&gt; умная в плане маршрутизации — когда локальный агент запущен, она автоматически направляет на него. Когда нет — обращается к удалённому эндпоинту.&lt;/p&gt;
&lt;h2 id="мониторинг-в-реальном-времени"&gt;Мониторинг в реальном времени&lt;/h2&gt;
&lt;p&gt;Вот функция, которая меня купила. После развёртывания агента:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Каждый запрос и ответ, проходящий через вашего агента, транслируется в ваш терминал в реальном времени. Для отладки продакшен-проблем это бесценно. Никакого копания в log analytics, никакого ожидания агрегации метрик — вы видите, что происходит прямо сейчас.&lt;/p&gt;
&lt;h2 id="полный-набор-команд"&gt;Полный набор команд&lt;/h2&gt;
&lt;p&gt;Вот краткий справочник:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Команда&lt;/th&gt;
&lt;th&gt;Что делает&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Генерирует проект агента Foundry с IaC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Разворачивает Azure-ресурсы и публикует агента&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Отправляет промпты удалённому или локальному агенту&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Запускает агента локально для разработки&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Транслирует логи от опубликованного агента в реальном времени&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Проверяет состояние и здоровье агента&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Удаляет все Azure-ресурсы&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="почему-это-важно-для-net-разработчиков"&gt;Почему это важно для .NET-разработчиков&lt;/h2&gt;
&lt;p&gt;Хотя пример в анонсе написан на Python, история инфраструктуры не зависит от языка. Ваш .NET-агент получает тот же Bicep-шаблон, ту же настройку managed identity, тот же пайплайн мониторинга. И если вы уже используете &lt;code&gt;azd&lt;/code&gt; для своих .NET Aspire-приложений или развёртываний Azure, это вписывается прямо в ваш существующий рабочий процесс.&lt;/p&gt;
&lt;p&gt;Разрыв в развёртывании ИИ-агентов был одной из самых больших точек трения в экосистеме. Переход от работающего прототипа к продакшен-эндпоинту с правильной идентификацией, сетью и мониторингом не должен требовать недели DevOps-работы. Теперь для этого нужны две команды и несколько минут.&lt;/p&gt;
&lt;h2 id="итог"&gt;Итог&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; доступен сейчас. Если вы откладывали развёртывание своих ИИ-агентов, потому что настройка инфраструктуры казалась слишком трудоёмкой, попробуйте это. Ознакомьтесь с &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;полным руководством&lt;/a&gt; для полной пошаговой инструкции, включая интеграцию с фронтенд-чат-приложением.&lt;/p&gt;</content:encoded></item></channel></rss>