Iнтеграція служби Azure AI Agent із сервером MCP
На момент написання цієї статті служба агентів штучного інтелекту Azure не пропонує готової інтеграції із серверами Model Context Protocol (MCP). Тут обговорюється рішення, яке допомагає використовувати потужні можливості MCP під час роботи в екосистемі Azure.
Інтеграційний підхід поєднує можливості інтеграції функцій у службі агентів Azure AI. Використовуючи клієнт MCP для виявлення та реєстрації інструментів із сервера MCP як функцій за допомогою служби агентів, ми створюємо безшовний рівень інтеграції між двома системами.
Створений за допомогою Microsoft Bot Framework, цей застосунок помічник штучного інтелекту. Для цілей розробки та тестування використовувався емулятор Bot Framework для запуску та перевірки застосунку локально.
Огляд архітектури
Архітектура рішення складається з кількох ключових компонентів:
- Сервер MCP : Розміщений у контейнерних програмах Azure, сервер MCP підключається до сховища BLOB-об’єктів Azure за допомогою керованої ідентифікації, забезпечуючи безпечну автентифікацію на основі токенів без необхідності збережених облікових даних.
- Служба агентів штучного інтелекту Azure : Основна аналітична платформа, на якій працює наш помічник зі штучним інтелектом. Вона використовує різні інструменти, зокрема:
- Вбудований інструмент пошуку Bing для отримання новинного контенту
- Динамічно зареєстровані інструменти MCP для операцій зберігання даних
- Модель GPT-4o для розуміння та генерації природної мови
- Спеціальна програма-помічник штучного інтелекту : створена за допомогою Microsoft Bot Framework, ця програма працює локально під час розробки, але може бути розміщена в Azure Container Apps для виробничого використання. Вона служить мостом між взаємодією користувачів та службою Azure AI Agent.
- Рівень інтеграції : клієнт MCP у нашій програмі виявляє доступні інструменти на сервері MCP та реєструє їх у службі агентів штучного інтелекту Azure, що забезпечує безперебійний виклик функцій між цими системами.
Технічна реалізація
Виявлення та реєстрація інструменту MCP
Суть інтеграції полягає в тому, як ми знаходимо інструменти MCP та реєструємо їх у службі агентів штучного інтелекту Azure. Давайте розглянемо ключові компоненти цього процесу.
Процес пошуку інструментів
Файл agent.py містить логіку для підключення до сервера MCP, пошуку доступних інструментів та їх реєстрації в службі агентів Azure AI:
# Fetch tool schemas from MCP Server async def fetch_tools(): conn = ServerConnection(mcp_server_url) await conn.connect() tools = await conn.list_tools() await conn.cleanup() return tools tools = asyncio.run(fetch_tools()) # Build a function for each tool def make_tool_func(tool_name): def tool_func(**kwargs): async def call_tool(): conn = ServerConnection(mcp_server_url) await conn.connect() result = await conn.execute_tool(tool_name, kwargs) await conn.cleanup() return result return asyncio.run(call_tool()) tool_func.__name__ = tool_name return tool_func functions_dict = {tool["name"]: make_tool_func(tool["name"]) for tool in tools} mcp_function_tool = FunctionTool(functions=list(functions_dict.values()))
Цей підхід динамічно створює заглушки функцій Python для кожного інструменту MCP, які потім можна зареєструвати в службі агентів штучного інтелекту Azure.
Створення та реєстрація агента
Після отримання заглушок функцій ми реєструємо їх у службі агентів штучного інтелекту Azure:
# Initialize agent with tools toolset = ToolSet() toolset.add(mcp_function_tool) toolset.add(bing) # Adding the Bing Search tool # Create or update agent with the toolset agent = project_client.agents.create_agent( model=config.aoai_model_name, name=agent_name, instructions=agent_instructions, tools=toolset.definitions )
Перевагою цього підходу є те, що він дозволяє динамічне виявлення та реєстрацію. Коли MCP-сервер додає або оновлює інструменти, ви можете просто повторно запустити процес створення агента, щоб оновити зареєстровані функції.
На зображенні нижче показано, що дії інструментів, виявлені на сервері MCP, реєструються як функції в службі агента штучного інтелекту після створення/оновлення агента.
Виконання запитів за допомогою клієнта MCP
Коли користувач взаємодіє з ботом, state_management_bot.py обробляє виклики функцій та направляє їх до відповідного обробника:
# Process each tool call tool_outputs = [] for tool_call in tool_calls: if isinstance(tool_call, RequiredFunctionToolCall): # Get function name and arguments function_name = tool_call.function.name args_json = tool_call.function.arguments arguments = json.loads(args_json) if args_json else {} # Check if this is an MCP function if is_mcp_function(function_name): # Direct MCP execution using our specialized handler output = await execute_mcp_tool_async(function_name, arguments) else: # Use FunctionTool as fallback output = functions.execute(tool_call)
Система розроблена для слабозв’язаного використання — агент знає лише про сигнатури інструментів та як їх викликати, тоді як сервер MCP обробляє деталі реалізації взаємодії зі сховищем Azure.
Запуск програми
Робочий процес складається з двох основних кроків:
1. Створення/оновлення агента
На цьому кроці виявляється доступний інструмент із сервера MCP та реєструється він у службі агентів штучного інтелекту Azure:
python agent.py
Цей процес:
- Підключається до сервера MCP
- Отримує схему всіх доступних інструментів
- Створює функціональні заглушки для кожного інструменту
- Реєструє ці заглушки в службі агентів штучного інтелекту Azure
2. Запуск помічника штучного інтелекту
Після налаштування агента за допомогою відповідних інструментів можна запустити програму:
python app.py
Користувачі взаємодіють зі штучним інтелектом-помічником через емулятор Bot Framework, використовуючи природну мову. Помічник може виконувати:
- Пошук новин за допомогою пошуку Bing
- Підсумки висновків
- Зберігання та впорядковання зведення в сховищі BLOB-об’єктів Azure через сервер MCP
Посилання
Репозиторій GitHub для цього застосунку. Він містить посилання на відповідну документацію з цього питання.
Репозиторій GitHub для сервера MCP
Висновок
Ця реалізація демонструє практичний підхід до інтеграції служби Azure AI Agent Service із серверами MCP. Використовуючи можливості інтеграції функцій, ми створили міст, який дозволяє цим технологіям безперешкодно працювати разом.
Архітектура має переваги:
- Гнучкості : Нові інструменти можна додавати до сервера MCP та автоматично виявляти їх.
- Підтримуваності : Зміни в операціях зберігання можна вносити без модифікації агента.
- Масштабованості : додаткові можливості можна легко додати за допомогою нових інструментів MCP.
У міру розвитку служби Azure AI Agent Service, у майбутньому ми можемо побачити нативну інтеграцію із серверами MCP. До того часу цей підхід забезпечує надійне рішення для розробників, які прагнуть поєднати ці потужні технології.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів