azure-ai-agents-persistent-dotnet
Этот навык Microsoft предназначен для низкоуровневой работы с Persistent Agents на .NET через пакет Azure.AI.Agents.Persistent. Он подходит, когда приложению нужно создавать и администрировать AI-агентов, вести разговоры в threads, отправлять messages, запускать runs и получать ответы, а также подключать инструменты. Документ отдельно показывает, как использовать PersistentAgentsClient и как разделены его области Administration, Threads, Messages, Runs, Files и VectorStores. Это полезная граница: навык объясняет клиентскую модель и последовательность операций, но не подменяет настройку самого Azure AI project или выбор deployment. Перед началом нужны Azure.AI.Agents.Persistent и Azure.Identity. В окружении задаются PROJECT_ENDPOINT и MODEL_DEPLOYMENT_NAME; для конкретных интеграций также используются идентификаторы Bing и Azure AI Search connection. Для локальной разработки пример использует DefaultAzureCredential, а для production допускает настройку AZURE_TOKEN_CREDENTIALS или явный ManagedIdentityCredential. Поэтому карточка помогает сначала проверить endpoint, deployment и способ аутентификации, а не зашивать секреты в исходный код. В исходном документе указаны стабильная версия v1.1.0 и preview v1.2.0-beta.8, причём установка показана с флагом prerelease. Базовый сценарий состоит из нескольких отдельных шагов. Сначала Administration.CreateAgentAsync создаёт агента с моделью, именем, инструкциями и набором tools. Затем Threads.CreateThreadAsync создаёт поток, а Messages.CreateMessageAsync добавляет сообщение пользователя. Run запускается через CreateRunAsync; при polling нужно повторять GetRunAsync с паузой 500 миллисекунд, пока статус не выйдет из Queued или InProgress, после чего сообщения читаются через Messages.GetMessagesAsync. Для интерфейса с потоковым ответом предусмотрен CreateRunStreamingAsync и обработка RunCreated, MessageContentUpdate и RunCompleted. Такой порядок позволяет различать создание ресурса, отправку входа, выполнение и чтение результата. Отдельный раздел посвящён function calling. FunctionToolDefinition описывает имя, назначение и JSON-параметры функции, а во время RequiresAction приложение перебирает RequiredToolCall, выполняет собственную функцию и отправляет ToolOutput через SubmitToolOutputsToRunAsync. Для работы с документами есть File Search: файл загружается с назначением Agents, затем создаётся vector store, его идентификатор передаётся в FileSearchToolResource и ресурс подключается к агенту. Среди готовых инструментов также перечислены Code Interpreter для выполнения Python и визуализаций, Bing Grounding, Azure AI Search, OpenAPI, Azure Functions, MCP, SharePoint и Microsoft Fabric. Подключаемый инструмент не отменяет необходимость правильно настроить connection, index или внешний API. Ограничения и эксплуатационные проверки в источнике не менее важны, чем пример создания агента. Клиент нужно освобождать через using или явный dispose, для всех run-статусов следует учитывать RequiresAction, Failed и Cancelled, а при завершении удалять threads, agents, vector stores и files, если они больше не нужны. Рекомендуется сохранять идентификаторы ресурсов, использовать async-методы и streaming для real-time UX. Ошибки Azure обрабатываются через RequestFailedException: 404 означает, что ресурс не найден, остальные коды нужно выводить вместе со status, ErrorCode и сообщением. Навык не обещает автоматическую доступность deployment или connection: эти значения должны существовать в выбранном Azure AI project и быть доступны учётным данным приложения.
Для чего подходит
- Создание persistent agents в Azure AI Foundry
- Работа с threads, runs и streaming
- Подключение tools и function calling в .NET
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/microsoft/skills/tree/main/.github/plugins/azure-sdk-dotnet/skills/azure-ai-agents-persistent-dotnet