Обзор инструментов

Agent Framework поддерживает множество различных типов средств, расширяющих возможности агента. Средства позволяют агентам взаимодействовать с внешними системами, выполнять код, искать данные и многое другое.

Типы инструментов

Тип инструмента Description
Средства функций Пользовательский код, который агенты могут вызывать во время бесед
Интерпретатор кода Выполнение кода в изолированной среде
Поиск файлов Поиск по отправленным файлам
Веб-поиск Поиск сведений в Интернете
Размещенные средства MCP Серверы MCP, вызываемые средой выполнения поставщика
Локальные средства MCP Серверы MCP, работающие локально или на пользовательских узлах
Панели элементов Foundry Именованные пакеты версий конфигураций размещенных инструментов, управляемых в проекте Foundry
Тип инструмента Description
Средства функций Пользовательский код, который агенты могут вызывать во время бесед
Интерпретатор кода Выполнение кода в изолированной среде
Поиск файлов Поиск по отправленным файлам
Веб-поиск Поиск сведений в Интернете
Размещенные средства MCP Серверы MCP, вызываемые средой выполнения поставщика
Локальные средства MCP Серверы MCP, работающие локально или на пользовательских узлах
Панели элементов Foundry Именованные пакеты версий конфигураций размещенных инструментов, управляемых в проекте Foundry
Генерация изображений Создание размещенного образа в среде выполнения Foundry / OpenAI Responses
Shell Выполнение размещенной оболочки в среде выполнения OpenAI Responses — отличается от встроенных средств выполнения оболочки или URL-адреса интерфейса командной строки GitHub Copilot
Заземление Bing Веб-приземление с помощью собственного ресурса Bing Search — экспериментальный
Пользовательский поиск Bing Приземление Bing ограничено списком курируемых доменов — предварительная версия
Поиск с использованием ИИ Azure Запрос индекса Поиск с использованием ИИ Azure через подключение Foundry — экспериментальный
SharePoint Ответы на землю в SharePoint содержимом — предварительная версия
Microsoft Fabric Запрос агента данных Fabric — предварительная версия
Поиск памяти Поиск хранилища памяти, управляемого Foundry, — предварительная версия
Использование компьютера Создание рабочего стола или среды браузера — предварительная версия
Автоматизация браузера Запуск браузера с помощью Azure Playwright — предварительная версия
Средство "Агент — агент" (A2A) Вызов удаленного агента A2A в качестве средства из агента Foundry — предварительная версия

Замечание

Инструменты, помеченные как экспериментальные или предварительные версии , документируются на соответствующей странице поставщика и выдают ExperimentalWarning первый раз, когда они используются в процессе.

Утверждение инструмента

Утверждение инструмента — это функция платформы, которая позволяет воротить вызов каждого средства — средства функций, размещенные инструменты, вызовы инструментов MCP — с помощью решения "человек в цикле", прежде чем модель получит результат. Он обрабатывается клиентом чата, вызывающим функцию платформы, как в .NET, так и в Python, поэтому он работает с любым поставщиком, клиент которого вызывает средства локально; это не возможность для каждого поставщика. См. страницу утверждения инструмента для полного шаблона, включая взаимодействие утверждений с сеансами, потоковой передачей и ПО промежуточного слоя.

Матрица поддержки поставщиков

Поставщики OpenAI и Azure OpenAI предлагают два типа клиентов — ответы и завершение чата — с разными возможностями инструментов. Клиенты Azure OpenAI отражают эквиваленты OpenAI. Copilot Studio и A2A агенты выполняются в удаленной службе, чтобы их возможности были настроены на удаленном агенте, а не через клиент Agent Framework— они не перечислены в матрице.

Тип инструмента Ответы Завершение чата Foundry Anthropic Ollama GitHub Copilot
Средства функций
Интерпретатор кода
Поиск файлов
Веб-поиск
Размещенные средства MCP
Локальные средства MCP

Замечание

Столбцы Responses и Chat Completion применяются как к OpenAI, так и к Azure OpenAI— Azure варианты отражают ту же поддержку средства, что и их аналоги OpenAI. Устаревший API OpenAI Assistants API больше не документируется; Инструкции по миграции см. в руководстве по миграции Semantic Kernel.

Матрица поддержки поставщиков

Поставщики OpenAI и Azure OpenAI предлагают несколько типов клиентов с разными возможностями инструментов. Клиенты Azure OpenAI отражают эквиваленты OpenAI. Столбец Foundry применяется FoundryChatClient к — для FoundryAgent, средства настраиваются в определении агента Foundry (см. сведения о том, что работает и что не используется FoundryAgent). Copilot Studio и A2A агенты выполняются в удаленной службе, чтобы их возможности были настроены на удаленном агенте, а не через клиент Agent Framework— они не перечислены в матрице.

Тип инструмента Ответы Завершение чата Foundry Anthropic Ollama Литейный локальный GitHub Copilot
Средства функций ⚠️¹ ⚠️¹
Интерпретатор кода
Поиск файлов
Веб-поиск
Генерация изображений
Размещенная оболочка (get_shell_tool)
Встроенная оболочка/ файловая система / получение URL-адреса ✅2
Размещенные средства MCP
Локальные средства MCP
Панели элементов Foundry
Bing Grounding (экспериментальный)
Настраиваемый поиск Bing (предварительная версия)
Поиск с использованием ИИ Azure (экспериментальный)
SharePoint (предварительная версия)
Microsoft Fabric (предварительная версия)
Поиск памяти (предварительная версия)
Использование компьютера (предварительная версия)
Автоматизация браузера (предварительная версия)
Средство "агент — агент" (A2A) ( предварительная версия)

¹ Зависит от выбранной локальной модели, поддерживающей вызов функции. 2. Встроенный в среду выполнения GitHub Copilot CLI, включаемый обработчиком разрешений. Разные поверхности от OpenAI get_shell_tool.

Замечание

Столбцы Responses и Chat Completion применяются как к OpenAI, так и к Azure OpenAI— Azure варианты отражают ту же поддержку средства, что и их аналоги OpenAI. Локальные инструменты MCP работают с любым поставщиком, поддерживающим средства функций.

Использование агента в качестве средства функции

Агент можно использовать в качестве средства функции для другого агента, включив состав агента и более сложные рабочие процессы. Внутренний агент преобразуется в средство функции и предоставляется внешнему агенту, который затем может вызывать его по мере необходимости.

.AsAIFunction() Вызовите AIAgent для преобразования его в средство функции, которое может быть предоставлено другому агенту:

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

Предупреждение

DefaultAzureCredential удобно для разработки, но требует тщательного рассмотрения в рабочей среде. В рабочей среде рекомендуется использовать определенные учетные данные (например, ManagedIdentityCredential), чтобы избежать проблем с задержкой, непреднамеренной проверки данных аутентификации и потенциальных рисков безопасности из-за резервных механизмов.

Вызов .as_tool() агента, чтобы преобразовать его в средство функции, которое может быть предоставлено другому агенту:

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

Кроме того, можно настроить имя, описание и имя аргумента средства:

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

Дальнейшие шаги