Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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"
)